scateu.me-jekyll-theme 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/css/main.scss +56 -0
- data/feed.xml +30 -0
- data/index.html +22 -0
- data/js/.DS_Store +0 -0
- data/js/flowchart-latest.js +991 -0
- data/js/jquery-3.1.1.min.js +4 -0
- data/js/qrcode.min.js +1 -0
- data/js/raphael-min.js +11 -0
- data/js/reveal.js/.gitignore +13 -0
- data/js/reveal.js/.travis.yml +5 -0
- data/js/reveal.js/CONTRIBUTING.md +23 -0
- data/js/reveal.js/Gruntfile.js +176 -0
- data/js/reveal.js/LICENSE +19 -0
- data/js/reveal.js/README.md +1148 -0
- data/js/reveal.js/bower.json +27 -0
- data/js/reveal.js/css/print/paper.css +202 -0
- data/js/reveal.js/css/print/pdf.css +160 -0
- data/js/reveal.js/css/reveal.css +1344 -0
- data/js/reveal.js/css/reveal.scss +1412 -0
- data/js/reveal.js/css/theme/README.md +21 -0
- data/js/reveal.js/css/theme/beige.css +291 -0
- data/js/reveal.js/css/theme/black.css +287 -0
- data/js/reveal.js/css/theme/blood.css +310 -0
- data/js/reveal.js/css/theme/league.css +293 -0
- data/js/reveal.js/css/theme/moon.css +291 -0
- data/js/reveal.js/css/theme/night.css +285 -0
- data/js/reveal.js/css/theme/serif.css +287 -0
- data/js/reveal.js/css/theme/simple.css +287 -0
- data/js/reveal.js/css/theme/sky.css +294 -0
- data/js/reveal.js/css/theme/solarized.css +291 -0
- data/js/reveal.js/css/theme/source/beige.scss +39 -0
- data/js/reveal.js/css/theme/source/black.scss +49 -0
- data/js/reveal.js/css/theme/source/blood.scss +79 -0
- data/js/reveal.js/css/theme/source/league.scss +34 -0
- data/js/reveal.js/css/theme/source/moon.scss +57 -0
- data/js/reveal.js/css/theme/source/night.scss +35 -0
- data/js/reveal.js/css/theme/source/serif.scss +35 -0
- data/js/reveal.js/css/theme/source/simple.scss +38 -0
- data/js/reveal.js/css/theme/source/sky.scss +46 -0
- data/js/reveal.js/css/theme/source/solarized.scss +63 -0
- data/js/reveal.js/css/theme/source/white.scss +49 -0
- data/js/reveal.js/css/theme/template/mixins.scss +29 -0
- data/js/reveal.js/css/theme/template/settings.scss +43 -0
- data/js/reveal.js/css/theme/template/theme.scss +346 -0
- data/js/reveal.js/css/theme/white.css +287 -0
- data/js/reveal.js/demo.html +410 -0
- data/js/reveal.js/index.html +50 -0
- data/js/reveal.js/js/reveal.js +4744 -0
- data/js/reveal.js/lib/css/zenburn.css +80 -0
- data/js/reveal.js/lib/font/league-gothic/LICENSE +2 -0
- data/js/reveal.js/lib/font/league-gothic/league-gothic.css +10 -0
- data/js/reveal.js/lib/font/league-gothic/league-gothic.eot +0 -0
- data/js/reveal.js/lib/font/league-gothic/league-gothic.ttf +0 -0
- data/js/reveal.js/lib/font/league-gothic/league-gothic.woff +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/LICENSE +45 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.ttf +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.ttf +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.ttf +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.eot +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.ttf +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro-semibolditalic.woff +0 -0
- data/js/reveal.js/lib/font/source-sans-pro/source-sans-pro.css +39 -0
- data/js/reveal.js/lib/js/classList.js +2 -0
- data/js/reveal.js/lib/js/head.min.js +9 -0
- data/js/reveal.js/lib/js/html5shiv.js +7 -0
- data/js/reveal.js/package.json +44 -0
- data/js/reveal.js/plugin/highlight/highlight.js +31 -0
- data/js/reveal.js/plugin/markdown/example.html +129 -0
- data/js/reveal.js/plugin/markdown/markdown.js +405 -0
- data/js/reveal.js/plugin/markdown/marked.js +6 -0
- data/js/reveal.js/plugin/math/math.js +67 -0
- data/js/reveal.js/plugin/multiplex/client.js +13 -0
- data/js/reveal.js/plugin/multiplex/index.js +64 -0
- data/js/reveal.js/plugin/multiplex/master.js +31 -0
- data/js/reveal.js/plugin/multiplex/package.json +19 -0
- data/js/reveal.js/plugin/notes-server/client.js +65 -0
- data/js/reveal.js/plugin/notes-server/index.js +69 -0
- data/js/reveal.js/plugin/notes-server/notes.html +407 -0
- data/js/reveal.js/plugin/notes/notes.html +414 -0
- data/js/reveal.js/plugin/notes/notes.js +136 -0
- data/js/reveal.js/plugin/print-pdf/print-pdf.js +48 -0
- data/js/reveal.js/plugin/search/search.js +196 -0
- data/js/reveal.js/plugin/zoom-js/zoom.js +278 -0
- data/js/reveal.js/test/examples/assets/image1.png +0 -0
- data/js/reveal.js/test/examples/assets/image2.png +0 -0
- data/js/reveal.js/test/examples/barebones.html +41 -0
- data/js/reveal.js/test/examples/embedded-media.html +49 -0
- data/js/reveal.js/test/examples/math.html +185 -0
- data/js/reveal.js/test/examples/slide-backgrounds.html +144 -0
- data/js/reveal.js/test/examples/slide-transitions.html +101 -0
- data/js/reveal.js/test/qunit-1.12.0.css +244 -0
- data/js/reveal.js/test/qunit-1.12.0.js +2212 -0
- data/js/reveal.js/test/test-markdown-element-attributes.html +134 -0
- data/js/reveal.js/test/test-markdown-element-attributes.js +46 -0
- data/js/reveal.js/test/test-markdown-slide-attributes.html +128 -0
- data/js/reveal.js/test/test-markdown-slide-attributes.js +47 -0
- data/js/reveal.js/test/test-markdown.html +52 -0
- data/js/reveal.js/test/test-markdown.js +15 -0
- data/js/reveal.js/test/test-pdf.html +83 -0
- data/js/reveal.js/test/test-pdf.js +15 -0
- data/js/reveal.js/test/test.html +86 -0
- data/js/reveal.js/test/test.js +597 -0
- data/js/sequence-diagram-min.js +8 -0
- data/js/underscore-min.js +1 -0
- metadata +111 -1
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
Reveal.addEventListener( 'ready', function() {
|
3
|
+
|
4
|
+
// Only one test for now, we're mainly ensuring that there
|
5
|
+
// are no execution errors when running PDF mode
|
6
|
+
|
7
|
+
test( 'Reveal.isReady', function() {
|
8
|
+
strictEqual( Reveal.isReady(), true, 'returns true' );
|
9
|
+
});
|
10
|
+
|
11
|
+
|
12
|
+
} );
|
13
|
+
|
14
|
+
Reveal.initialize({ pdf: true });
|
15
|
+
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html lang="en">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
|
7
|
+
<title>reveal.js - Tests</title>
|
8
|
+
|
9
|
+
<link rel="stylesheet" href="../css/reveal.css">
|
10
|
+
<link rel="stylesheet" href="qunit-1.12.0.css">
|
11
|
+
</head>
|
12
|
+
|
13
|
+
<body style="overflow: auto;">
|
14
|
+
|
15
|
+
<div id="qunit"></div>
|
16
|
+
<div id="qunit-fixture"></div>
|
17
|
+
|
18
|
+
<div class="reveal" style="display: none;">
|
19
|
+
|
20
|
+
<div class="slides">
|
21
|
+
|
22
|
+
<section data-background-image="examples/assets/image1.png">
|
23
|
+
<h1>1</h1>
|
24
|
+
<img data-src="fake-url.png">
|
25
|
+
<video data-src="fake-url.mp4"></video>
|
26
|
+
<audio data-src="fake-url.mp3"></audio>
|
27
|
+
<aside class="notes">speaker notes 1</aside>
|
28
|
+
</section>
|
29
|
+
|
30
|
+
<section>
|
31
|
+
<section data-background="examples/assets/image2.png" data-notes="speaker notes 2">
|
32
|
+
<h1>2.1</h1>
|
33
|
+
</section>
|
34
|
+
<section>
|
35
|
+
<h1>2.2</h1>
|
36
|
+
</section>
|
37
|
+
<section>
|
38
|
+
<h1>2.3</h1>
|
39
|
+
</section>
|
40
|
+
</section>
|
41
|
+
|
42
|
+
<section id="fragment-slides">
|
43
|
+
<section>
|
44
|
+
<h1>3.1</h1>
|
45
|
+
<ul>
|
46
|
+
<li class="fragment">4.1</li>
|
47
|
+
<li class="fragment">4.2</li>
|
48
|
+
<li class="fragment">4.3</li>
|
49
|
+
</ul>
|
50
|
+
</section>
|
51
|
+
|
52
|
+
<section>
|
53
|
+
<h1>3.2</h1>
|
54
|
+
<ul>
|
55
|
+
<li class="fragment" data-fragment-index="0">4.1</li>
|
56
|
+
<li class="fragment" data-fragment-index="0">4.2</li>
|
57
|
+
</ul>
|
58
|
+
<iframe data-src="http://example.com"></iframe>
|
59
|
+
</section>
|
60
|
+
|
61
|
+
<section>
|
62
|
+
<h1>3.3</h1>
|
63
|
+
<ul>
|
64
|
+
<li class="fragment" data-fragment-index="1">3.3.1</li>
|
65
|
+
<li class="fragment" data-fragment-index="4">3.3.2</li>
|
66
|
+
<li class="fragment" data-fragment-index="4">3.3.3</li>
|
67
|
+
</ul>
|
68
|
+
</section>
|
69
|
+
</section>
|
70
|
+
|
71
|
+
<section>
|
72
|
+
<h1>4</h1>
|
73
|
+
</section>
|
74
|
+
|
75
|
+
</div>
|
76
|
+
|
77
|
+
</div>
|
78
|
+
|
79
|
+
<script src="../lib/js/head.min.js"></script>
|
80
|
+
<script src="../js/reveal.js"></script>
|
81
|
+
<script src="qunit-1.12.0.js"></script>
|
82
|
+
|
83
|
+
<script src="test.js"></script>
|
84
|
+
|
85
|
+
</body>
|
86
|
+
</html>
|
@@ -0,0 +1,597 @@
|
|
1
|
+
|
2
|
+
// These tests expect the DOM to contain a presentation
|
3
|
+
// with the following slide structure:
|
4
|
+
//
|
5
|
+
// 1
|
6
|
+
// 2 - Three sub-slides
|
7
|
+
// 3 - Three fragment elements
|
8
|
+
// 3 - Two fragments with same data-fragment-index
|
9
|
+
// 4
|
10
|
+
|
11
|
+
|
12
|
+
Reveal.addEventListener( 'ready', function() {
|
13
|
+
|
14
|
+
// ---------------------------------------------------------------
|
15
|
+
// DOM TESTS
|
16
|
+
|
17
|
+
QUnit.module( 'DOM' );
|
18
|
+
|
19
|
+
test( 'Initial slides classes', function() {
|
20
|
+
var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
|
21
|
+
|
22
|
+
strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
|
23
|
+
strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
|
24
|
+
strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
|
25
|
+
|
26
|
+
strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
|
27
|
+
|
28
|
+
ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
|
29
|
+
});
|
30
|
+
|
31
|
+
// ---------------------------------------------------------------
|
32
|
+
// API TESTS
|
33
|
+
|
34
|
+
QUnit.module( 'API' );
|
35
|
+
|
36
|
+
test( 'Reveal.isReady', function() {
|
37
|
+
strictEqual( Reveal.isReady(), true, 'returns true' );
|
38
|
+
});
|
39
|
+
|
40
|
+
test( 'Reveal.isOverview', function() {
|
41
|
+
strictEqual( Reveal.isOverview(), false, 'false by default' );
|
42
|
+
|
43
|
+
Reveal.toggleOverview();
|
44
|
+
strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
|
45
|
+
|
46
|
+
Reveal.toggleOverview();
|
47
|
+
strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
|
48
|
+
});
|
49
|
+
|
50
|
+
test( 'Reveal.isPaused', function() {
|
51
|
+
strictEqual( Reveal.isPaused(), false, 'false by default' );
|
52
|
+
|
53
|
+
Reveal.togglePause();
|
54
|
+
strictEqual( Reveal.isPaused(), true, 'true after pausing' );
|
55
|
+
|
56
|
+
Reveal.togglePause();
|
57
|
+
strictEqual( Reveal.isPaused(), false, 'false after resuming' );
|
58
|
+
});
|
59
|
+
|
60
|
+
test( 'Reveal.isFirstSlide', function() {
|
61
|
+
Reveal.slide( 0, 0 );
|
62
|
+
strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
|
63
|
+
|
64
|
+
Reveal.slide( 1, 0 );
|
65
|
+
strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
|
66
|
+
|
67
|
+
Reveal.slide( 0, 0 );
|
68
|
+
strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
|
69
|
+
});
|
70
|
+
|
71
|
+
test( 'Reveal.isFirstSlide after vertical slide', function() {
|
72
|
+
Reveal.slide( 1, 1 );
|
73
|
+
Reveal.slide( 0, 0 );
|
74
|
+
strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 1, 1 ) and then Reveal.slide( 0, 0 )' );
|
75
|
+
});
|
76
|
+
|
77
|
+
test( 'Reveal.isLastSlide', function() {
|
78
|
+
Reveal.slide( 0, 0 );
|
79
|
+
strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
|
80
|
+
|
81
|
+
var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
|
82
|
+
|
83
|
+
Reveal.slide( lastSlideIndex, 0 );
|
84
|
+
strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( '+ lastSlideIndex +', 0 )' );
|
85
|
+
|
86
|
+
Reveal.slide( 0, 0 );
|
87
|
+
strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
|
88
|
+
});
|
89
|
+
|
90
|
+
test( 'Reveal.isLastSlide after vertical slide', function() {
|
91
|
+
var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
|
92
|
+
|
93
|
+
Reveal.slide( 1, 1 );
|
94
|
+
Reveal.slide( lastSlideIndex );
|
95
|
+
strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( 1, 1 ) and then Reveal.slide( '+ lastSlideIndex +', 0 )' );
|
96
|
+
});
|
97
|
+
|
98
|
+
test( 'Reveal.getTotalSlides', function() {
|
99
|
+
strictEqual( Reveal.getTotalSlides(), 8, 'eight slides in total' );
|
100
|
+
});
|
101
|
+
|
102
|
+
test( 'Reveal.getIndices', function() {
|
103
|
+
var indices = Reveal.getIndices();
|
104
|
+
|
105
|
+
ok( indices.hasOwnProperty( 'h' ), 'h exists' );
|
106
|
+
ok( indices.hasOwnProperty( 'v' ), 'v exists' );
|
107
|
+
ok( indices.hasOwnProperty( 'f' ), 'f exists' );
|
108
|
+
|
109
|
+
Reveal.slide( 1, 0 );
|
110
|
+
strictEqual( Reveal.getIndices().h, 1, 'h 1' );
|
111
|
+
strictEqual( Reveal.getIndices().v, 0, 'v 0' );
|
112
|
+
|
113
|
+
Reveal.slide( 1, 2 );
|
114
|
+
strictEqual( Reveal.getIndices().h, 1, 'h 1' );
|
115
|
+
strictEqual( Reveal.getIndices().v, 2, 'v 2' );
|
116
|
+
|
117
|
+
Reveal.slide( 0, 0 );
|
118
|
+
strictEqual( Reveal.getIndices().h, 0, 'h 0' );
|
119
|
+
strictEqual( Reveal.getIndices().v, 0, 'v 0' );
|
120
|
+
});
|
121
|
+
|
122
|
+
test( 'Reveal.getSlide', function() {
|
123
|
+
equal( Reveal.getSlide( 0 ), document.querySelector( '.reveal .slides>section:first-child' ), 'gets correct first slide' );
|
124
|
+
equal( Reveal.getSlide( 1 ), document.querySelector( '.reveal .slides>section:nth-child(2)' ), 'no v index returns stack' );
|
125
|
+
equal( Reveal.getSlide( 1, 0 ), document.querySelector( '.reveal .slides>section:nth-child(2)>section:nth-child(1)' ), 'v index 0 returns first vertical child' );
|
126
|
+
equal( Reveal.getSlide( 1, 1 ), document.querySelector( '.reveal .slides>section:nth-child(2)>section:nth-child(2)' ), 'v index 1 returns second vertical child' );
|
127
|
+
|
128
|
+
strictEqual( Reveal.getSlide( 100 ), undefined, 'undefined when out of horizontal bounds' );
|
129
|
+
strictEqual( Reveal.getSlide( 1, 100 ), undefined, 'undefined when out of vertical bounds' );
|
130
|
+
});
|
131
|
+
|
132
|
+
test( 'Reveal.getSlideBackground', function() {
|
133
|
+
equal( Reveal.getSlideBackground( 0 ), document.querySelector( '.reveal .backgrounds>.slide-background:first-child' ), 'gets correct first background' );
|
134
|
+
equal( Reveal.getSlideBackground( 1 ), document.querySelector( '.reveal .backgrounds>.slide-background:nth-child(2)' ), 'no v index returns stack' );
|
135
|
+
equal( Reveal.getSlideBackground( 1, 0 ), document.querySelector( '.reveal .backgrounds>.slide-background:nth-child(2) .slide-background:nth-child(1)' ), 'v index 0 returns first vertical child' );
|
136
|
+
equal( Reveal.getSlideBackground( 1, 1 ), document.querySelector( '.reveal .backgrounds>.slide-background:nth-child(2) .slide-background:nth-child(2)' ), 'v index 1 returns second vertical child' );
|
137
|
+
|
138
|
+
strictEqual( Reveal.getSlideBackground( 100 ), undefined, 'undefined when out of horizontal bounds' );
|
139
|
+
strictEqual( Reveal.getSlideBackground( 1, 100 ), undefined, 'undefined when out of vertical bounds' );
|
140
|
+
});
|
141
|
+
|
142
|
+
test( 'Reveal.getSlideNotes', function() {
|
143
|
+
Reveal.slide( 0, 0 );
|
144
|
+
ok( Reveal.getSlideNotes() === 'speaker notes 1', 'works with <aside class="notes">' );
|
145
|
+
|
146
|
+
Reveal.slide( 1, 0 );
|
147
|
+
ok( Reveal.getSlideNotes() === 'speaker notes 2', 'works with <section data-notes="">' );
|
148
|
+
});
|
149
|
+
|
150
|
+
test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
|
151
|
+
Reveal.slide( 0, 0 );
|
152
|
+
Reveal.slide( 1, 0 );
|
153
|
+
|
154
|
+
var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
|
155
|
+
var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
|
156
|
+
|
157
|
+
equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
|
158
|
+
equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
|
159
|
+
});
|
160
|
+
|
161
|
+
test( 'Reveal.getProgress', function() {
|
162
|
+
Reveal.slide( 0, 0 );
|
163
|
+
strictEqual( Reveal.getProgress(), 0, 'progress is 0 on first slide' );
|
164
|
+
|
165
|
+
var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
|
166
|
+
|
167
|
+
Reveal.slide( lastSlideIndex, 0 );
|
168
|
+
strictEqual( Reveal.getProgress(), 1, 'progress is 1 on last slide' );
|
169
|
+
});
|
170
|
+
|
171
|
+
test( 'Reveal.getScale', function() {
|
172
|
+
ok( typeof Reveal.getScale() === 'number', 'has scale' );
|
173
|
+
});
|
174
|
+
|
175
|
+
test( 'Reveal.getConfig', function() {
|
176
|
+
ok( typeof Reveal.getConfig() === 'object', 'has config' );
|
177
|
+
});
|
178
|
+
|
179
|
+
test( 'Reveal.configure', function() {
|
180
|
+
strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
|
181
|
+
|
182
|
+
Reveal.configure({ loop: true });
|
183
|
+
strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
|
184
|
+
|
185
|
+
Reveal.configure({ loop: false, customTestValue: 1 });
|
186
|
+
strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
|
187
|
+
});
|
188
|
+
|
189
|
+
test( 'Reveal.availableRoutes', function() {
|
190
|
+
Reveal.slide( 0, 0 );
|
191
|
+
deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
|
192
|
+
|
193
|
+
Reveal.slide( 1, 0 );
|
194
|
+
deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
|
195
|
+
});
|
196
|
+
|
197
|
+
test( 'Reveal.next', function() {
|
198
|
+
Reveal.slide( 0, 0 );
|
199
|
+
|
200
|
+
// Step through vertical child slides
|
201
|
+
Reveal.next();
|
202
|
+
deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
|
203
|
+
|
204
|
+
Reveal.next();
|
205
|
+
deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
|
206
|
+
|
207
|
+
Reveal.next();
|
208
|
+
deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
|
209
|
+
|
210
|
+
// Step through fragments
|
211
|
+
Reveal.next();
|
212
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
|
213
|
+
|
214
|
+
Reveal.next();
|
215
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
|
216
|
+
|
217
|
+
Reveal.next();
|
218
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
|
219
|
+
|
220
|
+
Reveal.next();
|
221
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
|
222
|
+
});
|
223
|
+
|
224
|
+
test( 'Reveal.next at end', function() {
|
225
|
+
Reveal.slide( 3 );
|
226
|
+
|
227
|
+
// We're at the end, this should have no effect
|
228
|
+
Reveal.next();
|
229
|
+
deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
|
230
|
+
|
231
|
+
Reveal.next();
|
232
|
+
deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
|
233
|
+
});
|
234
|
+
|
235
|
+
|
236
|
+
// ---------------------------------------------------------------
|
237
|
+
// FRAGMENT TESTS
|
238
|
+
|
239
|
+
QUnit.module( 'Fragments' );
|
240
|
+
|
241
|
+
test( 'Sliding to fragments', function() {
|
242
|
+
Reveal.slide( 2, 0, -1 );
|
243
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
|
244
|
+
|
245
|
+
Reveal.slide( 2, 0, 0 );
|
246
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
|
247
|
+
|
248
|
+
Reveal.slide( 2, 0, 2 );
|
249
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
|
250
|
+
|
251
|
+
Reveal.slide( 2, 0, 1 );
|
252
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
|
253
|
+
});
|
254
|
+
|
255
|
+
test( 'Hiding all fragments', function() {
|
256
|
+
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
|
257
|
+
|
258
|
+
Reveal.slide( 2, 0, 0 );
|
259
|
+
strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
|
260
|
+
|
261
|
+
Reveal.slide( 2, 0, -1 );
|
262
|
+
strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
|
263
|
+
});
|
264
|
+
|
265
|
+
test( 'Current fragment', function() {
|
266
|
+
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
|
267
|
+
|
268
|
+
Reveal.slide( 2, 0 );
|
269
|
+
strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
|
270
|
+
|
271
|
+
Reveal.slide( 2, 0, 0 );
|
272
|
+
strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
|
273
|
+
|
274
|
+
Reveal.slide( 1, 0, 0 );
|
275
|
+
strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
|
276
|
+
|
277
|
+
Reveal.slide( 3, 0, 0 );
|
278
|
+
strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
|
279
|
+
});
|
280
|
+
|
281
|
+
test( 'Stepping through fragments', function() {
|
282
|
+
Reveal.slide( 2, 0, -1 );
|
283
|
+
|
284
|
+
// forwards:
|
285
|
+
|
286
|
+
Reveal.next();
|
287
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
|
288
|
+
|
289
|
+
Reveal.right();
|
290
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
|
291
|
+
|
292
|
+
Reveal.down();
|
293
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
|
294
|
+
|
295
|
+
Reveal.down(); // moves to f #3
|
296
|
+
|
297
|
+
// backwards:
|
298
|
+
|
299
|
+
Reveal.prev();
|
300
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
|
301
|
+
|
302
|
+
Reveal.left();
|
303
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
|
304
|
+
|
305
|
+
Reveal.up();
|
306
|
+
deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
|
307
|
+
});
|
308
|
+
|
309
|
+
test( 'Stepping past fragments', function() {
|
310
|
+
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
|
311
|
+
|
312
|
+
Reveal.slide( 0, 0, 0 );
|
313
|
+
equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
|
314
|
+
|
315
|
+
Reveal.slide( 3, 0, 0 );
|
316
|
+
equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
|
317
|
+
});
|
318
|
+
|
319
|
+
test( 'Fragment indices', function() {
|
320
|
+
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
|
321
|
+
|
322
|
+
Reveal.slide( 3, 0, 0 );
|
323
|
+
equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
|
324
|
+
|
325
|
+
// This slide has three fragments, first one is index 0, second and third have index 1
|
326
|
+
Reveal.slide( 2, 2, 0 );
|
327
|
+
equal( Reveal.getIndices().f, 0, 'returns correct index for first fragment' );
|
328
|
+
|
329
|
+
Reveal.slide( 2, 2, 1 );
|
330
|
+
equal( Reveal.getIndices().f, 1, 'returns correct index for two fragments with same index' );
|
331
|
+
});
|
332
|
+
|
333
|
+
test( 'Index generation', function() {
|
334
|
+
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
|
335
|
+
|
336
|
+
// These have no indices defined to start with
|
337
|
+
equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
|
338
|
+
equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
|
339
|
+
equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
|
340
|
+
});
|
341
|
+
|
342
|
+
test( 'Index normalization', function() {
|
343
|
+
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
|
344
|
+
|
345
|
+
// These start out as 1-4-4 and should normalize to 0-1-1
|
346
|
+
equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
|
347
|
+
equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
|
348
|
+
equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
|
349
|
+
});
|
350
|
+
|
351
|
+
asyncTest( 'fragmentshown event', function() {
|
352
|
+
expect( 2 );
|
353
|
+
|
354
|
+
var _onEvent = function( event ) {
|
355
|
+
ok( true, 'event fired' );
|
356
|
+
}
|
357
|
+
|
358
|
+
Reveal.addEventListener( 'fragmentshown', _onEvent );
|
359
|
+
|
360
|
+
Reveal.slide( 2, 0 );
|
361
|
+
Reveal.slide( 2, 0 ); // should do nothing
|
362
|
+
Reveal.slide( 2, 0, 0 ); // should do nothing
|
363
|
+
Reveal.next();
|
364
|
+
Reveal.next();
|
365
|
+
Reveal.prev(); // shouldn't fire fragmentshown
|
366
|
+
|
367
|
+
start();
|
368
|
+
|
369
|
+
Reveal.removeEventListener( 'fragmentshown', _onEvent );
|
370
|
+
});
|
371
|
+
|
372
|
+
asyncTest( 'fragmenthidden event', function() {
|
373
|
+
expect( 2 );
|
374
|
+
|
375
|
+
var _onEvent = function( event ) {
|
376
|
+
ok( true, 'event fired' );
|
377
|
+
}
|
378
|
+
|
379
|
+
Reveal.addEventListener( 'fragmenthidden', _onEvent );
|
380
|
+
|
381
|
+
Reveal.slide( 2, 0, 2 );
|
382
|
+
Reveal.slide( 2, 0, 2 ); // should do nothing
|
383
|
+
Reveal.prev();
|
384
|
+
Reveal.prev();
|
385
|
+
Reveal.next(); // shouldn't fire fragmenthidden
|
386
|
+
|
387
|
+
start();
|
388
|
+
|
389
|
+
Reveal.removeEventListener( 'fragmenthidden', _onEvent );
|
390
|
+
});
|
391
|
+
|
392
|
+
|
393
|
+
// ---------------------------------------------------------------
|
394
|
+
// AUTO-SLIDE TESTS
|
395
|
+
|
396
|
+
QUnit.module( 'Auto Sliding' );
|
397
|
+
|
398
|
+
test( 'Reveal.isAutoSliding', function() {
|
399
|
+
strictEqual( Reveal.isAutoSliding(), false, 'false by default' );
|
400
|
+
|
401
|
+
Reveal.configure({ autoSlide: 10000 });
|
402
|
+
strictEqual( Reveal.isAutoSliding(), true, 'true after starting' );
|
403
|
+
|
404
|
+
Reveal.configure({ autoSlide: 0 });
|
405
|
+
strictEqual( Reveal.isAutoSliding(), false, 'false after setting to 0' );
|
406
|
+
});
|
407
|
+
|
408
|
+
test( 'Reveal.toggleAutoSlide', function() {
|
409
|
+
Reveal.configure({ autoSlide: 10000 });
|
410
|
+
|
411
|
+
Reveal.toggleAutoSlide();
|
412
|
+
strictEqual( Reveal.isAutoSliding(), false, 'false after first toggle' );
|
413
|
+
Reveal.toggleAutoSlide();
|
414
|
+
strictEqual( Reveal.isAutoSliding(), true, 'true after second toggle' );
|
415
|
+
|
416
|
+
Reveal.configure({ autoSlide: 0 });
|
417
|
+
});
|
418
|
+
|
419
|
+
asyncTest( 'autoslidepaused', function() {
|
420
|
+
expect( 1 );
|
421
|
+
|
422
|
+
var _onEvent = function( event ) {
|
423
|
+
ok( true, 'event fired' );
|
424
|
+
}
|
425
|
+
|
426
|
+
Reveal.addEventListener( 'autoslidepaused', _onEvent );
|
427
|
+
Reveal.configure({ autoSlide: 10000 });
|
428
|
+
Reveal.toggleAutoSlide();
|
429
|
+
|
430
|
+
start();
|
431
|
+
|
432
|
+
// cleanup
|
433
|
+
Reveal.configure({ autoSlide: 0 });
|
434
|
+
Reveal.removeEventListener( 'autoslidepaused', _onEvent );
|
435
|
+
});
|
436
|
+
|
437
|
+
asyncTest( 'autoslideresumed', function() {
|
438
|
+
expect( 1 );
|
439
|
+
|
440
|
+
var _onEvent = function( event ) {
|
441
|
+
ok( true, 'event fired' );
|
442
|
+
}
|
443
|
+
|
444
|
+
Reveal.addEventListener( 'autoslideresumed', _onEvent );
|
445
|
+
Reveal.configure({ autoSlide: 10000 });
|
446
|
+
Reveal.toggleAutoSlide();
|
447
|
+
Reveal.toggleAutoSlide();
|
448
|
+
|
449
|
+
start();
|
450
|
+
|
451
|
+
// cleanup
|
452
|
+
Reveal.configure({ autoSlide: 0 });
|
453
|
+
Reveal.removeEventListener( 'autoslideresumed', _onEvent );
|
454
|
+
});
|
455
|
+
|
456
|
+
|
457
|
+
// ---------------------------------------------------------------
|
458
|
+
// CONFIGURATION VALUES
|
459
|
+
|
460
|
+
QUnit.module( 'Configuration' );
|
461
|
+
|
462
|
+
test( 'Controls', function() {
|
463
|
+
var controlsElement = document.querySelector( '.reveal>.controls' );
|
464
|
+
|
465
|
+
Reveal.configure({ controls: false });
|
466
|
+
equal( controlsElement.style.display, 'none', 'controls are hidden' );
|
467
|
+
|
468
|
+
Reveal.configure({ controls: true });
|
469
|
+
equal( controlsElement.style.display, 'block', 'controls are visible' );
|
470
|
+
});
|
471
|
+
|
472
|
+
test( 'Progress', function() {
|
473
|
+
var progressElement = document.querySelector( '.reveal>.progress' );
|
474
|
+
|
475
|
+
Reveal.configure({ progress: false });
|
476
|
+
equal( progressElement.style.display, 'none', 'progress are hidden' );
|
477
|
+
|
478
|
+
Reveal.configure({ progress: true });
|
479
|
+
equal( progressElement.style.display, 'block', 'progress are visible' );
|
480
|
+
});
|
481
|
+
|
482
|
+
test( 'Loop', function() {
|
483
|
+
Reveal.configure({ loop: true });
|
484
|
+
|
485
|
+
Reveal.slide( 0, 0 );
|
486
|
+
|
487
|
+
Reveal.left();
|
488
|
+
notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
|
489
|
+
|
490
|
+
Reveal.right();
|
491
|
+
equal( Reveal.getIndices().h, 0, 'looped from end to start' );
|
492
|
+
|
493
|
+
Reveal.configure({ loop: false });
|
494
|
+
});
|
495
|
+
|
496
|
+
|
497
|
+
// ---------------------------------------------------------------
|
498
|
+
// LAZY-LOADING TESTS
|
499
|
+
|
500
|
+
QUnit.module( 'Lazy-Loading' );
|
501
|
+
|
502
|
+
test( 'img with data-src', function() {
|
503
|
+
strictEqual( document.querySelectorAll( '.reveal section img[src]' ).length, 1, 'Image source has been set' );
|
504
|
+
});
|
505
|
+
|
506
|
+
test( 'video with data-src', function() {
|
507
|
+
strictEqual( document.querySelectorAll( '.reveal section video[src]' ).length, 1, 'Video source has been set' );
|
508
|
+
});
|
509
|
+
|
510
|
+
test( 'audio with data-src', function() {
|
511
|
+
strictEqual( document.querySelectorAll( '.reveal section audio[src]' ).length, 1, 'Audio source has been set' );
|
512
|
+
});
|
513
|
+
|
514
|
+
test( 'iframe with data-src', function() {
|
515
|
+
Reveal.slide( 0, 0 );
|
516
|
+
strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 0, 'Iframe source is not set' );
|
517
|
+
Reveal.slide( 2, 1 );
|
518
|
+
strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 1, 'Iframe source is set' );
|
519
|
+
Reveal.slide( 2, 2 );
|
520
|
+
strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 0, 'Iframe source is not set' );
|
521
|
+
});
|
522
|
+
|
523
|
+
test( 'background images', function() {
|
524
|
+
var imageSource1 = Reveal.getSlide( 0 ).getAttribute( 'data-background-image' );
|
525
|
+
var imageSource2 = Reveal.getSlide( 1, 0 ).getAttribute( 'data-background' );
|
526
|
+
|
527
|
+
// check that the images are applied to the background elements
|
528
|
+
ok( Reveal.getSlideBackground( 0 ).style.backgroundImage.indexOf( imageSource1 ) !== -1, 'data-background-image worked' );
|
529
|
+
ok( Reveal.getSlideBackground( 1, 0 ).style.backgroundImage.indexOf( imageSource2 ) !== -1, 'data-background worked' );
|
530
|
+
});
|
531
|
+
|
532
|
+
|
533
|
+
// ---------------------------------------------------------------
|
534
|
+
// EVENT TESTS
|
535
|
+
|
536
|
+
QUnit.module( 'Events' );
|
537
|
+
|
538
|
+
asyncTest( 'slidechanged', function() {
|
539
|
+
expect( 3 );
|
540
|
+
|
541
|
+
var _onEvent = function( event ) {
|
542
|
+
ok( true, 'event fired' );
|
543
|
+
}
|
544
|
+
|
545
|
+
Reveal.addEventListener( 'slidechanged', _onEvent );
|
546
|
+
|
547
|
+
Reveal.slide( 1, 0 ); // should trigger
|
548
|
+
Reveal.slide( 1, 0 ); // should do nothing
|
549
|
+
Reveal.next(); // should trigger
|
550
|
+
Reveal.slide( 3, 0 ); // should trigger
|
551
|
+
Reveal.next(); // should do nothing
|
552
|
+
|
553
|
+
start();
|
554
|
+
|
555
|
+
Reveal.removeEventListener( 'slidechanged', _onEvent );
|
556
|
+
|
557
|
+
});
|
558
|
+
|
559
|
+
asyncTest( 'paused', function() {
|
560
|
+
expect( 1 );
|
561
|
+
|
562
|
+
var _onEvent = function( event ) {
|
563
|
+
ok( true, 'event fired' );
|
564
|
+
}
|
565
|
+
|
566
|
+
Reveal.addEventListener( 'paused', _onEvent );
|
567
|
+
|
568
|
+
Reveal.togglePause();
|
569
|
+
Reveal.togglePause();
|
570
|
+
|
571
|
+
start();
|
572
|
+
|
573
|
+
Reveal.removeEventListener( 'paused', _onEvent );
|
574
|
+
});
|
575
|
+
|
576
|
+
asyncTest( 'resumed', function() {
|
577
|
+
expect( 1 );
|
578
|
+
|
579
|
+
var _onEvent = function( event ) {
|
580
|
+
ok( true, 'event fired' );
|
581
|
+
}
|
582
|
+
|
583
|
+
Reveal.addEventListener( 'resumed', _onEvent );
|
584
|
+
|
585
|
+
Reveal.togglePause();
|
586
|
+
Reveal.togglePause();
|
587
|
+
|
588
|
+
start();
|
589
|
+
|
590
|
+
Reveal.removeEventListener( 'resumed', _onEvent );
|
591
|
+
});
|
592
|
+
|
593
|
+
|
594
|
+
} );
|
595
|
+
|
596
|
+
Reveal.initialize();
|
597
|
+
|