diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/mst-content-hint/MediaStreamTrack-contentHint.html | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/mst-content-hint/MediaStreamTrack-contentHint.html')
-rw-r--r-- | testing/web-platform/tests/mst-content-hint/MediaStreamTrack-contentHint.html | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/testing/web-platform/tests/mst-content-hint/MediaStreamTrack-contentHint.html b/testing/web-platform/tests/mst-content-hint/MediaStreamTrack-contentHint.html new file mode 100644 index 0000000000..98c88e66ea --- /dev/null +++ b/testing/web-platform/tests/mst-content-hint/MediaStreamTrack-contentHint.html @@ -0,0 +1,111 @@ +<!DOCTYPE HTML> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<canvas id="canvas"> +</canvas> +<script> + +function createAudioTrack() { + ac = new AudioContext(); + var osc = ac.createOscillator(); + var dest = ac.createMediaStreamDestination(); + osc.connect(dest); + audio_track = dest.stream.getAudioTracks()[0]; + + assert_equals(audio_track.kind, "audio"); + return audio_track; +} + +function createVideoTrack() { + canvas = document.getElementById("canvas"); + video_track = canvas.captureStream().getVideoTracks()[0]; + + assert_equals(video_track.kind, "video"); + return video_track; +} + +test(t => { + audio_track = createAudioTrack(); + assert_equals("", audio_track.contentHint); + + video_track = createVideoTrack(); + assert_equals("", video_track.contentHint); +}, "Tracks have empty default content hint"); + +test(t => { + audio_track = createAudioTrack(); + audio_track.contentHint = "speech"; + assert_equals(audio_track.contentHint, "speech"); + audio_track.contentHint = "music"; + assert_equals(audio_track.contentHint, "music"); + audio_track.contentHint = ""; + assert_equals(audio_track.contentHint, ""); +}, "Accepts valid audio contentHints"); + +test(t => { + audio_track = createAudioTrack(); + audio_track.contentHint = "speech"; + assert_equals(audio_track.contentHint, "speech"); + audio_track.contentHint = "motion"; + assert_equals(audio_track.contentHint, "speech", + "Audio tracks should ignore video-only contentHints."); + audio_track.contentHint = "bogus"; + assert_equals(audio_track.contentHint, "speech", + "Audio tracks should ignore garbage contentHints"); +}, "Audio tracks ignore invalid/video contentHints"); + +test(t => { + video_track = createVideoTrack(); + video_track.contentHint = "motion"; + assert_equals(video_track.contentHint, "motion"); + video_track.contentHint = "detail"; + assert_equals(video_track.contentHint, "detail"); + video_track.contentHint = "text"; + assert_equals(video_track.contentHint, "text"); + video_track.contentHint = ""; + assert_equals(video_track.contentHint, ""); +}, "Accepts valid video contentHints"); + +test(t => { + video_track = createVideoTrack(); + video_track.contentHint = "motion"; + assert_equals(video_track.contentHint, "motion"); + video_track.contentHint = "speech"; + assert_equals(video_track.contentHint, "motion", + "Video tracks should ignore audio-only contentHints."); + video_track.contentHint = "bogus"; + assert_equals(video_track.contentHint, "motion", + "Video tracks should ignore garbage contentHints"); +}, "Video tracks ignore invalid/audio contentHints"); + +test(t => { + video_track = createVideoTrack(); + video_track.contentHint = "motion"; + assert_equals(video_track.contentHint, "motion"); + + // Cloning a track should preserve contentHint. + video_track_clone = video_track.clone(); + assert_equals(video_track_clone.contentHint, "motion"); + + // Changing a cloned track's contentHint should not change the original. + video_track_clone.contentHint = "detail"; + assert_equals(video_track_clone.contentHint, "detail"); + assert_equals(video_track.contentHint, "motion"); +}, "Cloned video tracks have separate contentHints"); + +test(t => { + audio_track = createAudioTrack(); + audio_track.contentHint = "speech"; + assert_equals(audio_track.contentHint, "speech"); + + // Cloning a track should preserve contentHint. + audio_track_clone = audio_track.clone(); + assert_equals(audio_track_clone.contentHint, "speech"); + + // Changing a cloned track's contentHint should not change the original. + audio_track_clone.contentHint = "music"; + assert_equals(audio_track_clone.contentHint, "music"); + assert_equals(audio_track.contentHint, "speech"); +}, "Cloned audio tracks have separate contentHints"); + +</script> |