test_autoplay_contentEditable.html (1630B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: 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 contenteditable="true"> 10 <pre id="test"> 11 12 <script> 13 /* import-globals-from ../../../test/manifest.js */ 14 var manager = new MediaTestManager; 15 16 var tokens = { 17 0: ["canplay"], 18 "canplay": ["canplay", "canplaythrough"], 19 "canplaythrough": ["canplay", "canplaythrough"] 20 }; 21 22 var eventList = ["play", "canplay", "playing", "canplaythrough", "ended"]; 23 24 function gotPlayEvent(event) { 25 var v = event.target; 26 ok(tokens[v._state].includes(event.type), 27 "Check expected event got " + event.type + 28 " at " + v._state + " for " + v._name); 29 v._state = event.type; 30 if (event.type == 'canplaythrough') { 31 // Remove all event listeners to avoid running tests after finishing test case. 32 eventList.forEach(function (e) { 33 v.removeEventListener(e, gotPlayEvent); 34 }); 35 v.pause(); 36 goToNext(v); 37 } 38 } 39 40 function goToNext(v) { 41 v.remove(); 42 manager.finished(v.token); 43 } 44 45 function initTest(test, token) { 46 var v = document.createElement('video'); 47 v.preload = "metadata"; 48 v.token = token; 49 manager.started(token); 50 v._state = 0; 51 52 eventList.forEach(function (e) { 53 v.addEventListener(e, gotPlayEvent); 54 }); 55 56 v.src = test.name; 57 v._name = test.name; 58 v.autoplay = true; 59 document.body.appendChild(v); // Causes load. 60 } 61 62 manager.runTests(gSmallTests, initTest); 63 64 </script> 65 </pre> 66 </body> 67 </html>