describe('keyboard (option)', () => { it('should be enabled by default', () => { const image = window.createImage(); const viewer = new Viewer(image); expect(viewer.options.keyboard).to.be.true; }); it('should be disabled', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { keyboard: false, viewed() { expect(viewer.isShown).to.be.true; image.dispatchEvent(window.createEvent('keydown', { key: 'Escape', keyCode: 27, })); expect(viewer.isShown).to.be.true; viewer.hide(true); done(); }, }); expect(viewer.options.keyboard).to.be.false; viewer.show(); }); it('should hide the viewer when press the "Escape" key in modal mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { viewed() { image.dispatchEvent(window.createEvent('keydown', { key: 'Escape', keyCode: 27, })); }, hide() { done(); }, }); viewer.show(); }); it('should exit modal mode when press the "Escape" key in inline mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { inline: true, viewed() { viewer.full(); expect(viewer.fulled).to.be.true; image.dispatchEvent(window.createEvent('keydown', { key: 'Escape', keyCode: 27, })); expect(viewer.fulled).to.be.false; done(); }, }); }); it('should stop playing when press the "Escape" key in modal mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { viewed() { viewer.play(); expect(viewer.played).to.be.true; image.dispatchEvent(window.createEvent('keydown', { key: 'Escape', keyCode: 27, })); expect(viewer.played).to.be.false; viewer.hide(true); done(); }, }); viewer.show(); }); it('should stop playing when press the "Space bar" key in modal mode', (done) => { const imageList = window.createImageList(); const viewer = new Viewer(imageList, { viewed() { viewer.play(); expect(viewer.played).to.be.true; imageList.dispatchEvent(window.createEvent('keydown', { key: ' ', keyCode: 32, })); expect(viewer.played).to.be.false; viewer.hide(true); done(); }, }); viewer.show(); }); it('should view the previous image when press the "ArrowLeft" key in modal mode', (done) => { const imageList = window.createImageList(); const viewer = new Viewer(imageList, { viewed(event) { switch (event.detail.index) { case 0: viewer.hide(true); done(); break; case 1: { imageList.dispatchEvent(window.createEvent('keydown', { key: 'ArrowLeft', keyCode: 37, })); break; } default: } }, }); viewer.view(1); }); it('should view the next image when press the "ArrowRight" key in modal mode', (done) => { const imageList = window.createImageList(); const viewer = new Viewer(imageList, { viewed(event) { switch (event.detail.index) { case 0: { imageList.dispatchEvent(window.createEvent('keydown', { key: 'ArrowRight', keyCode: 39, })); break; } case 1: viewer.hide(true); done(); break; default: } }, }); viewer.view(0); }); it('should zoom in when press the "ArrowUp" key in modal mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { viewed() { const { ratio } = viewer.imageData; image.dispatchEvent(window.createEvent('keydown', { key: 'ArrowUp', keyCode: 38, })); expect(viewer.imageData.ratio).to.be.above(ratio); viewer.hide(true); done(); }, }); viewer.show(); }); it('should zoom out when press the "ArrowDown" key in modal mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { viewed() { const { ratio } = viewer.imageData; image.dispatchEvent(window.createEvent('keydown', { key: 'ArrowDown', keyCode: 40, })); expect(viewer.imageData.ratio).to.be.below(ratio); viewer.hide(true); done(); }, }); viewer.show(); }); it('should zoom out to initial size when press `Ctrl + 0` in modal mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { viewed() { const { imageData } = viewer; const { ratio } = imageData; viewer.zoomTo(1); expect(imageData.ratio).to.not.equal(ratio); image.dispatchEvent(window.createEvent('keydown', { ctrlKey: true, key: '0', keyCode: 48, })); expect(imageData.ratio).to.equal(ratio); viewer.hide(true); done(); }, }); viewer.show(); }); it('should zoom out in to natural size when press `Ctrl + 1` in modal mode', (done) => { const image = window.createImage(); const viewer = new Viewer(image, { viewed() { const { imageData } = viewer; expect(imageData.ratio).to.not.equal(1); image.dispatchEvent(window.createEvent('keydown', { ctrlKey: true, key: '1', keyCode: 49, })); expect(imageData.ratio).to.equal(1); viewer.hide(true); done(); }, }); viewer.show(); }); });