De promotiewebsite die de reguliere site vervangt tijdens de Kick-In. https://join.harambee.utwente.nl
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
kick-in-promo-site/tests/unit/keyboardScrolling.js

357 lines
14 KiB

function simulateMouseWheel(type){
var multiplier = type === 'up' ? -1 : 1;
//moving down with mouse wheel
var mouseWheel = new Event('wheel', { 'bubbles': true });
mouseWheel.deltaY = 10 * multiplier;
document.dispatchEvent(mouseWheel);
}
function simulateKeydown(type){
var types = { 'up': 38, 'down':40, 'right':39, 'left':37};
var keyCode = types[type];
//moving down with mouse wheel
var keydownEvent = new Event('keydown', { 'bubbles': true });
keydownEvent.keyCode = keyCode;
document.dispatchEvent(keydownEvent);
}
//not used yet
function simulateTouchMove(target, type){
var pageY = 100, pageX = 100, differenceX = 0, differenceY = 0;
switch(type){
case 'down': differenceY = 500; break;
case 'up': differenceY = -500; break;
case 'left': differenceX = 500;break;
case 'right': differenceX = -500; break;
}
//touch start
var touchStartEvent = new Event('touchstart', { 'bubbles': true });
touchStartEvent.pageX = pageX + differenceX;
touchStartEvent.pageY = pageY + differenceY;
target.dispatchEvent(touchStartEvent);
//moving down with mouse wheel
var touchMoveEvent = new Event('touchmove', { 'bubbles': true });
touchMoveEvent.pageX = pageX;
touchMoveEvent.pageY = pageY;
target.dispatchEvent(touchMoveEvent);
}
function triggerKeydown(keyCode, shift, direction){
var keydownEvent = new Event('keydown', { 'bubbles': true });
keydownEvent.keyCode = keyCode;
if(shift && direction !== 'down'){
keydownEvent.shiftKey = 1;
}
document.dispatchEvent(keydownEvent);
}
function upAndDown(assert, done, FP, params, prefix){
var windowHeight = $(window).height();
triggerKeydown(params.down, params.shift, 'down');
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], prefix + `: We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, prefix + ': We expect section 2 to be active');
done();
triggerKeydown(params.up, params.shift, 'up');
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], prefix + `: We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, prefix + ': We expect section 1 to be active');
done();
},200*2);
}
QUnit.test('Testing keyboardScrolling:true with keydown up & down', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:true, loopTop:true, scrollingSpeed: 50}));
var windowHeight = $(window).height();
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateKeydown('down');
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
simulateKeydown('up');
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
done();
},200*2);
});
QUnit.test('Testing keyboardScrolling:false with keydown up & down', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:false, loopTop:true, scrollingSpeed: 50}));
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateKeydown('down');
setTimeout(function() {
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We don not expect section 2 to be active');
done();
simulateKeydown('up');
}, 200);
setTimeout(function() {
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We don not expect section 2 to be active');
done();
}, 200*2);
});
QUnit.test('Testing keyboardScrolling:true keys (tab, space, pageup, pagedown...)', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:true, loopTop:true, scrollingSpeed: 50}));
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
upAndDown(assert, done, FP, {up: 38, down: 40, shift: false}, 'Arrow up / arrow down'); //arrow up / arrow down
});
QUnit.test('Testing keyboardScrolling:true keys pageUp / pageDown', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:true, loopTop:true, scrollingSpeed: 50}));
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
upAndDown(assert, done, FP, {up: 33, down: 34, shift: false}, 'pageUp / pageDown'); //pageUp / pageDown
});
QUnit.test('Testing keyboardScrolling:true keys Spacebar', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:true, loopTop:true, scrollingSpeed: 50}));
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
upAndDown(assert, done, FP, {up: 32, down: 32, shift: true}, 'Spacebar'); //shift + spacebar / space bar
});
QUnit.test('Testing keyboardScrolling:true keys Home / end', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:true, loopTop:true, scrollingSpeed: 50}));
var windowHeight = $(window).height();
var done = assert.async(2);
var params = {up: 36, down: 35, shift: false}; //home / end
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
triggerKeydown(params.down, params.shift, 'down');
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*3)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*3)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 3, 'We expect section 4 to be active');
done();
triggerKeydown(params.up, params.shift, 'up');
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
done();
},200*2);
});
QUnit.test('Testing keyboardScrolling:false with moveSectionUp & moveSectionDown', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:false, loopTop:true, scrollingSpeed: 50}));
var windowHeight = $(window).height();
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
FP.moveSectionDown();
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
FP.moveSectionUp();
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
done();
},200*2);
});
QUnit.test('Testing keyboardScrolling:false with mousewheel down & up', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:false, scrollingSpeed:600, loopTop:true}));
var windowHeight = $(window).height();
var done = assert.async(2);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateMouseWheel('down');
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
simulateMouseWheel('up');
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
done();
},200*2);
});
QUnit.test('Testing setKeyboardScrolling(false)', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:true, scrollingSpeed:600, loopTop:true}));
var windowHeight = $(window).height();
var done = assert.async(2);
FP.setKeyboardScrolling(false);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateMouseWheel('down');
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
simulateMouseWheel('up');
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
done();
},200*2);
});
QUnit.test('Testing setKeyboardScrolling(true)', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {keyboardScrolling:false, scrollingSpeed:600, loopTop:true}));
var windowHeight = $(window).height();
var done = assert.async(2);
FP.setKeyboardScrolling(true);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateKeydown('down');
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
simulateKeydown('up');
},200);
setTimeout(function(){
assert.deepEqual(getTransform(FP.test.translate3d), ['0', '0', '0'], `We expect sections transformation to be [0, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
done();
},200*2);
});
QUnit.test('Testing setKeyboardScrolling(false, "up")', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {loopTop:true, scrollingSpeed: 50}));
var windowHeight = $(window).height();
var done = assert.async(2);
FP.setKeyboardScrolling(false, 'up');
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateKeydown('down');
setTimeout(function() {
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
simulateKeydown('up');
}, 200);
//scrolling up won't do anything
setTimeout(function() {
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
}, 200*2);
});
QUnit.test('Testing setKeyboardScrolling(false, "up, left")', function(assert) {
var id = '#fullpage';
var FP = initFullpageNew(id, Object.assign({}, allBasicOptions, {loopTop:true, scrollingSpeed: 50}));
var windowHeight = $(window).height();
var done = assert.async(4);
FP.setKeyboardScrolling(false, 'up, left');
assert.equal($(SECTION_ACTIVE_SEL).index(), 0, 'We expect section 1 to be active');
simulateKeydown('down');
setTimeout(function() {
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
simulateKeydown('up');
}, 200);
//scrolling up won't do anything
setTimeout(function() {
assert.deepEqual(getTransform(FP.test.translate3d), ['0', `${-(windowHeight*1)}`, '0'], `We expect sections transformation to be [0, ${-(windowHeight*1)}, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).index(), 1, 'We expect section 2 to be active');
done();
FP.moveSlideRight();
}, 200*2);
setTimeout(function() {
var transforms = getTransform(FP.test.translate3dH[$(id).find(SECTION_ACTIVE_SEL).index()]);
assert.deepEqual(transforms, [`-1000`, '0', '0'], `We expect slides transformation to be [-1000, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).find(SLIDE_ACTIVE_SEL).index(), 1, 'We expect slide 2.2 to be active');
done();
simulateKeydown('left');
},200*3);
//sliding left won't do anything
setTimeout(function() {
var transforms = getTransform(FP.test.translate3dH[$(id).find(SECTION_ACTIVE_SEL).index()]);
assert.deepEqual(transforms, ['-1000', '0', '0'], `We expect slides transformation to be [-1000, 0, 0]`);
assert.equal($(SECTION_ACTIVE_SEL).find(SLIDE_ACTIVE_SEL).index(), 1, 'We expect slide 2.2 to be active');
done();
}, 200*4);
});