From c7728ba659e11bdbea3105298a1c8f81668627e5 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Aug 2013 19:03:11 -0400 Subject: add unit tests #123 --- test/test.js | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 test/test.js (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..6e11f00 --- /dev/null +++ b/test/test.js @@ -0,0 +1,103 @@ + + +Reveal.addEventListener( 'ready', function() { + + QUnit.module( 'API' ); + + test( 'Reveal.isReady', function() { + ok( Reveal.isReady() === true, 'returns true' ); + }); + + test( 'Reveal.isOverview', function() { + ok( Reveal.isOverview() === false, 'returns false' ); + + Reveal.toggleOverview(); + ok( Reveal.isOverview() === true, 'returns true after toggling on' ); + + Reveal.toggleOverview(); + ok( Reveal.isOverview() === false, 'returns false after toggling off' ); + }); + + test( 'Reveal.isPaused', function() { + ok( Reveal.isPaused() === false, 'returns false' ); + + Reveal.togglePause(); + ok( Reveal.isPaused() === true, 'returns true after pausing' ); + + Reveal.togglePause(); + ok( Reveal.isPaused() === false, 'returns false after resuming' ); + }); + + test( 'Reveal.isFirstSlide', function() { + Reveal.slide( 0 ); + ok( Reveal.isFirstSlide() === true, 'returns true' ); + + Reveal.slide( 1 ); + ok( Reveal.isFirstSlide() === false, 'returns false after navigation' ); + + Reveal.slide( 0 ); + ok( Reveal.isFirstSlide() === true, 'returns true after navigation' ); + }); + + test( 'Reveal.isLastSlide', function() { + Reveal.slide( 0 ); + ok( Reveal.isLastSlide() === false, 'returns false' ); + + Reveal.slide( document.querySelectorAll( '.reveal .slides>section' ).length - 1 ); + ok( Reveal.isLastSlide() === true, 'returns true after navigation' ); + + Reveal.slide( 0 ); + ok( Reveal.isLastSlide() === false, 'returns false after navigation' ); + }); + + test( 'Reveal.getIndices', function() { + var indices = Reveal.getIndices(); + + ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' ); + ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' ); + ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' ); + + Reveal.slide( 1 ); + ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' ); + + Reveal.slide( 1, 2 ); + ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' ); + + Reveal.slide( 0 ); + }); + + test( 'Reveal.getScale', function() { + ok( typeof Reveal.getScale() === 'number', 'has scale' ); + }); + + test( 'Reveal.getConfig', function() { + ok( typeof Reveal.getConfig() === 'object', 'has config' ); + }); + + + QUnit.module( 'Events' ); + + asyncTest( 'slidechanged', function() { + expect( 1 ); + + var _onSlideChanged = function( event ) { + ok( true, 'event fired' ); + start(); + } + + Reveal.addEventListener( 'slidechanged', _onSlideChanged ); + + // Should trigger the event + Reveal.slide( 1 ); + + // Should not trigger an event since it's the same # + Reveal.slide( 1 ); + + Reveal.removeEventListener( 'slidechanged', _onSlideChanged ); + + }); + +} ); + +Reveal.initialize(); + -- cgit v1.2.3 From d49ff9aa5ff99d73e26aa030ef7099164a4849e3 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Aug 2013 19:46:35 -0400 Subject: include info about which slide the assertion applies to --- test/test.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js index 6e11f00..df93661 100644 --- a/test/test.js +++ b/test/test.js @@ -30,24 +30,26 @@ Reveal.addEventListener( 'ready', function() { test( 'Reveal.isFirstSlide', function() { Reveal.slide( 0 ); - ok( Reveal.isFirstSlide() === true, 'returns true' ); + ok( Reveal.isFirstSlide() === true, 'returns true after Reveal.slide( 0 )' ); Reveal.slide( 1 ); - ok( Reveal.isFirstSlide() === false, 'returns false after navigation' ); + ok( Reveal.isFirstSlide() === false, 'returns false after Reveal.slide( 1 )' ); Reveal.slide( 0 ); - ok( Reveal.isFirstSlide() === true, 'returns true after navigation' ); + ok( Reveal.isFirstSlide() === true, 'returns true after Reveal.slide( 0 )' ); }); test( 'Reveal.isLastSlide', function() { Reveal.slide( 0 ); - ok( Reveal.isLastSlide() === false, 'returns false' ); + ok( Reveal.isLastSlide() === false, 'returns false after Reveal.slide( 0 )' ); - Reveal.slide( document.querySelectorAll( '.reveal .slides>section' ).length - 1 ); - ok( Reveal.isLastSlide() === true, 'returns true after navigation' ); + var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1; + + Reveal.slide( lastSlideIndex ); + ok( Reveal.isLastSlide() === true, 'returns true after Reveal.slide( '+ lastSlideIndex +' )' ); Reveal.slide( 0 ); - ok( Reveal.isLastSlide() === false, 'returns false after navigation' ); + ok( Reveal.isLastSlide() === false, 'returns false after Reveal.slide( 0 )' ); }); test( 'Reveal.getIndices', function() { -- cgit v1.2.3 From c01e1b648bdbdd80d5bfbb959caf18fc9adca2c2 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Aug 2013 19:51:00 -0400 Subject: more tests, use stricEqual and deepEqual assertions where appropriate #123 --- test/test.js | 49 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 36 insertions(+), 13 deletions(-) (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js index df93661..073b803 100644 --- a/test/test.js +++ b/test/test.js @@ -2,54 +2,58 @@ Reveal.addEventListener( 'ready', function() { + + // --------------------------------------------------------------- + // API TESTS + QUnit.module( 'API' ); test( 'Reveal.isReady', function() { - ok( Reveal.isReady() === true, 'returns true' ); + strictEqual( Reveal.isReady(), true, 'returns true' ); }); test( 'Reveal.isOverview', function() { - ok( Reveal.isOverview() === false, 'returns false' ); + strictEqual( Reveal.isOverview(), false, 'false by default' ); Reveal.toggleOverview(); - ok( Reveal.isOverview() === true, 'returns true after toggling on' ); + strictEqual( Reveal.isOverview(), true, 'true after toggling on' ); Reveal.toggleOverview(); - ok( Reveal.isOverview() === false, 'returns false after toggling off' ); + strictEqual( Reveal.isOverview(), false, 'false after toggling off' ); }); test( 'Reveal.isPaused', function() { - ok( Reveal.isPaused() === false, 'returns false' ); + strictEqual( Reveal.isPaused(), false, 'false by default' ); Reveal.togglePause(); - ok( Reveal.isPaused() === true, 'returns true after pausing' ); + strictEqual( Reveal.isPaused(), true, 'true after pausing' ); Reveal.togglePause(); - ok( Reveal.isPaused() === false, 'returns false after resuming' ); + strictEqual( Reveal.isPaused(), false, 'false after resuming' ); }); test( 'Reveal.isFirstSlide', function() { Reveal.slide( 0 ); - ok( Reveal.isFirstSlide() === true, 'returns true after Reveal.slide( 0 )' ); + strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0 )' ); Reveal.slide( 1 ); - ok( Reveal.isFirstSlide() === false, 'returns false after Reveal.slide( 1 )' ); + strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1 )' ); Reveal.slide( 0 ); - ok( Reveal.isFirstSlide() === true, 'returns true after Reveal.slide( 0 )' ); + strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0 )' ); }); test( 'Reveal.isLastSlide', function() { Reveal.slide( 0 ); - ok( Reveal.isLastSlide() === false, 'returns false after Reveal.slide( 0 )' ); + strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0 )' ); var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1; Reveal.slide( lastSlideIndex ); - ok( Reveal.isLastSlide() === true, 'returns true after Reveal.slide( '+ lastSlideIndex +' )' ); + strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( '+ lastSlideIndex +' )' ); Reveal.slide( 0 ); - ok( Reveal.isLastSlide() === false, 'returns false after Reveal.slide( 0 )' ); + strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0 )' ); }); test( 'Reveal.getIndices', function() { @@ -76,6 +80,24 @@ Reveal.addEventListener( 'ready', function() { ok( typeof Reveal.getConfig() === 'object', 'has config' ); }); + test( 'Reveal.availableRoutes', function() { + Reveal.slide( 0 ); + deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' ); + }); + + test( 'Reveal.configure', function() { + strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' ); + + Reveal.configure({ loop: true }); + strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' ); + + Reveal.configure({ loop: false, customTestValue: 1 }); + strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' ); + }); + + + // --------------------------------------------------------------- + // EVENT TESTS QUnit.module( 'Events' ); @@ -99,6 +121,7 @@ Reveal.addEventListener( 'ready', function() { }); + } ); Reveal.initialize(); -- cgit v1.2.3 From 45fd91f962b01e52fba54e5d907031544fe78e21 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Aug 2013 20:09:40 -0400 Subject: more tests, enable test page scroll overflow #123 --- test/test.html | 2 +- test/test.js | 69 ++++++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 49 insertions(+), 22 deletions(-) (limited to 'test/test.js') diff --git a/test/test.html b/test/test.html index 5599831..81d2f16 100644 --- a/test/test.html +++ b/test/test.html @@ -10,7 +10,7 @@ -
+ diff --git a/test/test.js b/test/test.js index 073b803..f7c785f 100644 --- a/test/test.js +++ b/test/test.js @@ -33,27 +33,27 @@ Reveal.addEventListener( 'ready', function() { }); test( 'Reveal.isFirstSlide', function() { - Reveal.slide( 0 ); - strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0 )' ); + Reveal.slide( 0, 0 ); + strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' ); - Reveal.slide( 1 ); - strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1 )' ); + Reveal.slide( 1, 0 ); + strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' ); - Reveal.slide( 0 ); - strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0 )' ); + Reveal.slide( 0, 0 ); + strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' ); }); test( 'Reveal.isLastSlide', function() { - Reveal.slide( 0 ); - strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0 )' ); + Reveal.slide( 0, 0 ); + strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' ); var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1; - Reveal.slide( lastSlideIndex ); - strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( '+ lastSlideIndex +' )' ); + Reveal.slide( lastSlideIndex, 0 ); + strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' ); - Reveal.slide( 0 ); - strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0 )' ); + Reveal.slide( 0, 0 ); + strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' ); }); test( 'Reveal.getIndices', function() { @@ -63,13 +63,32 @@ Reveal.addEventListener( 'ready', function() { ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' ); ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' ); - Reveal.slide( 1 ); + Reveal.slide( 1, 0 ); ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' ); Reveal.slide( 1, 2 ); ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' ); - Reveal.slide( 0 ); + Reveal.slide( 0, 0 ); + }); + + test( 'Reveal.getSlide', function() { + var firstSlide = document.querySelector( '.reveal .slides>section:first-child' ); + + equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' ); + + strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' ); + }); + + test( 'Reveal.getPreviousSlide/getCurrentSlide', function() { + Reveal.slide( 0, 0 ); + Reveal.slide( 1, 0 ); + + var firstSlide = document.querySelector( '.reveal .slides>section:first-child' ); + var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' ); + + equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' ); + equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' ); }); test( 'Reveal.getScale', function() { @@ -80,11 +99,6 @@ Reveal.addEventListener( 'ready', function() { ok( typeof Reveal.getConfig() === 'object', 'has config' ); }); - test( 'Reveal.availableRoutes', function() { - Reveal.slide( 0 ); - deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' ); - }); - test( 'Reveal.configure', function() { strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' ); @@ -95,6 +109,19 @@ Reveal.addEventListener( 'ready', function() { strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' ); }); + test( 'Reveal.availableRoutes', function() { + Reveal.slide( 0, 0 ); + deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' ); + }); + + + // --------------------------------------------------------------- + // TODO: FRAGMENT TESTS + + + // --------------------------------------------------------------- + // TODO: CONFIGURATION VALUES + // --------------------------------------------------------------- // EVENT TESTS @@ -112,10 +139,10 @@ Reveal.addEventListener( 'ready', function() { Reveal.addEventListener( 'slidechanged', _onSlideChanged ); // Should trigger the event - Reveal.slide( 1 ); + Reveal.slide( 1, 0 ); // Should not trigger an event since it's the same # - Reveal.slide( 1 ); + Reveal.slide( 1, 0 ); Reveal.removeEventListener( 'slidechanged', _onSlideChanged ); -- cgit v1.2.3 From b3db69745d05c8180258d3fa6efed9f790cd4317 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Aug 2013 20:27:41 -0400 Subject: more tests #123 --- test/test.js | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js index f7c785f..ef66ea3 100644 --- a/test/test.js +++ b/test/test.js @@ -1,4 +1,12 @@ +// These tests expect the DOM to contain a presentation +// with the following slide structure: +// +// 1 +// 2 - Three sub-slides +// 3 - Three fragment elements +// 4 + Reveal.addEventListener( 'ready', function() { @@ -114,13 +122,69 @@ Reveal.addEventListener( 'ready', function() { deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' ); }); + test( 'Reveal.next', function() { + Reveal.slide( 0, 0 ); + + // Step through the vertical child slides + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } ); + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } ); + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } ); + + // There's fragments on this slide + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } ); + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } ); + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } ); + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 3 } ); + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); + + // We're at the end + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); + }); + // --------------------------------------------------------------- // TODO: FRAGMENT TESTS // --------------------------------------------------------------- - // TODO: CONFIGURATION VALUES + // CONFIGURATION VALUES + + QUnit.module( 'Configuration' ); + + test( 'Controls', function() { + var controlsElement = document.querySelector( '.reveal>.controls' ); + + Reveal.configure({ controls: false }); + equal( controlsElement.style.display, 'none', 'controls are hidden' ); + + Reveal.configure({ controls: true }); + equal( controlsElement.style.display, 'block', 'controls are visible' ); + }); + + test( 'Progress', function() { + var progressElement = document.querySelector( '.reveal>.progress' ); + + Reveal.configure({ progress: false }); + equal( progressElement.style.display, 'none', 'progress are hidden' ); + + Reveal.configure({ progress: true }); + equal( progressElement.style.display, 'block', 'progress are visible' ); + }); // --------------------------------------------------------------- -- cgit v1.2.3 From 5cf49561a88565ff94af288408ed7ffed64c8815 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Thu, 22 Aug 2013 21:38:37 -0400 Subject: add test for loop setting --- test/test.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js index ef66ea3..7288b01 100644 --- a/test/test.js +++ b/test/test.js @@ -186,6 +186,20 @@ Reveal.addEventListener( 'ready', function() { equal( progressElement.style.display, 'block', 'progress are visible' ); }); + test( 'Loop', function() { + Reveal.configure({ loop: true }); + + Reveal.slide( 0, 0 ); + + Reveal.left(); + notEqual( Reveal.getIndices().h, 0, 'looped from start to end' ); + + Reveal.right(); + equal( Reveal.getIndices().h, 0, 'looped from end to start' ); + + Reveal.configure({ loop: false }); + }); + // --------------------------------------------------------------- // EVENT TESTS -- cgit v1.2.3 From 798fbc3dff202780723d44d021ee9064ec7443a9 Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Fri, 23 Aug 2013 15:36:16 -0400 Subject: test coverage for fragments --- test/test.js | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 88 insertions(+), 5 deletions(-) (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js index 7288b01..ff1b675 100644 --- a/test/test.js +++ b/test/test.js @@ -120,6 +120,9 @@ Reveal.addEventListener( 'ready', function() { test( 'Reveal.availableRoutes', function() { Reveal.slide( 0, 0 ); deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' ); + + Reveal.slide( 1, 0 ); + deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' ); }); test( 'Reveal.next', function() { @@ -151,14 +154,94 @@ Reveal.addEventListener( 'ready', function() { Reveal.next(); deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); - // We're at the end + // We're at the end, this should have no effect Reveal.next(); deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); }); // --------------------------------------------------------------- - // TODO: FRAGMENT TESTS + // FRAGMENT TESTS + + QUnit.module( 'Fragments' ); + + test( 'Sliding to fragments', function() { + Reveal.slide( 2, 0, 0 ); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' ); + + Reveal.slide( 2, 0, 2 ); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' ); + + Reveal.slide( 2, 0, 1 ); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' ); + }); + + test( 'Stepping through fragments', function() { + Reveal.slide( 2, 0, 0 ); + + // forwards: + + Reveal.next(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'next() goes to next fragment' ); + + Reveal.right(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'right() goes to next fragment' ); + + Reveal.down(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 3 }, 'down() goes to next fragment' ); + + Reveal.down(); // moves to f #3 + + // backwards: + + Reveal.prev(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' ); + + Reveal.left(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' ); + + Reveal.up(); + deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'left() goes to prev fragment' ); + }); + + asyncTest( 'fragmentshown event', function() { + expect( 2 ); + start(); + + var _onEvent = function( event ) { + ok( true, 'event fired' ); + } + + Reveal.addEventListener( 'fragmentshown', _onEvent ); + + Reveal.slide( 2, 0 ); + Reveal.slide( 2, 0 ); // should do nothing + Reveal.slide( 2, 0, 0 ); // should do nothing + Reveal.next(); + Reveal.next(); + Reveal.prev(); // shouldn't fire fragmentshown + + Reveal.removeEventListener( 'fragmentshown', _onEvent ); + }); + + asyncTest( 'fragmenthidden event', function() { + expect( 2 ); + start(); + + var _onEvent = function( event ) { + ok( true, 'event fired' ); + } + + Reveal.addEventListener( 'fragmenthidden', _onEvent ); + + Reveal.slide( 2, 0, 2 ); + Reveal.slide( 2, 0, 2 ); // should do nothing + Reveal.prev(); + Reveal.prev(); + Reveal.next(); // shouldn't fire fragmenthidden + + Reveal.removeEventListener( 'fragmenthidden', _onEvent ); + }); // --------------------------------------------------------------- @@ -209,12 +292,12 @@ Reveal.addEventListener( 'ready', function() { asyncTest( 'slidechanged', function() { expect( 1 ); - var _onSlideChanged = function( event ) { + var _onEvent = function( event ) { ok( true, 'event fired' ); start(); } - Reveal.addEventListener( 'slidechanged', _onSlideChanged ); + Reveal.addEventListener( 'slidechanged', _onEvent ); // Should trigger the event Reveal.slide( 1, 0 ); @@ -222,7 +305,7 @@ Reveal.addEventListener( 'ready', function() { // Should not trigger an event since it's the same # Reveal.slide( 1, 0 ); - Reveal.removeEventListener( 'slidechanged', _onSlideChanged ); + Reveal.removeEventListener( 'slidechanged', _onEvent ); }); -- cgit v1.2.3 From f2155285754358f51d4ac3659b39456058f2095a Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Fri, 23 Aug 2013 15:57:28 -0400 Subject: pause mode tests --- test/test.js | 50 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) (limited to 'test/test.js') diff --git a/test/test.js b/test/test.js index ff1b675..08c5c37 100644 --- a/test/test.js +++ b/test/test.js @@ -226,7 +226,6 @@ Reveal.addEventListener( 'ready', function() { asyncTest( 'fragmenthidden event', function() { expect( 2 ); - start(); var _onEvent = function( event ) { ok( true, 'event fired' ); @@ -240,6 +239,8 @@ Reveal.addEventListener( 'ready', function() { Reveal.prev(); Reveal.next(); // shouldn't fire fragmenthidden + start(); + Reveal.removeEventListener( 'fragmenthidden', _onEvent ); }); @@ -290,25 +291,60 @@ Reveal.addEventListener( 'ready', function() { QUnit.module( 'Events' ); asyncTest( 'slidechanged', function() { - expect( 1 ); + expect( 3 ); var _onEvent = function( event ) { ok( true, 'event fired' ); - start(); } Reveal.addEventListener( 'slidechanged', _onEvent ); - // Should trigger the event - Reveal.slide( 1, 0 ); + Reveal.slide( 1, 0 ); // should trigger + Reveal.slide( 1, 0 ); // should do nothing + Reveal.next(); // should trigger + Reveal.slide( 3, 0 ); // should trigger + Reveal.next(); // should do nothing - // Should not trigger an event since it's the same # - Reveal.slide( 1, 0 ); + start(); Reveal.removeEventListener( 'slidechanged', _onEvent ); }); + asyncTest( 'paused', function() { + expect( 1 ); + + var _onEvent = function( event ) { + ok( true, 'event fired' ); + } + + Reveal.addEventListener( 'paused', _onEvent ); + + Reveal.togglePause(); + Reveal.togglePause(); + + start(); + + Reveal.removeEventListener( 'paused', _onEvent ); + }); + + asyncTest( 'resumed', function() { + expect( 1 ); + + var _onEvent = function( event ) { + ok( true, 'event fired' ); + } + + Reveal.addEventListener( 'resumed', _onEvent ); + + Reveal.togglePause(); + Reveal.togglePause(); + + start(); + + Reveal.removeEventListener( 'resumed', _onEvent ); + }); + } ); -- cgit v1.2.3 From 1c8fd60595134b8501fa1b4d07dcc11d6ec65d8c Mon Sep 17 00:00:00 2001 From: Hakim El Hattab Date: Sat, 24 Aug 2013 10:52:35 -0400 Subject: add test task, avoid attempt to run tests in unrelated html files --- Gruntfile.js | 5 ++++- package.json | 2 +- test/test.js | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'test/test.js') diff --git a/Gruntfile.js b/Gruntfile.js index 5daa4e5..4df3181 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -17,7 +17,7 @@ module.exports = function(grunt) { // Tests will be added soon qunit: { - files: [ 'test/**/*.html' ] + files: [ 'test/*.html' ] }, uglify: { @@ -130,4 +130,7 @@ module.exports = function(grunt) { // Serve presentation locally grunt.registerTask( 'serve', [ 'connect', 'watch' ] ); + // Run tests + grunt.registerTask( 'test', [ 'jshint', 'qunit' ] ); + }; diff --git a/package.json b/package.json index 2c7036e..caef3f9 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "homepage": "http://lab.hakim.se/reveal-js", "subdomain": "revealjs", "scripts": { - "test": "grunt jshint qunit", + "test": "grunt test", "start": "" }, "author": { diff --git a/test/test.js b/test/test.js index 08c5c37..00c9622 100644 --- a/test/test.js +++ b/test/test.js @@ -206,7 +206,6 @@ Reveal.addEventListener( 'ready', function() { asyncTest( 'fragmentshown event', function() { expect( 2 ); - start(); var _onEvent = function( event ) { ok( true, 'event fired' ); @@ -221,6 +220,8 @@ Reveal.addEventListener( 'ready', function() { Reveal.next(); Reveal.prev(); // shouldn't fire fragmentshown + start(); + Reveal.removeEventListener( 'fragmentshown', _onEvent ); }); -- cgit v1.2.3