correction && add form && add slide && add masonry && css
This commit is contained in:
12
node_modules/flickity/test/.jshintrc
generated
vendored
Normal file
12
node_modules/flickity/test/.jshintrc
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"browser": true,
|
||||
"devel": true,
|
||||
"strict": true,
|
||||
"undef": true,
|
||||
"unused": true,
|
||||
"predef": {
|
||||
"Flickity": false,
|
||||
"matchesSelector": false,
|
||||
"QUnit": false
|
||||
}
|
||||
}
|
85
node_modules/flickity/test/drag.html
generated
vendored
Normal file
85
node_modules/flickity/test/drag.html
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
|
||||
<title>Drag tests</title>
|
||||
|
||||
<link rel="stylesheet" href="../bower_components/qunit/qunit/qunit.css" media="screen" />
|
||||
<link rel="stylesheet" href="test.css" media="screen" />
|
||||
<link rel="stylesheet" href="../css/flickity.css" media="screen" />
|
||||
<style>
|
||||
body {
|
||||
padding-right: 440px;
|
||||
}
|
||||
|
||||
#demos {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 420px;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<script src="../bower_components/qunit/qunit/qunit.js"></script>
|
||||
|
||||
<!-- dependencies -->
|
||||
<script src="../bower_components/get-size/get-size.js"></script>
|
||||
<script src="../bower_components/desandro-matches-selector/matches-selector.js"></script>
|
||||
<script src="../bower_components/ev-emitter/ev-emitter.js"></script>
|
||||
<script src="../bower_components/unipointer/unipointer.js"></script>
|
||||
<script src="../bower_components/unidragger/unidragger.js"></script>
|
||||
<script src="../bower_components/fizzy-ui-utils/utils.js"></script>
|
||||
<!-- <script src="../bower_components/imagesloaded/imagesloaded.js"></script> -->
|
||||
<!-- Flickity source -->
|
||||
<script src="../js/cell.js"></script>
|
||||
<script src="../js/slide.js"></script>
|
||||
<script src="../js/animate.js"></script>
|
||||
<script src="../js/flickity.js"></script>
|
||||
<script src="../js/drag.js"></script>
|
||||
<script src="../js/prev-next-button.js"></script>
|
||||
<script src="../js/page-dots.js"></script>
|
||||
<script src="../js/player.js"></script>
|
||||
<script src="../js/add-remove-cell.js"></script>
|
||||
<script src="../js/lazyload.js"></script>
|
||||
<!-- turn off accessibility for these tests
|
||||
was causing bugs with dragging tests -->
|
||||
<script>
|
||||
Flickity.defaults.accessibility = false;
|
||||
</script>
|
||||
<!-- unit tests -->
|
||||
<script src="unit/drag.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="qunit"></div>
|
||||
|
||||
<div id="demos">
|
||||
<p><b>drag</b> and <b>drag with wrapAround</b> tests can be buggy. Try running them again.</p>
|
||||
|
||||
<h2>drag</h2>
|
||||
<div id="drag" class="gallery variable-width drag">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>drag wrapAround</h2>
|
||||
<div id="drag-wrap-around" class="gallery variable-width drag">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
316
node_modules/flickity/test/index.html
generated
vendored
Normal file
316
node_modules/flickity/test/index.html
generated
vendored
Normal file
@@ -0,0 +1,316 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
|
||||
<title>Flickity tests</title>
|
||||
|
||||
<link rel="stylesheet" href="../bower_components/qunit/qunit/qunit.css" media="screen" />
|
||||
<link rel="stylesheet" href="test.css" media="screen" />
|
||||
<link rel="stylesheet" href="../css/flickity.css" media="screen" />
|
||||
|
||||
<script src="../bower_components/qunit/qunit/qunit.js"></script>
|
||||
|
||||
<!-- dependencies -->
|
||||
<script src="../bower_components/get-size/get-size.js"></script>
|
||||
<!-- <script src="../bower_components/imagesloaded/imagesloaded.js"></script> -->
|
||||
<script src="../bower_components/desandro-matches-selector/matches-selector.js"></script>
|
||||
<script src="../bower_components/ev-emitter/ev-emitter.js"></script>
|
||||
<script src="../bower_components/fizzy-ui-utils/utils.js"></script>
|
||||
<script src="../bower_components/unipointer/unipointer.js"></script>
|
||||
<script src="../bower_components/unidragger/unidragger.js"></script>
|
||||
<!-- Flickity source -->
|
||||
<script src="../js/cell.js"></script>
|
||||
<script src="../js/slide.js"></script>
|
||||
<script src="../js/animate.js"></script>
|
||||
<script src="../js/flickity.js"></script>
|
||||
<script src="../js/drag.js"></script>
|
||||
<script src="../js/prev-next-button.js"></script>
|
||||
<script src="../js/page-dots.js"></script>
|
||||
<script src="../js/player.js"></script>
|
||||
<script src="../js/add-remove-cell.js"></script>
|
||||
<script src="../js/lazyload.js"></script>
|
||||
<!-- turn off accessibility for these tests
|
||||
was causing bugs with dragging tests -->
|
||||
<script>
|
||||
Flickity.defaults.accessibility = false;
|
||||
</script>
|
||||
<!-- unit tests -->
|
||||
<script src="unit/init.js"></script>
|
||||
<script src="unit/cell-selector.js"></script>
|
||||
<script src="unit/empty.js"></script>
|
||||
<script src="unit/get-parent-cell.js"></script>
|
||||
<script src="unit/position-cells.js"></script>
|
||||
<script src="unit/contain.js"></script>
|
||||
<!-- drag tests are buggy. moved to drag.html -->
|
||||
<!-- <script src="unit/drag.js"></script> -->
|
||||
<script src="unit/auto-play.js"></script>
|
||||
<script src="unit/prev-next-buttons.js"></script>
|
||||
<script src="unit/page-dots.js"></script>
|
||||
<script src="unit/get-wrap-cells.js"></script>
|
||||
<script src="unit/watch.js"></script>
|
||||
<script src="unit/resize.js"></script>
|
||||
<script src="unit/add-remove-cells.js"></script>
|
||||
<script src="unit/destroy.js"></script>
|
||||
<script src="unit/lazyload.js"></script>
|
||||
<script src="unit/lazyload-srcset.js"></script>
|
||||
<script src="unit/group-cells.js"></script>
|
||||
<script src="unit/adaptive-height.js"></script>
|
||||
<script src="unit/select-cell.js"></script>
|
||||
<script src="unit/change.js"></script>
|
||||
<script src="unit/initial-index.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="qunit"></div>
|
||||
|
||||
<h2>Init</h2>
|
||||
|
||||
<div id="init" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>cellSelector</h2>
|
||||
|
||||
<div id="cell-selector" class="gallery">
|
||||
<p class="not-cell not-cell1">not cell 1</p>
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<p class="not-cell not-cell2">not cell 2</p>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>empty</h2>
|
||||
|
||||
<div id="empty" class="gallery"></div>
|
||||
|
||||
<h2>getParentCell</h2>
|
||||
|
||||
<div id="get-parent-cell" class="gallery">
|
||||
<div class="cell cell1"><span class="child1">1</span></div>
|
||||
<div class="cell"><div><span class="child2">2</span></div></div>
|
||||
<div class="cell cell3">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
<div class="outside"></div>
|
||||
|
||||
<h2>position cells</h2>
|
||||
|
||||
<div id="position-cells" class="gallery variable-width">
|
||||
<div class="cell width2">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell width3">3</div>
|
||||
<div class="cell width2">4</div>
|
||||
<div class="cell width3">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>contain</h2>
|
||||
|
||||
<div id="contain" class="gallery variable-width">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell width3">3</div>
|
||||
<div class="cell width2">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>auto-play</h2>
|
||||
<div id="auto-play" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
</div>
|
||||
|
||||
<h2>prev/next buttons</h2>
|
||||
<div id="prev-next-buttons" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>page dots</h2>
|
||||
<div id="page-dots" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>getWrapCells</h2>
|
||||
<div id="get-wrap-cells" class="gallery variable-width">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>watch</h2>
|
||||
<div id="watch" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>resize</h2>
|
||||
<div id="resize" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>add/remove-cells</h2>
|
||||
<div id="add-remove-cells" class="gallery variable-width">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>destroy</h2>
|
||||
<div id="destroy" class="gallery">
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
</div>
|
||||
|
||||
<h2>lazyload</h2>
|
||||
<div id="lazyload" class="gallery">
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/r8p3Xgq.jpg" /></div>
|
||||
<img class="img-cell" data-flickity-lazyload="http://i.imgur.com/q9zO6tw.jpg" />
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/bwy74ok.jpg" /></div>
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/hODreXI.jpg" /></div>
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/UORFJ3w.jpg" /></div>
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/bAZWoqx.jpg" /></div>
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/PgmEBSB.jpg" /></div>
|
||||
<img class="img-cell" data-flickity-lazyload="http://i.imgur.com/aboaFoB.jpg" />
|
||||
<div class="cell"><img data-flickity-lazyload="http://i.imgur.com/LkmcILl.jpg" /></div>
|
||||
</div>
|
||||
|
||||
<h2>lazyload srcset</h2>
|
||||
<div id="lazyload-srcset" class="gallery">
|
||||
<div class="cell">
|
||||
<img data-flickity-lazyload-src="https://picsum.photos/360/270/?image=718"
|
||||
data-flickity-lazyload-srcset="
|
||||
https://picsum.photos/720/540/?image=718 720w,
|
||||
https://picsum.photos/360/270/?image=718 360w"
|
||||
sizes="(min-width: 1024px) 720px, 360px" />
|
||||
</div>
|
||||
<img class="img-cell"
|
||||
data-flickity-lazyload-srcset="
|
||||
https://picsum.photos/720/540/?image=517 720w,
|
||||
https://picsum.photos/360/270/?image=517 360w"
|
||||
sizes="(min-width: 1024px) 720px, 360px"
|
||||
/>
|
||||
<div class="cell"></div>
|
||||
<div class="cell"></div>
|
||||
<div class="cell"></div>
|
||||
<div class="cell"></div>
|
||||
</div>
|
||||
|
||||
<h2>groupCells</h2>
|
||||
<div id="group-cells" class="gallery">
|
||||
<div class="cell"></div>
|
||||
<div class="cell cell--width2"></div>
|
||||
<div class="cell"></div>
|
||||
|
||||
<div class="cell cell--width3"></div>
|
||||
<div class="cell"></div>
|
||||
|
||||
<div class="cell cell--width2"></div>
|
||||
<div class="cell cell--width2"></div>
|
||||
|
||||
<div class="cell cell--width2"></div>
|
||||
|
||||
<div class="cell cell--width4"></div>
|
||||
|
||||
<div class="cell"></div>
|
||||
<div class="cell"></div>
|
||||
<div class="cell cell--width2"></div>
|
||||
|
||||
<div class="cell"></div>
|
||||
<div class="cell"></div>
|
||||
</div>
|
||||
|
||||
<h2>adaptiveHeight</h2>
|
||||
<div id="adaptive-height" class="gallery">
|
||||
<div class="cell cell--height2"></div>
|
||||
<div class="cell"></div>
|
||||
<div class="cell cell--height3"></div>
|
||||
|
||||
<div class="cell"></div>
|
||||
<div class="cell cell--height4"></div>
|
||||
<div class="cell cell--height2"></div>
|
||||
|
||||
<div class="cell"></div>
|
||||
<div class="cell cell--height2"></div>
|
||||
</div>
|
||||
|
||||
<h2>selectCell</h2>
|
||||
<div id="select-cell" class="gallery">
|
||||
<div class="cell select-cell__0">0</div>
|
||||
<div class="cell select-cell__1">1</div>
|
||||
<div class="cell select-cell__2">2</div>
|
||||
<div class="cell select-cell__3">3</div>
|
||||
<div class="cell select-cell__4">4</div>
|
||||
<div class="cell select-cell__5">5</div>
|
||||
<div class="cell select-cell__6">6</div>
|
||||
<div class="cell select-cell__7">7</div>
|
||||
</div>
|
||||
|
||||
<h2>change</h2>
|
||||
<div id="change" class="gallery">
|
||||
<div class="cell">0</div>
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell">4</div>
|
||||
</div>
|
||||
|
||||
<h2>initialIndex</h2>
|
||||
<div id="initial-index" class="gallery variable-width">
|
||||
<div class="cell">0</div>
|
||||
<div class="cell">1</div>
|
||||
<div class="cell">2</div>
|
||||
<div class="cell">3</div>
|
||||
<div class="cell cell--initial">4</div>
|
||||
<div class="cell">5</div>
|
||||
<div class="cell">6</div>
|
||||
<div class="cell">7</div>
|
||||
<div class="cell">8</div>
|
||||
<div class="cell">9</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
70
node_modules/flickity/test/test.css
generated
vendored
Normal file
70
node_modules/flickity/test/test.css
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
/** { box-sizing: border-box; }*/
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.gallery {
|
||||
border: 1px solid;
|
||||
width: 400px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.gallery .cell {
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
background: #F09;
|
||||
font-size: 40px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.variable-width .cell { width: 25%; } /* 100px */
|
||||
.variable-width .cell.width2 { width: 40%; background: #F90; } /* 160px */
|
||||
.variable-width .cell.width3 { width: 60%; background: #09F; } /* 240px */
|
||||
|
||||
#position-cells.percent-margin .cell { margin: 0 2%; }
|
||||
#position-cells.pixel-margin .cell { margin: 0 10px; }
|
||||
|
||||
/*#drag-wrap-around { position: fixed; top: 0;}*/
|
||||
|
||||
.drag .cell { margin-right: 5%; }
|
||||
|
||||
#watch.has-after:after {
|
||||
content: 'flickity';
|
||||
display: none;
|
||||
}
|
||||
|
||||
#lazyload img {
|
||||
display: block;
|
||||
max-height: 100px;
|
||||
}
|
||||
|
||||
/* ---- group-cells ---- */
|
||||
|
||||
#group-cells .cell {
|
||||
width: 100px;
|
||||
/* border: 1px solid;*/
|
||||
}
|
||||
|
||||
#group-cells .cell--width2 { width: 200px; }
|
||||
#group-cells .cell--width3 { width: 300px; }
|
||||
#group-cells .cell--width4 { width: 400px; }
|
||||
|
||||
#group-cells.is-expanded { width: 600px; }
|
||||
|
||||
#group-cells .cell:nth-child(2n) { background: #09F; }
|
||||
|
||||
/* ---- adaptive-height ---- */
|
||||
|
||||
#adaptive-height .cell { width: 33.33%; }
|
||||
|
||||
#adaptive-height .cell--height2 { height: 200px; }
|
||||
#adaptive-height .cell--height3 { height: 300px; }
|
||||
#adaptive-height .cell--height4 { height: 400px; }
|
||||
|
||||
#adaptive-height .cell:nth-child(2n) { background: #09F; }
|
||||
|
||||
/* ---- select-cell ---- */
|
||||
|
||||
#select-cell .cell { width: 33.33%; }
|
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