summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/autoplay-policy-detection/autoplaypolicy_media_element.html
blob: 6cf93f4730cef09a4907ef4269859871971d75f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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>