test_play_promise_7.html (1546B)
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 <script type="text/javascript" src="play_promise.js"></script> 9 </head> 10 <body> 11 <pre id="test"> 12 13 <script> 14 // Name: playSwitchToInvalidSrcAfterError 15 // Case: invoke play() on an element which had its source changed (to a invalid source) after suffering from an error 16 // Expected result: reject the promise with NotSupportedError DOM exception 17 18 let manager = new MediaTestManager; 19 20 function initTest(test, token) { 21 manager.started(token); 22 23 let element = document.createElement(getMajorMimeType(test.type)); 24 element.src = getNotSupportedFile(test.name); 25 once(element, "error").then(() => { 26 ok(element.error.code == MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED); 27 element.src = getNotSupportedFile(test.name); 28 ok(element.error == null); 29 ok(element.readyState == HTMLMediaElement.HAVE_NOTHING); 30 element.play().then( 31 (result) => { 32 ok(false, `${token} is resolved with ${result}.`); 33 }, 34 (error) => { 35 if (error.name == "NotSupportedError") { 36 ok(true, `${token} is rejected with ${error.name}.`); 37 } else { 38 ok(false, `${token} is rejected with ${error.name}.`); 39 } 40 } 41 ).then( () => { manager.finished(token); } ); 42 }); 43 } 44 45 manager.runTests(gSmallTests, initTest); 46 47 </script>