Skip to content

Commit

Permalink
ci: Add additional lab Chromecast devices (#6563)
Browse files Browse the repository at this point in the history
Co-authored-by: Álvaro Velad Galván <ladvan91@hotmail.com>
  • Loading branch information
joeyparrish and avelad committed May 9, 2024
1 parent 8830ab7 commit 975235b
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/shaka-bot-commands/command-test.sh
Expand Up @@ -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.
"") ;;
Expand Down
20 changes: 20 additions & 0 deletions build/shaka-lab.yaml
Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions test/player_unit.js
Expand Up @@ -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) => {
Expand All @@ -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);
Expand All @@ -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) => {
Expand All @@ -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);
Expand All @@ -3564,7 +3564,7 @@ describe('Player', () => {

manifest.addVariant(1, (variant) => {
variant.addVideo(2, (stream) => {
stream.size(1024, 1024);
stream.size(500, 500);
});
});

Expand All @@ -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);
Expand Down
8 changes: 6 additions & 2 deletions test/transmuxer/transmuxer_engine_integration.js
Expand Up @@ -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"');
Expand Down
13 changes: 8 additions & 5 deletions test/ui/ui_unit.js
Expand Up @@ -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');
Expand All @@ -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);

Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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);
});
});
});
Expand All @@ -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
Expand Down

0 comments on commit 975235b

Please sign in to comment.