diff --git a/test/test.spec.js b/test/test.spec.js index 2ad050dcae7a7b6624b524255b3f108ae6db2911..6501e3167a0d23a418e3cd23e8585e7b69f7dfe5 100644 --- a/test/test.spec.js +++ b/test/test.spec.js @@ -484,14 +484,13 @@ describe('simple player', () => { }); describe('unit navigation', () => { - it('should enable next if available', async done => { + it('should enable the buttons given in enabledNavigationTargets', async done => { await send({ type: 'vopStartCommand', unitDefinition: '<h1>Virtual Unit</h1>', sessionId: '1', playerConfig: { - unitNumber: 1, - unitCount: 4 + enabledNavigationTargets: ['#next', '#prev'] } }); @@ -501,59 +500,9 @@ describe('simple player', () => { const firstUnit = await driver.findElement(By.css('#first-unit')); expect(await nextUnit.isEnabled()).toBeTrue(); - expect(await prevUnit.isEnabled()).toBeFalse(); - expect(await lastUnit.isEnabled()).toBeTrue(); - expect(await firstUnit.isEnabled()).toBeFalse(); - - done(); - }); - - it('should enable previous if available', async done => { - await driver.get(`file:${playerPath}`); - - await send({ - type: 'vopStartCommand', - unitDefinition: '<h1>Virtual Unit</h1>', - sessionId: '1', - playerConfig: { - unitNumber: 4, - unitCount: 4 - } - }); - - const nextUnit = await driver.findElement(By.css('#next-unit')); - const prevUnit = await driver.findElement(By.css('#prev-unit')); - const lastUnit = await driver.findElement(By.css('#last-unit')); - const firstUnit = await driver.findElement(By.css('#first-unit')); - - expect(await nextUnit.isEnabled()).toBeFalse(); expect(await prevUnit.isEnabled()).toBeTrue(); expect(await lastUnit.isEnabled()).toBeFalse(); - expect(await firstUnit.isEnabled()).toBeTrue(); - - done(); - }); - - it('should enable both if available', async done => { - await send({ - type: 'vopStartCommand', - unitDefinition: '<h1>Virtual Unit</h1>', - sessionId: '1', - playerConfig: { - unitNumber: 2, - unitCount: 4 - } - }); - - const nextUnit = await driver.findElement(By.css('#next-unit')); - const prevUnit = await driver.findElement(By.css('#prev-unit')); - const lastUnit = await driver.findElement(By.css('#last-unit')); - const firstUnit = await driver.findElement(By.css('#first-unit')); - - expect(await nextUnit.isEnabled()).toBeTrue(); - expect(await prevUnit.isEnabled()).toBeTrue(); - expect(await lastUnit.isEnabled()).toBeTrue(); - expect(await firstUnit.isEnabled()).toBeTrue(); + expect(await firstUnit.isEnabled()).toBeFalse(); done(); }); @@ -1146,7 +1095,7 @@ describe('simple player', () => { }); }); - describe('Player (regression tests)', () => { + describe('(regression tests)', () => { it('should prevent implicit form submission', async done => { // see: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#default-button await send({ diff --git a/verona-simple-player-1.html b/verona-simple-player-1.html index 286c7c899d2cf05b6b042b407c68cff16dcfc382..50fa67514a02b5864f41c71880b65e9b36c0e0d4 100755 --- a/verona-simple-player-1.html +++ b/verona-simple-player-1.html @@ -161,7 +161,7 @@ unitNumber: 0, unitTitle: 'Unit', unitId: 'unit', - unitCount: Infinity, + enabledNavigationTargets: [], // can contain "next" "previous" "first" "last" "end" stateReportPolicy: "eager", // none" | "eager" | "on-demand" pagingMode: "separate", // "separate" | "concat-scroll" | "concat-scroll-snap" } @@ -738,10 +738,11 @@ } toggleUnitNavButtons = () => { - this.toggleButton('first-unit', playerConfig.unitNumber > 1); - this.toggleButton('prev-unit', playerConfig.unitNumber > 1); - this.toggleButton('next-unit', playerConfig.unitNumber < playerConfig.unitCount); - this.toggleButton('last-unit', playerConfig.unitNumber < playerConfig.unitCount); + console.log(playerConfig); + this.toggleButton('first-unit', playerConfig.enabledNavigationTargets.indexOf('#first') > -1); + this.toggleButton('prev-unit', playerConfig.enabledNavigationTargets.indexOf('#prev') > -1); + this.toggleButton('next-unit', playerConfig.enabledNavigationTargets.indexOf('#next') > -1); + this.toggleButton('last-unit', playerConfig.enabledNavigationTargets.indexOf('#last') > -1); } markElementTouched = elem => {