mirror of
https://github.com/nunocoracao/blowfish.git
synced 2025-04-22 08:51:52 +02:00
151 lines
7.1 KiB
JavaScript
151 lines
7.1 KiB
JavaScript
QUnit.test( 'hide/reveal', function( assert ) {
|
|
|
|
var CellsByRow = window.CellsByRow;
|
|
var gridElem = document.querySelector('#hide-reveal');
|
|
|
|
var layout = new CellsByRow( gridElem, {
|
|
columnWidth: 60,
|
|
rowHeight: 60,
|
|
transitionDuration: '0.2s'
|
|
});
|
|
|
|
var hideElems = gridElem.querySelectorAll('.hideable');
|
|
var hideItems = layout.getItems( hideElems );
|
|
var lastIndex = hideItems.length - 1;
|
|
var firstItemElem = hideItems[0].element;
|
|
var lastItemElem = hideItems[ lastIndex ].element;
|
|
|
|
var done = assert.async();
|
|
|
|
layout.once( 'hideComplete', function( hideCompleteItems ) {
|
|
assert.ok( true, 'hideComplete event did fire' );
|
|
assert.equal( hideCompleteItems.length, hideItems.length, 'event-emitted items matches layout items length' );
|
|
assert.strictEqual( hideCompleteItems[0], hideItems[0], 'event-emitted items has same first item' );
|
|
assert.strictEqual( hideCompleteItems[ lastIndex ], hideItems[ lastIndex ], 'event-emitted items has same last item' );
|
|
assert.equal( firstItemElem.style.display, 'none', 'first item hidden' );
|
|
assert.equal( lastItemElem.style.display, 'none', 'last item hidden' );
|
|
assert.equal( firstItemElem.style.opacity, '', 'first item opacity not set' );
|
|
assert.equal( lastItemElem.style.opacity, '', 'last item opacity not set' );
|
|
setTimeout( nextReveal );
|
|
});
|
|
|
|
layout.hide( hideItems );
|
|
|
|
// -------------------------- -------------------------- //
|
|
|
|
function nextReveal() {
|
|
layout.once( 'revealComplete', function( revealCompleteItems ) {
|
|
assert.ok( true, 'revealComplete event did fire' );
|
|
assert.equal( revealCompleteItems.length, hideItems.length, 'event-emitted items matches layout items length' );
|
|
assert.strictEqual( revealCompleteItems[0], hideItems[0], 'event-emitted items has same first item' );
|
|
assert.strictEqual( revealCompleteItems[ lastIndex ], hideItems[ lastIndex ], 'event-emitted items has same last item' );
|
|
assert.equal( firstItemElem.style.display, '', 'first item no display' );
|
|
assert.equal( lastItemElem.style.display, '', 'last item no display' );
|
|
assert.equal( firstItemElem.style.opacity, '', 'first item opacity not set' );
|
|
assert.equal( lastItemElem.style.opacity, '', 'last item opacity not set' );
|
|
setTimeout( nextHideNoTransition );
|
|
});
|
|
|
|
layout.reveal( hideItems );
|
|
}
|
|
|
|
// -------------------------- -------------------------- //
|
|
|
|
function nextHideNoTransition() {
|
|
layout.once( 'hideComplete', function( hideCompleteItems ) {
|
|
assert.ok( true, 'hideComplete event did fire' );
|
|
assert.equal( hideCompleteItems.length, hideItems.length, 'event-emitted items matches layout items length' );
|
|
assert.strictEqual( hideCompleteItems[0], hideItems[0], 'event-emitted items has same first item' );
|
|
assert.strictEqual( hideCompleteItems[ lastIndex ], hideItems[ lastIndex ], 'event-emitted items has same last item' );
|
|
assert.equal( firstItemElem.style.display, 'none', 'first item hidden' );
|
|
assert.equal( lastItemElem.style.display, 'none', 'last item hidden' );
|
|
assert.equal( firstItemElem.style.opacity, '', 'first item opacity not set' );
|
|
assert.equal( lastItemElem.style.opacity, '', 'last item opacity not set' );
|
|
setTimeout( nextRevealNoTransition );
|
|
// start();
|
|
});
|
|
|
|
layout.transitionDuration = 0;
|
|
layout.hide( hideItems );
|
|
}
|
|
|
|
// -------------------------- -------------------------- //
|
|
|
|
function nextRevealNoTransition() {
|
|
layout.once( 'revealComplete', function( revealCompleteItems ) {
|
|
assert.ok( true, 'revealComplete event did fire' );
|
|
assert.equal( revealCompleteItems.length, hideItems.length, 'event-emitted items matches layout items length' );
|
|
assert.strictEqual( revealCompleteItems[0], hideItems[0], 'event-emitted items has same first item' );
|
|
assert.strictEqual( revealCompleteItems[ lastIndex ], hideItems[ lastIndex ], 'event-emitted items has same last item' );
|
|
assert.equal( firstItemElem.style.display, '', 'first item no display' );
|
|
assert.equal( lastItemElem.style.display, '', 'last item no display' );
|
|
assert.equal( firstItemElem.style.opacity, '', 'first item opacity not set' );
|
|
assert.equal( lastItemElem.style.opacity, '', 'last item opacity not set' );
|
|
setTimeout( nextHideNone );
|
|
// start();
|
|
});
|
|
|
|
layout.reveal( hideItems );
|
|
}
|
|
|
|
function nextHideNone() {
|
|
var emptyArray = [];
|
|
layout.once( 'hideComplete', function( hideCompleteItems ) {
|
|
assert.ok( true, 'hideComplete event did fire with no items' );
|
|
assert.equal( hideCompleteItems, emptyArray, 'returns same object passed in' );
|
|
setTimeout( nextRevealNone );
|
|
// start();
|
|
});
|
|
|
|
layout.hide( emptyArray );
|
|
}
|
|
|
|
function nextRevealNone() {
|
|
var emptyArray = [];
|
|
layout.once( 'revealComplete', function( revealCompleteItems ) {
|
|
assert.ok( true, 'revealComplete event did fire with no items' );
|
|
assert.equal( revealCompleteItems, emptyArray, 'returns same object passed in' );
|
|
setTimeout( nextHideItemElements );
|
|
// start();
|
|
});
|
|
|
|
layout.reveal( emptyArray );
|
|
}
|
|
|
|
// -------------------------- -------------------------- //
|
|
|
|
function nextHideItemElements() {
|
|
layout.once( 'hideComplete', function( hideCompleteItems ) {
|
|
assert.ok( true, 'hideComplete event did fire after hideItemElements' );
|
|
assert.equal( hideCompleteItems.length, hideItems.length, 'event-emitted items matches layout items length' );
|
|
assert.strictEqual( hideCompleteItems[0], hideItems[0], 'event-emitted items has same first item' );
|
|
assert.strictEqual( hideCompleteItems[ lastIndex ], hideItems[ lastIndex ], 'event-emitted items has same last item' );
|
|
assert.equal( firstItemElem.style.display, 'none', 'first item hidden' );
|
|
assert.equal( lastItemElem.style.display, 'none', 'last item hidden' );
|
|
assert.equal( firstItemElem.style.opacity, '', 'first item opacity not set' );
|
|
assert.equal( lastItemElem.style.opacity, '', 'last item opacity not set' );
|
|
setTimeout( nextRevealItemElements );
|
|
// start();
|
|
});
|
|
|
|
layout.hideItemElements( hideElems );
|
|
}
|
|
|
|
function nextRevealItemElements() {
|
|
layout.once( 'revealComplete', function( revealCompleteItems ) {
|
|
assert.ok( true, 'revealComplete event did fire after revealItemElements' );
|
|
assert.equal( revealCompleteItems.length, hideItems.length, 'event-emitted items matches layout items length' );
|
|
assert.strictEqual( revealCompleteItems[0], hideItems[0], 'event-emitted items has same first item' );
|
|
assert.strictEqual( revealCompleteItems[ lastIndex ], hideItems[ lastIndex ], 'event-emitted items has same last item' );
|
|
assert.equal( firstItemElem.style.display, '', 'first item no display' );
|
|
assert.equal( lastItemElem.style.display, '', 'last item no display' );
|
|
assert.equal( firstItemElem.style.opacity, '', 'first item opacity not set' );
|
|
assert.equal( lastItemElem.style.opacity, '', 'last item opacity not set' );
|
|
// setTimeout( nextHideNoTransition );
|
|
done();
|
|
});
|
|
|
|
layout.revealItemElements( hideElems );
|
|
}
|
|
|
|
});
|