test coverage for fragments

This commit is contained in:
Hakim El Hattab 2013-08-23 15:36:16 -04:00
parent 2440e19fab
commit 798fbc3dff

View file

@ -120,6 +120,9 @@ Reveal.addEventListener( 'ready', function() {
test( 'Reveal.availableRoutes', function() { test( 'Reveal.availableRoutes', function() {
Reveal.slide( 0, 0 ); Reveal.slide( 0, 0 );
deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' ); 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() { test( 'Reveal.next', function() {
@ -151,14 +154,94 @@ Reveal.addEventListener( 'ready', function() {
Reveal.next(); Reveal.next();
deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); 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(); Reveal.next();
deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } ); 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() { asyncTest( 'slidechanged', function() {
expect( 1 ); expect( 1 );
var _onSlideChanged = function( event ) { var _onEvent = function( event ) {
ok( true, 'event fired' ); ok( true, 'event fired' );
start(); start();
} }
Reveal.addEventListener( 'slidechanged', _onSlideChanged ); Reveal.addEventListener( 'slidechanged', _onEvent );
// Should trigger the event // Should trigger the event
Reveal.slide( 1, 0 ); Reveal.slide( 1, 0 );
@ -222,7 +305,7 @@ Reveal.addEventListener( 'ready', function() {
// Should not trigger an event since it's the same # // Should not trigger an event since it's the same #
Reveal.slide( 1, 0 ); Reveal.slide( 1, 0 );
Reveal.removeEventListener( 'slidechanged', _onSlideChanged ); Reveal.removeEventListener( 'slidechanged', _onEvent );
}); });