diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/tests/autoplay-policy-detection | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/autoplay-policy-detection')
3 files changed, 100 insertions, 0 deletions
diff --git a/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy.html b/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy.html new file mode 100644 index 0000000000..d09143690b --- /dev/null +++ b/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<title>Autoplay policy value test</title> +<script src=/resources/testharness.js></script> +<script src="/resources/testharnessreport.js"></script> +<script> + +test(function getAutoplayPolicyByType() { + assert_in_array( + window.navigator.getAutoplayPolicy("mediaelement"), + ["allowed", "allowed-muted", "disallowed"], + 'Correct return value for mediaelement type'); + + assert_in_array( + window.navigator.getAutoplayPolicy("audiocontext"), + ["allowed", "disallowed"], + 'Correct return value for audiocontext type'); +}, "Test method 'getAutoplayPolicy(AutoplayPolicyMediaType type)'"); + +test(function getAutoplayPolicyMediaElement() { + const audioElement = document.createElement('audio'); + assert_in_array( + window.navigator.getAutoplayPolicy(audioElement), + ["allowed", "allowed-muted", "disallowed"], + 'Correct return value for audio element'); + + const videoElement = document.createElement('video'); + assert_in_array( + window.navigator.getAutoplayPolicy(videoElement), + ["allowed", "allowed-muted", "disallowed"], + 'Correct return value for audio element'); +}, "Test method 'getAutoplayPolicy(HTMLMediaElement element)'"); + +test(function getAutoplayPolicyAudioContext() { + const audioContext = new window.AudioContext(); + assert_in_array( + window.navigator.getAutoplayPolicy(audioContext), + ["allowed", "disallowed"], + 'Correct return value for audio element'); +}, "Test method 'getAutoplayPolicy(AudioContext context)'"); + +</script> diff --git a/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy_media_element.html b/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy_media_element.html new file mode 100644 index 0000000000..6cf93f4730 --- /dev/null +++ b/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy_media_element.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<title>Autoplay policy basic behavior test for media element</title> +<script src="/common/media.js"></script> +<script src=/resources/testharness.js></script> +<script src="/resources/testharnessreport.js"></script> +<script> + +promise_test(async function playAudibleMediaElement() { + const video = document.createElement('video'); + video.src = getVideoURI('/media/movie_5'); + await new Promise(r => video.onloadedmetadata = r); + const startPlaying = await video.play().then(_ => true, _ => false); + if (startPlaying) { + assert_equals( + window.navigator.getAutoplayPolicy(video), + "allowed", + 'Correct value when audible video is allowed to play'); + } else { + assert_in_array( + window.navigator.getAutoplayPolicy(video), + ["disallowed", "allowed-muted"], + 'Correct value when audible video is not allowed to play' + ); + } +}, "Check autoplay policy when playing audible media element"); + +promise_test(async function playInaudibleMediaElement() { + const video = document.createElement('video'); + video.src = getVideoURI('/media/movie_5'); + video.muted = true; + await new Promise(r => video.onloadedmetadata = r); + const startPlaying = await video.play().then(_ => true, _ => false); + if (startPlaying) { + assert_in_array( + window.navigator.getAutoplayPolicy(video), + ["allowed", "allowed-muted"], + 'Correct value when inaudible video is allowed to play'); + } else { + assert_equals( + window.navigator.getAutoplayPolicy(video), + "disallowed", + 'Correct value when inaudible video is not allowed to play' + ); + } +}, "Check autoplay policy when playing inaudible media element"); + +</script> diff --git a/testing/web-platform/tests/autoplay-policy-detection/idlharness.window.js b/testing/web-platform/tests/autoplay-policy-detection/idlharness.window.js new file mode 100644 index 0000000000..185509bb91 --- /dev/null +++ b/testing/web-platform/tests/autoplay-policy-detection/idlharness.window.js @@ -0,0 +1,12 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +// https://w3c.github.io/autoplay/ + +'use strict'; + +idl_test( + ['autoplay-detection'], + ['html'], + idl_array => {} +); |