OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <title>Test for autoplay of muted video</title> | 2 <title>Test for autoplay of muted video</title> |
3 <script src="../resources/testharness.js"></script> | 3 <script src="../resources/testharness.js"></script> |
4 <script src="../resources/testharnessreport.js"></script> | 4 <script src="../resources/testharnessreport.js"></script> |
5 <script src="media-file.js"></script> | 5 <script src="media-file.js"></script> |
6 <script src="media-controls.js"></script> | 6 <script src="media-controls.js"></script> |
7 <body> | 7 <body> |
8 <script> | 8 <script> |
9 test(function() { | 9 test(function() { |
10 assert_true(!!window.internals | 10 assert_true(!!window.internals |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 var e = createMutedAudioElement(); | 63 var e = createMutedAudioElement(); |
64 e.autoplay = true; | 64 e.autoplay = true; |
65 e.onplay = t.unreached_func(); | 65 e.onplay = t.unreached_func(); |
66 e.oncanplaythrough = t.step_func(function() { | 66 e.oncanplaythrough = t.step_func(function() { |
67 setTimeout(t.step_func_done(function() { | 67 setTimeout(t.step_func_done(function() { |
68 assert_true(e.paused); | 68 assert_true(e.paused); |
69 }), 0); | 69 }), 0); |
70 }); | 70 }); |
71 }, "Test that autoplay on a muted audio without gesture has no effect."); | 71 }, "Test that autoplay on a muted audio without gesture has no effect."); |
72 | 72 |
73 promise_test(function(t) { | 73 async_test(t => { |
74 var e = createMutedVideoElement(); | 74 var e = createMutedVideoElement(); |
75 return e.play().then(t.step_func_done(function() { | 75 e.play().then(t.step_func(() => { |
76 e.muted = false; | 76 e.muted = false; |
| 77 |
| 78 var expectedEvents = [ 'volumechange', 'pause' ]; |
| 79 new EventWatcher(t, e, expectedEvents).wait_for(expectedEvents).then( |
| 80 t.step_func_done(() => { |
77 assert_true(e.paused, "The video should be paused."); | 81 assert_true(e.paused, "The video should be paused."); |
78 })); | 82 })); |
| 83 })); |
79 }, "Test that unmuting an autoplayed video without gesture pauses."); | 84 }, "Test that unmuting an autoplayed video without gesture pauses."); |
80 | 85 |
81 async_test(function(t) { | 86 async_test(function(t) { |
82 var e = createMutedVideoElement(); | 87 var e = createMutedVideoElement(); |
83 | 88 |
84 e.play().then(t.step_func(function() { | 89 e.play().then(t.step_func(function() { |
85 eventSender.mouseDown(); | 90 eventSender.mouseDown(); |
86 eventSender.mouseUp(); | 91 eventSender.mouseUp(); |
87 })); | 92 })); |
88 | 93 |
89 document.onclick = t.step_func_done(function() { | 94 document.onclick = t.step_func_done(function() { |
90 e.muted = false; | 95 e.muted = false; |
91 assert_false(e.paused, "The video should not be paused."); | 96 assert_false(e.paused, "The video should not be paused."); |
92 }); | 97 }); |
93 }, "Test that unmuting autoplayed video with gesture doesn't pause it."); | 98 }, "Test that unmuting autoplayed video with gesture doesn't pause it."); |
94 | 99 |
95 promise_test(function(t) { | 100 promise_test(function(t) { |
96 testRunner.setAutoplayAllowed(false); | 101 testRunner.setAutoplayAllowed(false); |
97 return promise_rejects( | 102 return promise_rejects( |
98 t, | 103 t, |
99 new DOMException( | 104 new DOMException( |
100 'play() can only be initiated by a user gesture.', | 105 'play() can only be initiated by a user gesture.', |
101 'NotAllowedError'), | 106 'NotAllowedError'), |
102 createMutedVideoElement().play()); | 107 createMutedVideoElement().play()); |
103 }, "Test that muted videos don't autoplay when the setting is disabled"); | 108 }, "Test that muted videos don't autoplay when the setting is disabled"); |
104 </script> | 109 </script> |
105 </body> | 110 </body> |
OLD | NEW |