| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <title>Test the play() behaviour with regards to the returned promise for media
elements.</title> | 2 <title>Test the play() behaviour with regards to the returned promise for media
elements.</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> | 6 <script> |
| 7 // This is testing the behavior of play() with regards to the returned | 7 // This is testing the behavior of play() with regards to the returned |
| 8 // promise. This test file is creating a small framework in order to be able | 8 // promise. This test file is creating a small framework in order to be able |
| 9 // to test different cases easily and independently of each other. | 9 // to test different cases easily and independently of each other. |
| 10 // All tests have to be part of the tests and testsWithUserGesture arrays. | 10 // All tests have to be part of the tests and testsWithUserGesture arrays. |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 })); | 308 })); |
| 309 | 309 |
| 310 setTimeout(t.step_func(function() { | 310 setTimeout(t.step_func(function() { |
| 311 audio.pause(); | 311 audio.pause(); |
| 312 audio.src = findMediaFile('audio', 'content/test'); | 312 audio.src = findMediaFile('audio', 'content/test'); |
| 313 }), 0); | 313 }), 0); |
| 314 }, | 314 }, |
| 315 ]; | 315 ]; |
| 316 | 316 |
| 317 tests.forEach(function(test) { | 317 tests.forEach(function(test) { |
| 318 internals.settings.setMediaPlaybackRequiresUserGesture(false); | 318 internals.settings.setAutoplayPolicy('no-user-gesture-required'); |
| 319 async_test(function(t) { | 319 async_test(function(t) { |
| 320 var audio = document.createElement("audio"); | 320 var audio = document.createElement("audio"); |
| 321 test(t, audio); | 321 test(t, audio); |
| 322 }, test.name); | 322 }, test.name); |
| 323 }); | 323 }); |
| 324 | 324 |
| 325 var testsWithUserGesture = [ | 325 var testsWithUserGesture = [ |
| 326 // Test that play() on an element when media playback requires a gesture | 326 // Test that play() on an element when media playback requires a gesture |
| 327 // returns a resolved promise if there is a user gesture. | 327 // returns a resolved promise if there is a user gesture. |
| 328 function playRequiresUserGestureAndHasIt(t, audio) { | 328 function playRequiresUserGestureAndHasIt(t, audio) { |
| 329 audio.src = findMediaFile("audio", "content/test"); | 329 audio.src = findMediaFile("audio", "content/test"); |
| 330 playWithUserGesture(t, audio); | 330 playWithUserGesture(t, audio); |
| 331 }, | 331 }, |
| 332 | 332 |
| 333 // Test that play() on an element when media playback requires a gesture | 333 // Test that play() on an element when media playback requires a gesture |
| 334 // returns a rejected promise if there is no user gesture. | 334 // returns a rejected promise if there is no user gesture. |
| 335 function playRequiresUserGestureAndDoesNotHaveIt(t, audio) { | 335 function playRequiresUserGestureAndDoesNotHaveIt(t, audio) { |
| 336 audio.src = findMediaFile("audio", "content/test"); | 336 audio.src = findMediaFile("audio", "content/test"); |
| 337 playExpectingRejectedPromise(t, audio, "NotAllowedError"); | 337 playExpectingRejectedPromise(t, audio, "NotAllowedError"); |
| 338 } | 338 } |
| 339 ]; | 339 ]; |
| 340 | 340 |
| 341 testsWithUserGesture.forEach(function(test) { | 341 testsWithUserGesture.forEach(function(test) { |
| 342 internals.settings.setMediaPlaybackRequiresUserGesture(true); | 342 internals.settings.setAutoplayPolicy('user-gesture-required'); |
| 343 async_test(function(t) { | 343 async_test(function(t) { |
| 344 var audio = document.createElement("audio"); | 344 var audio = document.createElement("audio"); |
| 345 test(t, audio); | 345 test(t, audio); |
| 346 }, test.name); | 346 }, test.name); |
| 347 }); | 347 }); |
| 348 | 348 |
| 349 function playExpectingResolvedPromise(t, audio) { | 349 function playExpectingResolvedPromise(t, audio) { |
| 350 audio.play().then(t.step_func_done(function() { | 350 audio.play().then(t.step_func_done(function() { |
| 351 assert_equals(arguments.length, 1); | 351 assert_equals(arguments.length, 1); |
| 352 assert_equals(arguments[0], undefined); | 352 assert_equals(arguments[0], undefined); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 363 function playWithUserGesture(t, audio) { | 363 function playWithUserGesture(t, audio) { |
| 364 document.onclick = function() { | 364 document.onclick = function() { |
| 365 playExpectingResolvedPromise(t, audio); | 365 playExpectingResolvedPromise(t, audio); |
| 366 document.onclick = null; | 366 document.onclick = null; |
| 367 }; | 367 }; |
| 368 | 368 |
| 369 eventSender.mouseDown(); | 369 eventSender.mouseDown(); |
| 370 eventSender.mouseUp(); | 370 eventSender.mouseUp(); |
| 371 } | 371 } |
| 372 </script> | 372 </script> |
| OLD | NEW |