12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- QUnit.test( 'auto play', function( assert ) {
- 'use strict';
- var done = assert.async();
- var flkty = new Flickity( '#auto-play', {
- autoPlay: 200
- });
- var selectCount = 0;
- var testDelay = flkty.options.autoPlay + 100;
- var tests;
- function nextTest() {
- if ( tests.length ) {
- var next = tests.shift();
- next();
- } else {
- flkty.stopPlayer();
- done();
- }
- }
- tests = [
- // check that player runs
- function() {
- var onSelect = function() {
- selectCount++;
- if ( selectCount < 5 ) {
- assert.equal( flkty.selectedIndex, selectCount % flkty.cells.length,
- 'auto-played to ' + flkty.selectedIndex );
- } else if ( selectCount == 5 ) {
- // HACK do async, should be able to stop after a tick
- flkty.off( 'select', onSelect );
- nextTest();
- }
- };
- flkty.on( 'select', onSelect );
- },
- // pause & unpause
- function() {
- function onPauseSelect() {
- assert.ok( false, 'player ticked during pause' );
- }
- flkty.on( 'select', onPauseSelect );
- flkty.pausePlayer();
- setTimeout( function() {
- assert.ok( true, 'player did not tick during pause' );
- flkty.off( 'select', onPauseSelect );
- flkty.once( 'select', function() {
- assert.ok( true, 'player resumed after unpausing' );
- nextTest();
- });
- flkty.unpausePlayer();
- }, testDelay );
- },
- // stopPlayer
- function() {
- var ticks = 0;
- function onSelect() {
- ticks++;
- }
- flkty.stopPlayer();
- setTimeout( function() {
- flkty.off( 'select', onSelect );
- assert.equal( ticks, 0, 'no ticks after stopped' );
- nextTest();
- }, testDelay * 2 );
- },
- // double playPlayer()
- function() {
- var ticks = 0;
- function onSelect() {
- ticks++;
- }
- flkty.stopPlayer();
- flkty.on( 'select', onSelect );
- flkty.playPlayer();
- flkty.playPlayer();
- setTimeout( function() {
- flkty.off( 'select', onSelect );
- assert.equal( ticks, 1, 'only one tick after double playPlayer' );
- nextTest();
- }, testDelay );
- },
- ];
- nextTest();
- });
|