Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
1837 views
1
// These tests expect the DOM to contain a presentation
2
// with the following slide structure:
3
//
4
// 1
5
// 2 - Three sub-slides
6
// 3 - Three fragment elements
7
// 3 - Two fragments with same data-fragment-index
8
// 4
9
10
Reveal.addEventListener( 'ready', function() {
11
12
// ---------------------------------------------------------------
13
// DOM TESTS
14
15
QUnit.module( 'DOM' );
16
17
QUnit.test( 'Initial slides classes', function( assert ) {
18
var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
19
20
assert.strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
21
assert.strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
22
assert.strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
23
24
assert.strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
25
26
assert.ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
27
});
28
29
// ---------------------------------------------------------------
30
// API TESTS
31
32
QUnit.module( 'API' );
33
34
QUnit.test( 'Reveal.isReady', function( assert ) {
35
assert.strictEqual( Reveal.isReady(), true, 'returns true' );
36
});
37
38
QUnit.test( 'Reveal.isOverview', function( assert ) {
39
assert.strictEqual( Reveal.isOverview(), false, 'false by default' );
40
41
Reveal.toggleOverview();
42
assert.strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
43
44
Reveal.toggleOverview();
45
assert.strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
46
});
47
48
QUnit.test( 'Reveal.isPaused', function( assert ) {
49
assert.strictEqual( Reveal.isPaused(), false, 'false by default' );
50
51
Reveal.togglePause();
52
assert.strictEqual( Reveal.isPaused(), true, 'true after pausing' );
53
54
Reveal.togglePause();
55
assert.strictEqual( Reveal.isPaused(), false, 'false after resuming' );
56
});
57
58
QUnit.test( 'Reveal.isFirstSlide', function( assert ) {
59
Reveal.slide( 0, 0 );
60
assert.strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
61
62
Reveal.slide( 1, 0 );
63
assert.strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
64
65
Reveal.slide( 0, 0 );
66
assert.strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
67
});
68
69
QUnit.test( 'Reveal.isFirstSlide after vertical slide', function( assert ) {
70
Reveal.slide( 1, 1 );
71
Reveal.slide( 0, 0 );
72
assert.strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 1, 1 ) and then Reveal.slide( 0, 0 )' );
73
});
74
75
QUnit.test( 'Reveal.isLastSlide', function( assert ) {
76
Reveal.slide( 0, 0 );
77
assert.strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
78
79
var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
80
81
Reveal.slide( lastSlideIndex, 0 );
82
assert.strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( '+ lastSlideIndex +', 0 )' );
83
84
Reveal.slide( 0, 0 );
85
assert.strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
86
});
87
88
QUnit.test( 'Reveal.isLastSlide after vertical slide', function( assert ) {
89
var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
90
91
Reveal.slide( 1, 1 );
92
Reveal.slide( lastSlideIndex );
93
assert.strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( 1, 1 ) and then Reveal.slide( '+ lastSlideIndex +', 0 )' );
94
});
95
96
QUnit.test( 'Reveal.getTotalSlides', function( assert ) {
97
assert.strictEqual( Reveal.getTotalSlides(), 8, 'eight slides in total' );
98
});
99
100
QUnit.test( 'Reveal.getIndices', function( assert ) {
101
var indices = Reveal.getIndices();
102
103
assert.ok( indices.hasOwnProperty( 'h' ), 'h exists' );
104
assert.ok( indices.hasOwnProperty( 'v' ), 'v exists' );
105
assert.ok( indices.hasOwnProperty( 'f' ), 'f exists' );
106
107
Reveal.slide( 1, 0 );
108
assert.strictEqual( Reveal.getIndices().h, 1, 'h 1' );
109
assert.strictEqual( Reveal.getIndices().v, 0, 'v 0' );
110
111
Reveal.slide( 1, 2 );
112
assert.strictEqual( Reveal.getIndices().h, 1, 'h 1' );
113
assert.strictEqual( Reveal.getIndices().v, 2, 'v 2' );
114
115
Reveal.slide( 0, 0 );
116
assert.strictEqual( Reveal.getIndices().h, 0, 'h 0' );
117
assert.strictEqual( Reveal.getIndices().v, 0, 'v 0' );
118
});
119
120
QUnit.test( 'Reveal.getSlide', function( assert ) {
121
assert.equal( Reveal.getSlide( 0 ), document.querySelector( '.reveal .slides>section:first-child' ), 'gets correct first slide' );
122
assert.equal( Reveal.getSlide( 1 ), document.querySelector( '.reveal .slides>section:nth-child(2)' ), 'no v index returns stack' );
123
assert.equal( Reveal.getSlide( 1, 0 ), document.querySelector( '.reveal .slides>section:nth-child(2)>section:nth-child(1)' ), 'v index 0 returns first vertical child' );
124
assert.equal( Reveal.getSlide( 1, 1 ), document.querySelector( '.reveal .slides>section:nth-child(2)>section:nth-child(2)' ), 'v index 1 returns second vertical child' );
125
126
assert.strictEqual( Reveal.getSlide( 100 ), undefined, 'undefined when out of horizontal bounds' );
127
assert.strictEqual( Reveal.getSlide( 1, 100 ), undefined, 'undefined when out of vertical bounds' );
128
});
129
130
QUnit.test( 'Reveal.getSlideBackground', function( assert ) {
131
assert.equal( Reveal.getSlideBackground( 0 ), document.querySelector( '.reveal .backgrounds>.slide-background:first-child' ), 'gets correct first background' );
132
assert.equal( Reveal.getSlideBackground( 1 ), document.querySelector( '.reveal .backgrounds>.slide-background:nth-child(2)' ), 'no v index returns stack' );
133
assert.equal( Reveal.getSlideBackground( 1, 0 ), document.querySelector( '.reveal .backgrounds>.slide-background:nth-child(2) .slide-background:nth-child(2)' ), 'v index 0 returns first vertical child' );
134
assert.equal( Reveal.getSlideBackground( 1, 1 ), document.querySelector( '.reveal .backgrounds>.slide-background:nth-child(2) .slide-background:nth-child(3)' ), 'v index 1 returns second vertical child' );
135
136
assert.strictEqual( Reveal.getSlideBackground( 100 ), undefined, 'undefined when out of horizontal bounds' );
137
assert.strictEqual( Reveal.getSlideBackground( 1, 100 ), undefined, 'undefined when out of vertical bounds' );
138
});
139
140
QUnit.test( 'Reveal.getSlideNotes', function( assert ) {
141
Reveal.slide( 0, 0 );
142
assert.ok( Reveal.getSlideNotes() === 'speaker notes 1', 'works with <aside class="notes">' );
143
144
Reveal.slide( 1, 0 );
145
assert.ok( Reveal.getSlideNotes() === 'speaker notes 2', 'works with <section data-notes="">' );
146
});
147
148
QUnit.test( 'Reveal.getPreviousSlide/getCurrentSlide', function( assert ) {
149
Reveal.slide( 0, 0 );
150
Reveal.slide( 1, 0 );
151
152
var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
153
var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
154
155
assert.equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
156
assert.equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
157
});
158
159
QUnit.test( 'Reveal.getProgress', function( assert ) {
160
Reveal.slide( 0, 0 );
161
assert.strictEqual( Reveal.getProgress(), 0, 'progress is 0 on first slide' );
162
163
var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
164
165
Reveal.slide( lastSlideIndex, 0 );
166
assert.strictEqual( Reveal.getProgress(), 1, 'progress is 1 on last slide' );
167
});
168
169
QUnit.test( 'Reveal.getScale', function( assert ) {
170
assert.ok( typeof Reveal.getScale() === 'number', 'has scale' );
171
});
172
173
QUnit.test( 'Reveal.getConfig', function( assert ) {
174
assert.ok( typeof Reveal.getConfig() === 'object', 'has config' );
175
});
176
177
QUnit.test( 'Reveal.configure', function( assert ) {
178
assert.strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
179
180
Reveal.configure({ loop: true });
181
assert.strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
182
183
Reveal.configure({ loop: false, customTestValue: 1 });
184
assert.strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
185
});
186
187
QUnit.test( 'Reveal.availableRoutes', function( assert ) {
188
Reveal.slide( 0, 0 );
189
assert.deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
190
191
Reveal.slide( 1, 0 );
192
assert.deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
193
});
194
195
QUnit.test( 'Reveal.next', function( assert ) {
196
Reveal.slide( 0, 0 );
197
198
// Step through vertical child slides
199
Reveal.next();
200
assert.deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
201
202
Reveal.next();
203
assert.deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
204
205
Reveal.next();
206
assert.deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
207
208
// Step through fragments
209
Reveal.next();
210
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
211
212
Reveal.next();
213
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
214
215
Reveal.next();
216
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
217
218
Reveal.next();
219
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
220
});
221
222
QUnit.test( 'Reveal.next at end', function( assert ) {
223
Reveal.slide( 3 );
224
225
// We're at the end, this should have no effect
226
Reveal.next();
227
assert.deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
228
229
Reveal.next();
230
assert.deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
231
});
232
233
234
// ---------------------------------------------------------------
235
// FRAGMENT TESTS
236
237
QUnit.module( 'Fragments' );
238
239
QUnit.test( 'Sliding to fragments', function( assert ) {
240
Reveal.slide( 2, 0, -1 );
241
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
242
243
Reveal.slide( 2, 0, 0 );
244
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
245
246
Reveal.slide( 2, 0, 2 );
247
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
248
249
Reveal.slide( 2, 0, 1 );
250
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
251
});
252
253
QUnit.test( 'Hiding all fragments', function( assert ) {
254
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
255
256
Reveal.slide( 2, 0, 0 );
257
assert.strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
258
259
Reveal.slide( 2, 0, -1 );
260
assert.strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
261
});
262
263
QUnit.test( 'Current fragment', function( assert ) {
264
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
265
266
Reveal.slide( 2, 0 );
267
assert.strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
268
269
Reveal.slide( 2, 0, 0 );
270
assert.strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
271
272
Reveal.slide( 1, 0, 0 );
273
assert.strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
274
275
Reveal.slide( 3, 0, 0 );
276
assert.strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
277
});
278
279
QUnit.test( 'Stepping through fragments', function( assert ) {
280
Reveal.slide( 2, 0, -1 );
281
282
// forwards:
283
284
Reveal.next();
285
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
286
287
Reveal.right();
288
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
289
290
Reveal.down();
291
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
292
293
Reveal.down(); // moves to f #3
294
295
// backwards:
296
297
Reveal.prev();
298
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
299
300
Reveal.left();
301
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
302
303
Reveal.up();
304
assert.deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
305
});
306
307
QUnit.test( 'Stepping past fragments', function( assert ) {
308
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
309
310
Reveal.slide( 0, 0, 0 );
311
assert.equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
312
313
Reveal.slide( 3, 0, 0 );
314
assert.equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
315
});
316
317
QUnit.test( 'Fragment indices', function( assert ) {
318
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
319
320
Reveal.slide( 3, 0, 0 );
321
assert.equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
322
323
// This slide has three fragments, first one is index 0, second and third have index 1
324
Reveal.slide( 2, 2, 0 );
325
assert.equal( Reveal.getIndices().f, 0, 'returns correct index for first fragment' );
326
327
Reveal.slide( 2, 2, 1 );
328
assert.equal( Reveal.getIndices().f, 1, 'returns correct index for two fragments with same index' );
329
});
330
331
QUnit.test( 'Index generation', function( assert ) {
332
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
333
334
// These have no indices defined to start with
335
assert.equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
336
assert.equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
337
assert.equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
338
});
339
340
QUnit.test( 'Index normalization', function( assert ) {
341
var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
342
343
// These start out as 1-4-4 and should normalize to 0-1-1
344
assert.equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
345
assert.equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
346
assert.equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
347
});
348
349
QUnit.test( 'fragmentshown event', function( assert ) {
350
assert.expect( 2 );
351
var done = assert.async( 2 );
352
353
var _onEvent = function( event ) {
354
assert.ok( true, 'event fired' );
355
done();
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
Reveal.removeEventListener( 'fragmentshown', _onEvent );
368
});
369
370
QUnit.test( 'fragmenthidden event', function( assert ) {
371
assert.expect( 2 );
372
var done = assert.async( 2 );
373
374
var _onEvent = function( event ) {
375
assert.ok( true, 'event fired' );
376
done();
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
Reveal.removeEventListener( 'fragmenthidden', _onEvent );
388
});
389
390
391
// ---------------------------------------------------------------
392
// AUTO-SLIDE TESTS
393
394
QUnit.module( 'Auto Sliding' );
395
396
QUnit.test( 'Reveal.isAutoSliding', function( assert ) {
397
assert.strictEqual( Reveal.isAutoSliding(), false, 'false by default' );
398
399
Reveal.configure({ autoSlide: 10000 });
400
assert.strictEqual( Reveal.isAutoSliding(), true, 'true after starting' );
401
402
Reveal.configure({ autoSlide: 0 });
403
assert.strictEqual( Reveal.isAutoSliding(), false, 'false after setting to 0' );
404
});
405
406
QUnit.test( 'Reveal.toggleAutoSlide', function( assert ) {
407
Reveal.configure({ autoSlide: 10000 });
408
409
Reveal.toggleAutoSlide();
410
assert.strictEqual( Reveal.isAutoSliding(), false, 'false after first toggle' );
411
Reveal.toggleAutoSlide();
412
assert.strictEqual( Reveal.isAutoSliding(), true, 'true after second toggle' );
413
414
Reveal.configure({ autoSlide: 0 });
415
});
416
417
QUnit.test( 'autoslidepaused', function( assert ) {
418
assert.expect( 1 );
419
var done = assert.async();
420
421
var _onEvent = function( event ) {
422
assert.ok( true, 'event fired' );
423
done();
424
}
425
426
Reveal.addEventListener( 'autoslidepaused', _onEvent );
427
Reveal.configure({ autoSlide: 10000 });
428
Reveal.toggleAutoSlide();
429
430
// cleanup
431
Reveal.configure({ autoSlide: 0 });
432
Reveal.removeEventListener( 'autoslidepaused', _onEvent );
433
});
434
435
QUnit.test( 'autoslideresumed', function( assert ) {
436
assert.expect( 1 );
437
var done = assert.async();
438
439
var _onEvent = function( event ) {
440
assert.ok( true, 'event fired' );
441
done();
442
}
443
444
Reveal.addEventListener( 'autoslideresumed', _onEvent );
445
Reveal.configure({ autoSlide: 10000 });
446
Reveal.toggleAutoSlide();
447
Reveal.toggleAutoSlide();
448
449
// cleanup
450
Reveal.configure({ autoSlide: 0 });
451
Reveal.removeEventListener( 'autoslideresumed', _onEvent );
452
});
453
454
455
// ---------------------------------------------------------------
456
// CONFIGURATION VALUES
457
458
QUnit.module( 'Configuration' );
459
460
QUnit.test( 'Controls', function( assert ) {
461
var controlsElement = document.querySelector( '.reveal>.controls' );
462
463
Reveal.configure({ controls: false });
464
assert.equal( controlsElement.style.display, 'none', 'controls are hidden' );
465
466
Reveal.configure({ controls: true });
467
assert.equal( controlsElement.style.display, 'block', 'controls are visible' );
468
});
469
470
QUnit.test( 'Progress', function( assert ) {
471
var progressElement = document.querySelector( '.reveal>.progress' );
472
473
Reveal.configure({ progress: false });
474
assert.equal( progressElement.style.display, 'none', 'progress are hidden' );
475
476
Reveal.configure({ progress: true });
477
assert.equal( progressElement.style.display, 'block', 'progress are visible' );
478
});
479
480
QUnit.test( 'Loop', function( assert ) {
481
Reveal.configure({ loop: true });
482
483
Reveal.slide( 0, 0 );
484
485
Reveal.left();
486
assert.notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
487
488
Reveal.right();
489
assert.equal( Reveal.getIndices().h, 0, 'looped from end to start' );
490
491
Reveal.configure({ loop: false });
492
});
493
494
495
// ---------------------------------------------------------------
496
// LAZY-LOADING TESTS
497
498
QUnit.module( 'Lazy-Loading' );
499
500
QUnit.test( 'img with data-src', function( assert ) {
501
assert.strictEqual( document.querySelectorAll( '.reveal section img[src]' ).length, 1, 'Image source has been set' );
502
});
503
504
QUnit.test( 'video with data-src', function( assert ) {
505
assert.strictEqual( document.querySelectorAll( '.reveal section video[src]' ).length, 1, 'Video source has been set' );
506
});
507
508
QUnit.test( 'audio with data-src', function( assert ) {
509
assert.strictEqual( document.querySelectorAll( '.reveal section audio[src]' ).length, 1, 'Audio source has been set' );
510
});
511
512
QUnit.test( 'iframe with data-src', function( assert ) {
513
Reveal.slide( 0, 0 );
514
assert.strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 0, 'Iframe source is not set' );
515
Reveal.slide( 2, 1 );
516
assert.strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 1, 'Iframe source is set' );
517
Reveal.slide( 2, 2 );
518
assert.strictEqual( document.querySelectorAll( '.reveal section iframe[src]' ).length, 0, 'Iframe source is not set' );
519
});
520
521
QUnit.test( 'background images', function( assert ) {
522
var imageSource1 = Reveal.getSlide( 0 ).getAttribute( 'data-background-image' );
523
var imageSource2 = Reveal.getSlide( 1, 0 ).getAttribute( 'data-background' );
524
525
// check that the images are applied to the background elements
526
assert.ok( Reveal.getSlideBackground( 0 ).querySelector( '.slide-background-content' ).style.backgroundImage.indexOf( imageSource1 ) !== -1, 'data-background-image worked' );
527
assert.ok( Reveal.getSlideBackground( 1, 0 ).querySelector( '.slide-background-content' ).style.backgroundImage.indexOf( imageSource2 ) !== -1, 'data-background worked' );
528
});
529
530
531
// ---------------------------------------------------------------
532
// EVENT TESTS
533
534
QUnit.module( 'Events' );
535
536
QUnit.test( 'slidechanged', function( assert ) {
537
assert.expect( 3 );
538
var done = assert.async( 3 );
539
540
var _onEvent = function( event ) {
541
assert.ok( true, 'event fired' );
542
done();
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
Reveal.removeEventListener( 'slidechanged', _onEvent );
554
555
});
556
557
QUnit.test( 'paused', function( assert ) {
558
assert.expect( 1 );
559
var done = assert.async();
560
561
var _onEvent = function( event ) {
562
assert.ok( true, 'event fired' );
563
done();
564
}
565
566
Reveal.addEventListener( 'paused', _onEvent );
567
568
Reveal.togglePause();
569
Reveal.togglePause();
570
571
Reveal.removeEventListener( 'paused', _onEvent );
572
});
573
574
QUnit.test( 'resumed', function( assert ) {
575
assert.expect( 1 );
576
var done = assert.async();
577
578
var _onEvent = function( event ) {
579
assert.ok( true, 'event fired' );
580
done();
581
}
582
583
Reveal.addEventListener( 'resumed', _onEvent );
584
585
Reveal.togglePause();
586
Reveal.togglePause();
587
588
Reveal.removeEventListener( 'resumed', _onEvent );
589
});
590
591
} );
592
593
Reveal.initialize();
594
595