test_play_promise_18.html (1350B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: promise-based play() method</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 7 <script type="text/javascript" src="manifest.js"></script> 8 </head> 9 <body> 10 <pre id="test"> 11 12 <script> 13 // Name: 'playing' event should come before promise resolving 14 // Case: invoke play() on an element which has valis source 15 // Expected result: receive a 'playing' event before the promise is resolved 16 17 let manager = new MediaTestManager; 18 19 function initTest(test, token) { 20 manager.started(token); 21 22 let element = document.createElement(getMajorMimeType(test.type)); 23 element.src = test.name; 24 element.receivedPlayingEvent = false; 25 26 element.addEventListener("playing", () => { 27 element.receivedPlayingEvent = true; 28 }); 29 30 element.play().then( 31 (result) => { 32 if (result == undefined && element.receivedPlayingEvent) { 33 ok(true, `${token} is resolved with ${result}.`); 34 } else { 35 ok(false, `${token} is resolved with ${result} and receivedPlayingEvent = ${element.receivedPlayingEvent}`); 36 } 37 }, 38 (error) => { 39 ok(false, `${token} is rejected with ${error.name}.`); 40 } 41 ).then( () => { manager.finished(token); } ); 42 } 43 44 manager.runTests(gSmallTests, initTest); 45 46 </script>