From 975235beb1a31e65ac204c19a0db238818f0a5b6 Mon Sep 17 00:00:00 2001 From: Joey Parrish Date: Thu, 9 May 2024 03:01:22 -0700 Subject: [PATCH] ci: Add additional lab Chromecast devices (#6563) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Álvaro Velad Galván --- .../shaka-bot-commands/command-test.sh | 2 +- build/shaka-lab.yaml | 20 +++++++++++++++++++ test/player_unit.js | 12 +++++------ .../transmuxer_engine_integration.js | 8 ++++++-- test/ui/ui_unit.js | 13 +++++++----- 5 files changed, 41 insertions(+), 14 deletions(-) diff --git a/.github/workflows/shaka-bot-commands/command-test.sh b/.github/workflows/shaka-bot-commands/command-test.sh index fd92460dbe..f3125bee84 100644 --- a/.github/workflows/shaka-bot-commands/command-test.sh +++ b/.github/workflows/shaka-bot-commands/command-test.sh @@ -25,7 +25,7 @@ WORKFLOW_ARGS=( "pr=$PR_NUMBER" ) case "${SHAKA_BOT_ARGUMENTS[0]}" in # CE devices only. - ce) WORKFLOW_ARGS+=( "browser_filter=Tizen ChromecastUltra ChromecastGTV ChromeAndroid" ) ;; + ce) WORKFLOW_ARGS+=( "browser_filter=Tizen ChromecastHub ChromecastUltra ChromecastGTV ChromeAndroid" ) ;; # No command argument, no extra workflow arguments. "") ;; diff --git a/build/shaka-lab.yaml b/build/shaka-lab.yaml index bdb94174b4..c08085e2cb 100644 --- a/build/shaka-lab.yaml +++ b/build/shaka-lab.yaml @@ -241,6 +241,26 @@ ChromecastGTV: browser: chromecast version: GTV +ChromecastHub: + browser: chromecast + version: hub + +ChromecastSpeaker: + # This is a headless device, and our tests are not yet known to work here. + # Do not run tests here by default. + # This device can still be requested explicitly in the Selenium workflow. + disabled: true + browser: chromecast + version: speaker + +ChromecastV1: + # This is a very low-performing device, and many of our tests don't work here. + # Do not run tests here by default. + # This device can still be requested explicitly in the Selenium workflow. + disabled: true + browser: chromecast + version: v1 + Chromebook: # TODO(b/145916766): Persistent license tests failing disabled: true diff --git a/test/player_unit.js b/test/player_unit.js index 07192f09ec..88b5d12580 100644 --- a/test/player_unit.js +++ b/test/player_unit.js @@ -3500,7 +3500,7 @@ describe('Player', () => { manifest = shaka.test.ManifestGenerator.generate((manifest) => { manifest.addVariant(0, (variant) => { variant.addVideo(1, (stream) => { - stream.size(900, 900); + stream.size(500, 500); }); }); manifest.addVariant(1, (variant) => { @@ -3518,7 +3518,7 @@ describe('Player', () => { await player.load(fakeManifestUri, 0, fakeMimeType); expect(player.getVariantTracks().length).toBe(3); - player.configure({restrictions: {minPixels: 100, maxPixels: 800 * 800}}); + player.configure({restrictions: {minPixels: 100, maxPixels: 400 * 400}}); const tracks = player.getVariantTracks(); expect(tracks.length).toBe(1); @@ -3534,7 +3534,7 @@ describe('Player', () => { }); manifest.addVariant(1, (variant) => { variant.addVideo(2, (stream) => { - stream.size(1500, 200); + stream.size(1000, 200); }); }); manifest.addVariant(2, (variant) => { @@ -3547,7 +3547,7 @@ describe('Player', () => { await player.load(fakeManifestUri, 0, fakeMimeType); expect(player.getVariantTracks().length).toBe(3); - player.configure({restrictions: {minWidth: 100, maxWidth: 1000}}); + player.configure({restrictions: {minWidth: 100, maxWidth: 500}}); const tracks = player.getVariantTracks(); expect(tracks.length).toBe(1); @@ -3564,7 +3564,7 @@ describe('Player', () => { manifest.addVariant(1, (variant) => { variant.addVideo(2, (stream) => { - stream.size(1024, 1024); + stream.size(500, 500); }); }); @@ -3578,7 +3578,7 @@ describe('Player', () => { await player.load(fakeManifestUri, 0, fakeMimeType); expect(player.getVariantTracks().length).toBe(3); - player.configure({restrictions: {minHeight: 100, maxHeight: 1000}}); + player.configure({restrictions: {minHeight: 100, maxHeight: 400}}); const tracks = player.getVariantTracks(); expect(tracks.length).toBe(1); diff --git a/test/transmuxer/transmuxer_engine_integration.js b/test/transmuxer/transmuxer_engine_integration.js index 70bfe18822..e9a5aa6c06 100644 --- a/test/transmuxer/transmuxer_engine_integration.js +++ b/test/transmuxer/transmuxer_engine_integration.js @@ -58,9 +58,13 @@ describe('TransmuxerEngine', () => { }); it('converts legacy avc1 codec strings', () => { + // This test is dependent on platform support for these codecs, because + // TransmuxerEngine will only convert codecs through a matching Transmuxer + // that returns true from isSupported(). The numbers have been carefully + // tweaked for codec settings that should work on every device with H.264. expect(convertCodecs( - ContentType.VIDEO, 'video/mp2t; codecs="avc1.100.42"')) - .toBe('video/mp4; codecs="avc1.64002a"'); + ContentType.VIDEO, 'video/mp2t; codecs="avc1.100.40"')) + .toBe('video/mp4; codecs="avc1.640028"'); expect(convertCodecs( ContentType.VIDEO, 'video/mp2t; codecs="avc1.66.1"')) .toBe('video/mp4; codecs="avc1.420001"'); diff --git a/test/ui/ui_unit.js b/test/ui/ui_unit.js index d993000c95..ded8e0313b 100644 --- a/test/ui/ui_unit.js +++ b/test/ui/ui_unit.js @@ -728,6 +728,7 @@ describe('UI', () => { UiUtils.simulateEvent(controlsContainer, 'contextmenu'); expect(contextMenu.classList.contains('shaka-hidden')).toBe(true); }); + it('hides on click event', () => { UiUtils.simulateEvent(controlsContainer, 'contextmenu'); UiUtils.simulateEvent(controlsContainer, 'click'); @@ -736,6 +737,7 @@ describe('UI', () => { UiUtils.simulateEvent(window, 'click'); expect(contextMenu.classList.contains('shaka-hidden')).toBe(true); }); + it('builds internal elements', () => { expect(contextMenu.childNodes.length).toBe(1); @@ -807,6 +809,7 @@ describe('UI', () => { } } }); + it('is updated periodically', async () => { // There is no guaranteed ordering, so fetch by the stat name. function getStatsElementByName(name) { @@ -838,11 +841,11 @@ describe('UI', () => { /** @type {!string} */ let lastBufferingTime; - const manifest = - shaka.test.ManifestGenerator.generate((manifest) => { + const manifest = shaka.test.ManifestGenerator.generate((manifest) => { manifest.addVariant(/* id= */ 0, (variant) => { variant.addVideo(1, (stream) => { - stream.size(1920, 1080); + // Keep this at 720p to pass max-height checks on Chromecast Hub. + stream.size(1280, 720); }); }); }); @@ -864,8 +867,8 @@ describe('UI', () => { await Util.delay(0.2); getStatsFromContainer(); - expect(width).toBe('1920'); - expect(height).toBe('1080'); + expect(width).toBe('1280'); + expect(height).toBe('720'); expect(bufferingTime).toBeGreaterThanOrEqual(0.1); // Statistics are updated over time