correction && add form && add slide && add masonry && css
This commit is contained in:
29
node_modules/flickity/test/unit/adaptive-height.js
generated
vendored
Normal file
29
node_modules/flickity/test/unit/adaptive-height.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
QUnit.test( 'adaptiveHeight', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var flkty = new Flickity( '#adaptive-height', {
|
||||
adaptiveHeight: true
|
||||
});
|
||||
|
||||
// 2,1,3, 1,4,2, 1,2,1
|
||||
|
||||
function checkSelectHeight( index, height ) {
|
||||
flkty.select( index, false, true );
|
||||
assert.equal( flkty.viewport.style.height, height + 'px', 'slide ' + index );
|
||||
}
|
||||
|
||||
checkSelectHeight( 0, 200 );
|
||||
checkSelectHeight( 1, 100 );
|
||||
checkSelectHeight( 2, 300 );
|
||||
checkSelectHeight( 3, 100 );
|
||||
checkSelectHeight( 4, 400 );
|
||||
checkSelectHeight( 5, 200 );
|
||||
|
||||
flkty.options.groupCells = true;
|
||||
flkty.resize();
|
||||
|
||||
checkSelectHeight( 0, 300 );
|
||||
checkSelectHeight( 1, 400 );
|
||||
checkSelectHeight( 2, 200 );
|
||||
|
||||
});
|
88
node_modules/flickity/test/unit/add-remove-cells.js
generated
vendored
Normal file
88
node_modules/flickity/test/unit/add-remove-cells.js
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
QUnit.test( 'add/remove cells', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
function makeCellElem() {
|
||||
var cellElem = document.createElement('div');
|
||||
cellElem.className = 'cell';
|
||||
return cellElem;
|
||||
}
|
||||
|
||||
// position values can be off by 0.1% or 1px
|
||||
function isPositionApprox( value, expected ) {
|
||||
var isPercent = value.indexOf('%') != -1;
|
||||
value = parseFloat( value );
|
||||
var diff = Math.abs( expected - value );
|
||||
return isPercent ? diff < 0.1 : diff <= 1;
|
||||
}
|
||||
|
||||
var elem = document.querySelector('#add-remove-cells');
|
||||
var flkty = new Flickity( elem );
|
||||
var sliderElem = elem.querySelector('.flickity-slider');
|
||||
|
||||
function checkCellElem( cellElem, index, message ) {
|
||||
assert.equal( sliderElem.children[ index ], cellElem, message + ' cell element in DOM correct' );
|
||||
assert.equal( flkty.cells[ index ].element, cellElem, message + ' element added as cell' );
|
||||
assert.ok( isPositionApprox( cellElem.style.left, index * 25 ), ' element positioned' );
|
||||
}
|
||||
|
||||
// prepend cell element
|
||||
var cellElem = makeCellElem();
|
||||
flkty.prepend( cellElem );
|
||||
checkCellElem( cellElem, 0, 'prepended' );
|
||||
assert.equal( flkty.selectedIndex, 1, 'selectedIndex +1 after prepend' );
|
||||
// append cell element
|
||||
cellElem = makeCellElem();
|
||||
flkty.append( cellElem );
|
||||
var lastIndex = flkty.cells.length - 1;
|
||||
checkCellElem( cellElem, lastIndex, 'appended' );
|
||||
assert.equal( flkty.selectedIndex, 1, 'selectedIndex same after prepend' );
|
||||
// insert single cell element
|
||||
cellElem = makeCellElem(); // this one gets removed first
|
||||
flkty.select( 2 );
|
||||
flkty.insert( cellElem, 2 );
|
||||
checkCellElem( cellElem, 2, 'single inserted' );
|
||||
assert.equal( flkty.selectedIndex, 3, 'selectedIndex +1 after insert before' );
|
||||
flkty.insert( makeCellElem(), 4 );
|
||||
assert.equal( flkty.selectedIndex, 3, 'selectedIndex same after insert before' );
|
||||
// insert multiple cell elements
|
||||
var cellElems = [ makeCellElem(), makeCellElem(), makeCellElem() ];
|
||||
flkty.insert( cellElems, 3 );
|
||||
checkCellElem( cellElems[0], 3, 'first multiple inserted' );
|
||||
checkCellElem( cellElems[1], 4, 'second multiple inserted' );
|
||||
checkCellElem( cellElems[2], 5, 'third multiple inserted' );
|
||||
assert.equal( flkty.selectedIndex, 6, 'selectedIndex +6 after 3 insert before' );
|
||||
|
||||
function checkCellPositions() {
|
||||
var isGap = false;
|
||||
for ( var i=0, len = flkty.cells.length; i < len; i++ ) {
|
||||
var cell = flkty.cells[i];
|
||||
if ( !isPositionApprox( cell.element.style.left, i * 25 ) ) {
|
||||
assert.ok( false, 'gap in cell position ' + i + ' after removal' );
|
||||
isGap = true;
|
||||
}
|
||||
}
|
||||
assert.ok( !isGap, 'no gaps in cell positions' );
|
||||
}
|
||||
|
||||
// remove single cell element that was inserted
|
||||
var len = flkty.cells.length;
|
||||
flkty.remove( cellElem );
|
||||
assert.equal( len - sliderElem.children.length, 1, 'element removed from DOM' );
|
||||
assert.equal( len - flkty.cells.length, 1, 'cell removed' );
|
||||
assert.equal( flkty.selectedIndex, 5, 'selectedIndex -1 after remove before' );
|
||||
checkCellPositions();
|
||||
// remove multiple
|
||||
len = flkty.cells.length;
|
||||
flkty.select( 4 );
|
||||
flkty.remove([ cellElems[2], cellElems[0], cellElems[1] ]);
|
||||
assert.equal( len - sliderElem.children.length, 3, 'elements removed from DOM' );
|
||||
assert.equal( len - flkty.cells.length, 3, 'cells removed' );
|
||||
checkCellPositions();
|
||||
|
||||
// remove all cells
|
||||
flkty.remove( flkty.getCellElements() );
|
||||
assert.equal( flkty.cells.length, 0, 'all cells removed' );
|
||||
flkty.resize();
|
||||
assert.ok( true, 'resize with zero items didnt freak out' );
|
||||
|
||||
});
|
91
node_modules/flickity/test/unit/auto-play.js
generated
vendored
Normal file
91
node_modules/flickity/test/unit/auto-play.js
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
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();
|
||||
|
||||
});
|
32
node_modules/flickity/test/unit/cell-selector.js
generated
vendored
Normal file
32
node_modules/flickity/test/unit/cell-selector.js
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
QUnit.test( 'cellSelector', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var elem = document.querySelector('#cell-selector');
|
||||
var notCell1 = elem.querySelector('.not-cell1');
|
||||
var notCell2 = elem.querySelector('.not-cell2');
|
||||
|
||||
var flkty = new Flickity( elem, {
|
||||
cellSelector: '.cell'
|
||||
});
|
||||
|
||||
var cellsMatchSelector = true;
|
||||
for ( var i=0, len = flkty.cells.length; i < len; i++ ) {
|
||||
var cell = flkty.cells[i];
|
||||
var isMatch = matchesSelector( cell.element, flkty.options.cellSelector );
|
||||
cellsMatchSelector = cellsMatchSelector && isMatch;
|
||||
}
|
||||
|
||||
// getCellElements()
|
||||
var cellElems = flkty.getCellElements();
|
||||
var queriedCellElems = elem.querySelectorAll( flkty.options.cellSelector );
|
||||
assert.equal( cellElems.length, flkty.cells.length, 'getCellElements returns corrent number of elements' );
|
||||
for( i=0, len = cellElems.length; i < len; i++ ) {
|
||||
assert.equal( cellElems[i], queriedCellElems[i], 'cell element same as queried cell element' );
|
||||
}
|
||||
|
||||
assert.ok( cellsMatchSelector, 'all cell elements match cellSelector' );
|
||||
|
||||
assert.equal( notCell1.parentNode, elem, 'notCell1 parent node is still gallery' );
|
||||
assert.equal( notCell2.parentNode, elem, 'notCell2 parent node is still gallery' );
|
||||
|
||||
});
|
47
node_modules/flickity/test/unit/change.js
generated
vendored
Normal file
47
node_modules/flickity/test/unit/change.js
generated
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
QUnit.test( 'change', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var done = assert.async();
|
||||
|
||||
function onInitChange() {
|
||||
assert.ok( false, 'change should not trigger on init' );
|
||||
}
|
||||
|
||||
new Flickity( '#change', {
|
||||
on: {
|
||||
change: onInitChange,
|
||||
ready: function() {
|
||||
// define events last to first for strict
|
||||
var onChangeC = function( index ) {
|
||||
assert.equal( index, 0, 'change triggered on select back to 0' );
|
||||
done();
|
||||
};
|
||||
|
||||
var onChangeB = function() {
|
||||
assert.ok( false, 'change should not trigger on same select' );
|
||||
};
|
||||
|
||||
var onSelectB = function( index ) {
|
||||
assert.equal( index, 1, 'select triggered on same select 1' );
|
||||
this.off( 'change', onChangeB );
|
||||
this.once( 'change', onChangeC );
|
||||
this.select( 0, false, true );
|
||||
};
|
||||
|
||||
var onChangeA = function( index ) {
|
||||
assert.equal( index, 1, 'change triggered, selected 1');
|
||||
this.once( 'change', onChangeB );
|
||||
this.once( 'select', onSelectB );
|
||||
// select 1 again
|
||||
this.select( 1, false, true );
|
||||
};
|
||||
|
||||
// kick off
|
||||
this.off( 'change', onInitChange );
|
||||
this.once( 'change', onChangeA );
|
||||
this.select( 1, false, true );
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
});
|
21
node_modules/flickity/test/unit/contain.js
generated
vendored
Normal file
21
node_modules/flickity/test/unit/contain.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
QUnit.test( 'contain', function( assert ) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var flkty = new Flickity( '#contain', {
|
||||
contain: true
|
||||
});
|
||||
|
||||
assert.equal( Math.round( flkty.x + flkty.cursorPosition ), 0, 'selected at 0, position left edge' );
|
||||
flkty.select( 1 );
|
||||
flkty.positionSliderAtSelected();
|
||||
assert.equal( Math.round( flkty.x + flkty.cursorPosition ), 0, 'selected at 1, position left edge' );
|
||||
flkty.select( 4 );
|
||||
flkty.positionSliderAtSelected();
|
||||
var endLimit = flkty.slideableWidth - flkty.size.innerWidth * ( 1 - flkty.cellAlign );
|
||||
assert.equal( Math.round( -endLimit ), Math.round( flkty.x ), 'selected at 4, position right edge' );
|
||||
flkty.select( 5 );
|
||||
flkty.positionSliderAtSelected();
|
||||
assert.equal( Math.round( -endLimit ), Math.round( flkty.x ), 'selected at 5, position right edge' );
|
||||
|
||||
});
|
25
node_modules/flickity/test/unit/destroy.js
generated
vendored
Normal file
25
node_modules/flickity/test/unit/destroy.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
QUnit.test( 'destroy', function( assert ) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var elem = document.querySelector('#destroy');
|
||||
var flkty = new Flickity( elem );
|
||||
|
||||
var done = assert.async();
|
||||
// do it async
|
||||
setTimeout( function() {
|
||||
flkty.destroy();
|
||||
assert.strictEqual( elem.flickityGUID, undefined, 'flickityGUID removed' );
|
||||
assert.ok( !flkty.isActive, 'not active' );
|
||||
assert.ok( !Flickity.data( elem ), '.data() returns falsey' );
|
||||
assert.ok( elem.children[0], '.cell', 'cell is back as first child' );
|
||||
assert.ok( !matchesSelector( elem, '.flickity-enabled'), 'flickity-enabled class removed' );
|
||||
assert.ok( !elem.querySelector('.flickity-prev-next-button'), 'no buttons' );
|
||||
assert.ok( !elem.querySelector('.flickity-page-dots'), 'no page dots' );
|
||||
assert.ok( !elem.style.height, 'no height set' );
|
||||
assert.ok( !elem.children[0].style.left, 'first cell has no left position' );
|
||||
|
||||
done();
|
||||
}, 20 );
|
||||
|
||||
});
|
188
node_modules/flickity/test/unit/drag.js
generated
vendored
Normal file
188
node_modules/flickity/test/unit/drag.js
generated
vendored
Normal file
@@ -0,0 +1,188 @@
|
||||
( function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
var utils = window.fizzyUIUtils;
|
||||
|
||||
function noop() {}
|
||||
|
||||
var fakeDrag = window.fakeDrag = function( flkty, positions ) {
|
||||
|
||||
function fakeEvent( type, pageX ) {
|
||||
return {
|
||||
type: type,
|
||||
pageX: pageX,
|
||||
pageY: 0,
|
||||
preventDefault: noop,
|
||||
target: flkty.viewport
|
||||
};
|
||||
}
|
||||
|
||||
var hasBeenDown = false;
|
||||
|
||||
function triggerEvent() {
|
||||
var position = positions.shift();
|
||||
// down or move event
|
||||
if ( !hasBeenDown ) {
|
||||
var downEvent = fakeEvent( 'mousedown', position );
|
||||
flkty._pointerDown( downEvent, downEvent );
|
||||
hasBeenDown = true;
|
||||
} else {
|
||||
var moveEvent = fakeEvent( 'mousemove', position );
|
||||
flkty._pointerMove( moveEvent, moveEvent );
|
||||
}
|
||||
|
||||
if ( positions.length ) {
|
||||
// loop next
|
||||
setTimeout( triggerEvent, 40 );
|
||||
} else {
|
||||
// up event
|
||||
var upEvent = fakeEvent( 'mouseup', position );
|
||||
flkty._pointerUp( upEvent, upEvent );
|
||||
}
|
||||
}
|
||||
|
||||
triggerEvent();
|
||||
};
|
||||
|
||||
var dragTests;
|
||||
// do each drag test one after another
|
||||
function getDoNextDragTest( done ) {
|
||||
return function doNextDragTest() {
|
||||
if ( dragTests.length ) {
|
||||
var dragTest = dragTests.shift();
|
||||
dragTest();
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// flickity, dragPositions, index, callback, message
|
||||
function getFakeDragTest( args ) {
|
||||
var assert = args.assert;
|
||||
var flkty = args.flickity;
|
||||
var msgCell = 'slide[' + args.index + ']';
|
||||
|
||||
return function fakeDragTest() {
|
||||
var selectMsg = ( args.message ? args.message + '. ' : '' ) + 'selected ' + msgCell;
|
||||
flkty.once( 'select', function() {
|
||||
assert.equal( flkty.selectedIndex, args.index, selectMsg );
|
||||
});
|
||||
|
||||
var settleMsg = ( args.message ? args.message + '. ' : '' ) + 'settled ' + msgCell;
|
||||
var target = flkty.slides[ args.index ].target;
|
||||
flkty.once( 'settle', function() {
|
||||
assert.equal( Math.round( -flkty.x ), Math.round( target ), settleMsg );
|
||||
setTimeout( args.callback );
|
||||
});
|
||||
|
||||
fakeDrag( args.flickity, args.dragPositions );
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
QUnit.test( 'drag', function( assert ) {
|
||||
// async test
|
||||
var done = assert.async();
|
||||
|
||||
var flkty = new Flickity('#drag');
|
||||
|
||||
var doNextDragTest = getDoNextDragTest( done );
|
||||
|
||||
function getDragTest( args ) {
|
||||
args = utils.extend( args, {
|
||||
assert: assert,
|
||||
flickity: flkty,
|
||||
callback: doNextDragTest
|
||||
});
|
||||
return getFakeDragTest( args );
|
||||
}
|
||||
|
||||
dragTests = [
|
||||
getDragTest({
|
||||
message: 'drag to 2nd cell',
|
||||
index: 1,
|
||||
dragPositions: [ 0, -10, -20 ]
|
||||
}),
|
||||
getDragTest({
|
||||
message: 'drag back to 1st cell',
|
||||
index: 0,
|
||||
dragPositions: [ 0, 10, 20 ]
|
||||
}),
|
||||
getDragTest({
|
||||
message: 'big flick to 3rd cell',
|
||||
index: 2,
|
||||
dragPositions: [ 0, -10, -80 ]
|
||||
}),
|
||||
// minimal movement to trigger static click
|
||||
function() {
|
||||
flkty.once( 'staticClick', function() {
|
||||
assert.ok( true, 'staticClick fired on non-drag');
|
||||
assert.equal( flkty.selectedIndex, 2, 'selected index still at 2 after click' );
|
||||
setTimeout( doNextDragTest );
|
||||
});
|
||||
fakeDrag( flkty, [ 0, 1, 0, -2, -1 ] );
|
||||
},
|
||||
// move out then back to where it started
|
||||
function() {
|
||||
flkty.once( 'settle', function() {
|
||||
assert.equal( flkty.selectedIndex, 2, 'move out then back. same cell' );
|
||||
setTimeout( doNextDragTest );
|
||||
});
|
||||
fakeDrag( flkty, [ 0, 10, 20, 30, 20 ] );
|
||||
},
|
||||
getDragTest({
|
||||
message: 'drag and try to flick past 6th cell',
|
||||
index: 5,
|
||||
dragPositions: [ 0, -10, -50, -77, -100, -125, -150, -175, -250, -350 ]
|
||||
})
|
||||
];
|
||||
|
||||
doNextDragTest();
|
||||
|
||||
});
|
||||
|
||||
QUnit.test( 'drag with wrapAround', function( assert ) {
|
||||
// async test
|
||||
var done = assert.async();
|
||||
|
||||
var flkty = new Flickity('#drag-wrap-around', {
|
||||
wrapAround: true
|
||||
});
|
||||
|
||||
var doNextDragTest = getDoNextDragTest( done );
|
||||
|
||||
function getDragTest( args ) {
|
||||
args = utils.extend( args, {
|
||||
assert: assert,
|
||||
flickity: flkty,
|
||||
callback: doNextDragTest
|
||||
});
|
||||
return getFakeDragTest( args );
|
||||
}
|
||||
|
||||
dragTests = [
|
||||
getDragTest({
|
||||
message: 'drag to last cell via wrap-around',
|
||||
index: 5,
|
||||
dragPositions: [ 0, 10, 20 ]
|
||||
}),
|
||||
getDragTest({
|
||||
message: 'drag to first cell via wrap-around',
|
||||
index: 0,
|
||||
dragPositions: [ 0, -10, -20 ]
|
||||
}),
|
||||
getDragTest({
|
||||
message: 'big flick to 5th cell via wrap-around',
|
||||
index: 4,
|
||||
dragPositions: [ 0, 10, 80 ]
|
||||
})
|
||||
];
|
||||
|
||||
doNextDragTest();
|
||||
|
||||
});
|
||||
|
||||
})();
|
39
node_modules/flickity/test/unit/empty.js
generated
vendored
Normal file
39
node_modules/flickity/test/unit/empty.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
QUnit.test( 'empty', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var gallery = document.querySelector('#empty');
|
||||
|
||||
var flkty = new Flickity( gallery );
|
||||
|
||||
assert.ok( true, 'empty gallery ok' );
|
||||
assert.ok( flkty.prevButton.element.disabled, 'previous button disabled' );
|
||||
assert.ok( flkty.nextButton.element.disabled, 'next button disabled' );
|
||||
assert.equal( flkty.pageDots.dots.length, 0, '0 page dots');
|
||||
|
||||
flkty.resize();
|
||||
assert.ok( true, 'resize with empty gallery ok');
|
||||
|
||||
function makeCellElem() {
|
||||
var cellElem = document.createElement('div');
|
||||
cellElem.className = 'cell';
|
||||
return cellElem;
|
||||
}
|
||||
|
||||
flkty.append( makeCellElem() );
|
||||
assert.equal( flkty.cells.length, 1, 'added cell to empty gallery' );
|
||||
|
||||
|
||||
assert.ok( flkty.prevButton.element.disabled, 'previous button disabled' );
|
||||
assert.ok( flkty.nextButton.element.disabled, 'next button disabled' );
|
||||
assert.equal( flkty.pageDots.dots.length, 1, '1 page dots');
|
||||
|
||||
// destroy and re-init with higher initialIndex
|
||||
flkty.destroy();
|
||||
flkty = new Flickity( gallery, {
|
||||
initialIndex: 2
|
||||
});
|
||||
|
||||
// #291
|
||||
assert.ok( true, 'initializing with initialIndex > cells doesnt throw error' );
|
||||
|
||||
});
|
37
node_modules/flickity/test/unit/get-parent-cell.js
generated
vendored
Normal file
37
node_modules/flickity/test/unit/get-parent-cell.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
QUnit.test( 'getParentCell', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var gallery = document.querySelector('#get-parent-cell');
|
||||
var flkty = new Flickity( gallery );
|
||||
|
||||
// cell1
|
||||
var cell = flkty.getParentCell( gallery.querySelector('.cell1') );
|
||||
assert.ok( cell, 'getParentCell( cell ) ok' );
|
||||
assert.ok( cell instanceof Flickity.Cell, 'cell is Flickity.Cell' );
|
||||
var index = flkty.cells.indexOf( cell );
|
||||
assert.equal( index, 0, 'cell is index 0' );
|
||||
// cell3
|
||||
cell = flkty.getParentCell( gallery.querySelector('.cell3') );
|
||||
assert.ok( cell, 'getParentCell( cell ) ok' );
|
||||
assert.ok( cell instanceof Flickity.Cell, 'cell is Flickity.Cell' );
|
||||
index = flkty.cells.indexOf( cell );
|
||||
assert.equal( index, 2, 'cell is index 2' );
|
||||
// child1
|
||||
cell = flkty.getParentCell( gallery.querySelector('.child1') );
|
||||
assert.ok( cell, 'getParentCell( cell ) ok' );
|
||||
assert.ok( cell instanceof Flickity.Cell, 'cell is Flickity.Cell' );
|
||||
index = flkty.cells.indexOf( cell );
|
||||
assert.equal( index, 0, 'cell is index 0' );
|
||||
// child2
|
||||
cell = flkty.getParentCell( gallery.querySelector('.child2') );
|
||||
assert.ok( cell, 'getParentCell( cell ) ok' );
|
||||
assert.ok( cell instanceof Flickity.Cell, 'cell is Flickity.Cell' );
|
||||
index = flkty.cells.indexOf( cell );
|
||||
assert.equal( index, 1, 'cell is index 1' );
|
||||
// outside
|
||||
cell = flkty.getParentCell( document.querySelector('.outside') );
|
||||
assert.ok( !cell, 'getParentCell( notCell ) not ok' );
|
||||
index = flkty.cells.indexOf( cell );
|
||||
assert.equal( index, -1, 'not cell is index -1' );
|
||||
|
||||
});
|
24
node_modules/flickity/test/unit/get-wrap-cells.js
generated
vendored
Normal file
24
node_modules/flickity/test/unit/get-wrap-cells.js
generated
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
QUnit.test( 'getWrapCells', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var flkty = new Flickity( '#get-wrap-cells', {
|
||||
wrapAround: true
|
||||
});
|
||||
// cells are 25% width
|
||||
// center align, 2 cells on each side
|
||||
assert.equal( flkty.beforeShiftCells.length, 2, 'center align, 2 before shift cells' );
|
||||
assert.equal( flkty.afterShiftCells.length, 2, 'center align, 2 after shift cells' );
|
||||
|
||||
flkty.options.cellAlign = 'left';
|
||||
flkty.resize();
|
||||
// left align, 0, 4
|
||||
assert.equal( flkty.beforeShiftCells.length, 0, 'left align, 1 before shift cells' );
|
||||
assert.equal( flkty.afterShiftCells.length, 4, 'left align, 4 after shift cells' );
|
||||
|
||||
flkty.options.cellAlign = 'right';
|
||||
flkty.resize();
|
||||
// right align, 4, 0
|
||||
assert.equal( flkty.beforeShiftCells.length, 4, 'right align, 4 before shift cells' );
|
||||
assert.equal( flkty.afterShiftCells.length, 0, 'right align, 0 after shift cells' );
|
||||
|
||||
});
|
39
node_modules/flickity/test/unit/group-cells.js
generated
vendored
Normal file
39
node_modules/flickity/test/unit/group-cells.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
QUnit.test( 'groupCells', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var flkty = new Flickity( '#group-cells', {
|
||||
groupCells: true
|
||||
});
|
||||
|
||||
function getSlideCellsCount() {
|
||||
var counts = flkty.slides.map( function( slide ) {
|
||||
return slide.cells.length;
|
||||
});
|
||||
return counts.join(',');
|
||||
}
|
||||
|
||||
assert.equal( getSlideCellsCount(), '3,2,2,1,1,3,2', 'groupCells: true' );
|
||||
var targets = flkty.slides.map( function( slide ) {
|
||||
return slide.target;
|
||||
});
|
||||
assert.deepEqual( targets, [200, 600, 1000, 1300, 1600, 2000, 2300], 'targets' );
|
||||
|
||||
flkty.selectCell( 6 );
|
||||
assert.equal( flkty.selectedIndex, 2, 'selectCell(6) selects 3rd slide' );
|
||||
flkty.selectCell( flkty.cells[2].element );
|
||||
assert.equal( flkty.selectedIndex, 0, 'selectCell(3rd elem) selects 1st slide' );
|
||||
|
||||
flkty.options.groupCells = 2;
|
||||
flkty.reposition();
|
||||
assert.equal( getSlideCellsCount(), '2,2,2,2,2,2,2', 'groupCells: 2' );
|
||||
|
||||
flkty.options.groupCells = '75%';
|
||||
flkty.reposition();
|
||||
assert.equal( getSlideCellsCount(), '2,1,1,2,1,1,1,2,2,1', 'groupCells: 75%' );
|
||||
|
||||
flkty.element.classList.add('is-expanded'); // 600px wide
|
||||
flkty.options.groupCells = true;
|
||||
flkty.resize();
|
||||
assert.equal( getSlideCellsCount(), '3,3,2,3,3', 'groupCells: true, container @ 600px' );
|
||||
|
||||
});
|
37
node_modules/flickity/test/unit/init.js
generated
vendored
Normal file
37
node_modules/flickity/test/unit/init.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
( function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
QUnit.module('Flickity');
|
||||
|
||||
var utils = window.fizzyUIUtils;
|
||||
|
||||
QUnit.test( 'init', function( assert ) {
|
||||
|
||||
var elem = document.querySelector('#init');
|
||||
var flkty = new Flickity( elem );
|
||||
|
||||
for ( var prop in Flickity.defaults ) {
|
||||
assert.equal( flkty.options[ prop ], Flickity.defaults[ prop ], prop + ' option matches default' );
|
||||
}
|
||||
|
||||
assert.equal( flkty.element, elem, '.element is proper element' );
|
||||
var children = utils.makeArray( flkty.element.children );
|
||||
assert.notEqual( children.indexOf( flkty.viewport ), -1, 'viewport element is a child element' );
|
||||
assert.equal( flkty.viewport.children[0], flkty.slider, 'slider is in viewport' );
|
||||
assert.equal( flkty.viewport.style.height, '100px', 'viewport height set' );
|
||||
|
||||
assert.ok( flkty.isActive, 'isActive' );
|
||||
assert.ok( matchesSelector( elem, '.flickity-enabled' ), 'flickity-enabled class added' );
|
||||
|
||||
assert.equal( flkty.cells.length, 6, 'has 6 cells' );
|
||||
assert.equal( flkty.cells[0].element.style.left, '0%', 'first cell left: 0%' );
|
||||
assert.equal( flkty.cells[5].element.style.left, '500%', '6th cell left: 500%' );
|
||||
|
||||
assert.equal( flkty.selectedIndex, 0, 'selectedIndex = 0' );
|
||||
assert.equal( flkty.cursorPosition, 200, 'cursorPosition = 200' );
|
||||
assert.equal( flkty.x + flkty.cursorPosition, 0, 'x + cursorPosition = 0' );
|
||||
|
||||
});
|
||||
|
||||
})();
|
26
node_modules/flickity/test/unit/initial-index.js
generated
vendored
Normal file
26
node_modules/flickity/test/unit/initial-index.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
QUnit.test( 'initialIndex', function( assert ) {
|
||||
'use strict';
|
||||
// initialIndex number
|
||||
var flkty = new Flickity( '#initial-index', {
|
||||
initialIndex: 3,
|
||||
});
|
||||
assert.equal( flkty.selectedIndex, 3, 'initialIndex number' );
|
||||
// selectedIndex remains same after reactivation
|
||||
flkty.deactivate();
|
||||
flkty.activate();
|
||||
assert.equal( flkty.selectedIndex, 3, 'reactivated selectedIndex stays the same' );
|
||||
flkty.destroy();
|
||||
// initialIndex selector string
|
||||
flkty = new Flickity( '#initial-index', {
|
||||
initialIndex: '.cell--initial',
|
||||
});
|
||||
assert.equal( flkty.selectedIndex, 4, 'initialIndex selector string' );
|
||||
flkty.destroy();
|
||||
// initialIndex selector string with groupCells #881
|
||||
flkty = new Flickity( '#initial-index', {
|
||||
groupCells: 3,
|
||||
initialIndex: '.cell--initial',
|
||||
});
|
||||
assert.equal( flkty.selectedIndex, 1, 'initialIndex selector string with groupCells' );
|
||||
|
||||
});
|
29
node_modules/flickity/test/unit/lazyload-srcset.js
generated
vendored
Normal file
29
node_modules/flickity/test/unit/lazyload-srcset.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
QUnit.test( 'lazyload srcset', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var done = assert.async();
|
||||
|
||||
var gallery = document.querySelector('#lazyload-srcset');
|
||||
var flkty = new Flickity( gallery, {
|
||||
lazyLoad: 1
|
||||
});
|
||||
|
||||
var loadCount = 0;
|
||||
flkty.on( 'lazyLoad', function( event, cellElem ) {
|
||||
loadCount++;
|
||||
|
||||
assert.equal( event.type, 'load', 'event.type == load' );
|
||||
assert.ok( event.target.complete, 'img ' + loadCount + ' is complete' );
|
||||
assert.ok( cellElem, 'cellElement argument there' );
|
||||
var srcset = event.target.getAttribute('srcset');
|
||||
assert.ok( srcset, 'srcset attribute set');
|
||||
var lazyAttr = event.target.getAttribute('data-flickity-lazyload-srcset');
|
||||
assert.ok( !lazyAttr, 'data-flickity-lazyload attribute removed' );
|
||||
|
||||
// after first 2 have loaded, select 7th cell
|
||||
if ( loadCount == 2 ) {
|
||||
done();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
32
node_modules/flickity/test/unit/lazyload.js
generated
vendored
Normal file
32
node_modules/flickity/test/unit/lazyload.js
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
QUnit.test( 'lazyload', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var done = assert.async();
|
||||
|
||||
var gallery = document.querySelector('#lazyload');
|
||||
var flkty = new Flickity( gallery, {
|
||||
lazyLoad: 1
|
||||
});
|
||||
|
||||
var loadCount = 0;
|
||||
flkty.on( 'lazyLoad', function( event, cellElem ) {
|
||||
loadCount++;
|
||||
|
||||
assert.equal( event.type, 'load', 'event.type == load' );
|
||||
assert.ok( event.target.complete, 'img ' + loadCount + ' is complete' );
|
||||
assert.ok( cellElem, 'cellElement argument there' );
|
||||
var lazyAttr = event.target.getAttribute('data-flickity-lazyload');
|
||||
assert.ok( !lazyAttr, 'data-flickity-lazyload attribute removed' );
|
||||
|
||||
// after first 2 have loaded, select 7th cell
|
||||
if ( loadCount == 2 ) {
|
||||
flkty.select( 6 );
|
||||
}
|
||||
if ( loadCount == 5 ) {
|
||||
var loadedImgs = gallery.querySelectorAll('.flickity-lazyloaded');
|
||||
assert.equal( loadedImgs.length, '5', 'only 5 images loaded' );
|
||||
done();
|
||||
}
|
||||
});
|
||||
|
||||
});
|
33
node_modules/flickity/test/unit/page-dots.js
generated
vendored
Normal file
33
node_modules/flickity/test/unit/page-dots.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
QUnit.test( 'pageDots', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var elem = document.querySelector('#page-dots');
|
||||
var flkty = new Flickity( elem );
|
||||
|
||||
var dotsHolder = elem.querySelector('.flickity-page-dots');
|
||||
var dotsElems = dotsHolder.querySelectorAll('.dot');
|
||||
|
||||
assert.ok( dotsHolder, 'dots holder in DOM' );
|
||||
assert.equal( flkty.pageDots.holder, dotsHolder, 'dots holder element matches flkty.pageDots.holder' );
|
||||
assert.equal( dotsElems.length, flkty.cells.length, 'number of dots matches number of cells' );
|
||||
|
||||
function getSelectedDotIndex() {
|
||||
var selectedDot = dotsHolder.querySelector('.is-selected');
|
||||
for ( var i=0, len = dotsElems.length; i < len; i++ ) {
|
||||
var dotElem = dotsElems[i];
|
||||
if ( dotElem == selectedDot ) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
assert.equal( getSelectedDotIndex(), 0, 'first dot is selected' );
|
||||
flkty.select( 2 );
|
||||
assert.equal( getSelectedDotIndex(), 2, '3rd dot is selected' );
|
||||
|
||||
// fake tap
|
||||
flkty.pageDots.onTap( { target: dotsElems[4] } );
|
||||
assert.equal( flkty.selectedIndex, 4, 'tap dot selects cell' );
|
||||
|
||||
});
|
51
node_modules/flickity/test/unit/position-cells.js
generated
vendored
Normal file
51
node_modules/flickity/test/unit/position-cells.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
( function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
// position values can be off by 0.1% or 1px
|
||||
function isPositionApprox( value, expected ) {
|
||||
var isPercent = value.indexOf('%') != -1;
|
||||
value = parseFloat( value );
|
||||
var diff = Math.abs( expected - value );
|
||||
return isPercent ? diff < 0.1 : diff <= 1;
|
||||
}
|
||||
|
||||
// loop through cells and check position values against expecteds
|
||||
function checkCellPositions( flkty, expecteds ) {
|
||||
var isOK;
|
||||
for ( var i=0, len = expecteds.length; i < len; i++ ) {
|
||||
var expected = expecteds[i];
|
||||
var cell = flkty.cells[i];
|
||||
var position = cell.element.style.left;
|
||||
isOK = isPositionApprox( position, expected );
|
||||
if ( !isOK ) {
|
||||
console.error( 'wrong cell position, index: ' + i + '. ' +
|
||||
'expected: ' + expected + '. position: ' + position );
|
||||
break;
|
||||
}
|
||||
}
|
||||
return isOK;
|
||||
}
|
||||
|
||||
QUnit.test( 'position cells', function( assert ) {
|
||||
|
||||
var flkty = new Flickity('#position-cells');
|
||||
|
||||
assert.ok( checkCellPositions( flkty, [ 0, 40, 65, 125, 165, 225 ] ), 'percent cell position' );
|
||||
// .cell { margin: 0 2%; }
|
||||
flkty.element.classList.add('percent-margin');
|
||||
flkty.positionCells();
|
||||
assert.ok( checkCellPositions( flkty, [ 0, 44, 73, 137, 181, 245 ] ), 'percent cell position with margin' );
|
||||
flkty.element.classList.remove('percent-margin');
|
||||
// pixel-based position
|
||||
flkty.options.percentPosition = false;
|
||||
flkty.positionCells();
|
||||
assert.ok( checkCellPositions( flkty, [ 0, 160, 260, 500, 660, 900 ] ), 'pixel cell position' );
|
||||
// pixel margin, { margin: 0 10px; }
|
||||
flkty.element.classList.add('pixel-margin');
|
||||
flkty.positionCells();
|
||||
assert.ok( checkCellPositions( flkty, [ 0, 180, 300, 560, 740, 1000 ] ), 'pixel cell position with margin' );
|
||||
|
||||
});
|
||||
|
||||
})();
|
27
node_modules/flickity/test/unit/prev-next-buttons.js
generated
vendored
Normal file
27
node_modules/flickity/test/unit/prev-next-buttons.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
QUnit.test( 'prev-next-buttons', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var elem = document.querySelector('#prev-next-buttons');
|
||||
var flkty = new Flickity( elem );
|
||||
|
||||
var prevElem = elem.querySelector('.flickity-prev-next-button.previous');
|
||||
var nextElem = elem.querySelector('.flickity-prev-next-button.next');
|
||||
assert.ok( prevElem, 'previous button in DOM' );
|
||||
assert.ok( nextElem, 'next button in DOM' );
|
||||
assert.equal( flkty.prevButton.element, prevElem, 'previous button element matches prevButton.element' );
|
||||
assert.equal( flkty.nextButton.element, nextElem, 'next button element matches nextButton.element' );
|
||||
assert.ok( prevElem.disabled, 'previous button is disabled at first index' );
|
||||
|
||||
prevElem.focus();
|
||||
prevElem.click();
|
||||
assert.equal( flkty.selectedIndex, 0, 'selectedIndex still at 0' );
|
||||
nextElem.focus();
|
||||
nextElem.click();
|
||||
assert.equal( flkty.selectedIndex, 1, 'next button clicked, selectedIndex at 1' );
|
||||
prevElem.focus();
|
||||
prevElem.click();
|
||||
assert.equal( flkty.selectedIndex, 0, 'previous button clicked, selectedIndex back at 0' );
|
||||
flkty.select( 5 );
|
||||
assert.ok( nextElem.disabled, 'next button disabled when at last cell' );
|
||||
|
||||
});
|
16
node_modules/flickity/test/unit/resize.js
generated
vendored
Normal file
16
node_modules/flickity/test/unit/resize.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
QUnit.test( 'resize', function( assert ) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var elem = document.querySelector('#resize');
|
||||
var flkty = new Flickity( elem, {
|
||||
initialIndex: 2
|
||||
});
|
||||
elem.style.width = '500px';
|
||||
flkty.resize();
|
||||
|
||||
assert.equal( flkty.selectedIndex, 2, 'selectedIndex = 2' );
|
||||
assert.equal( flkty.cursorPosition, 250, 'cursorPosition = 250' );
|
||||
assert.equal( flkty.x + flkty.cursorPosition, -1000, 'x + cursorPosition = -1000' );
|
||||
|
||||
});
|
18
node_modules/flickity/test/unit/select-cell.js
generated
vendored
Normal file
18
node_modules/flickity/test/unit/select-cell.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
QUnit.test( 'selectCell', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var gallery = document.querySelector('#select-cell');
|
||||
var cellElems = gallery.querySelectorAll('.cell');
|
||||
var flkty = new Flickity( gallery, {
|
||||
groupCells: true, // groups of 3
|
||||
});
|
||||
|
||||
flkty.selectCell( 3 );
|
||||
assert.equal( flkty.selectedIndex, 1, 'selectCell number' );
|
||||
flkty.selectCell( cellElems[1] );
|
||||
assert.equal( flkty.selectedIndex, 0, 'selectCell element' );
|
||||
flkty.selectCell('.select-cell__6');
|
||||
assert.equal( flkty.selectedIndex, 2, 'selectCell selector string' );
|
||||
flkty.selectCell('none');
|
||||
assert.equal( flkty.selectedIndex, 2, 'selectCell bad string is okay' );
|
||||
});
|
10
node_modules/flickity/test/unit/watch.js
generated
vendored
Normal file
10
node_modules/flickity/test/unit/watch.js
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
QUnit.test( 'watch fallback', function( assert ) {
|
||||
'use strict';
|
||||
|
||||
var elem = document.querySelector('#watch');
|
||||
var flkty = new Flickity( elem, {
|
||||
watchCSS: true
|
||||
});
|
||||
|
||||
assert.ok( !flkty.isActive, 'fallback not active, watchCSS: true' );
|
||||
});
|
Reference in New Issue
Block a user