test_play_events.html (1485B)
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> 10 <pre id="test"> 11 12 <script> 13 14 var manager = new MediaTestManager; 15 16 var tokens = { 17 0: ["play"], 18 "play": ["canplay"], 19 "canplay": ["playing"], 20 "playing": ["canplay", "canplaythrough"], 21 "canplaythrough": ["canplay", "canplaythrough"] 22 }; 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 + " at " + v._state + " for " + v.src + 28 " tokens["+v._state+"]=" + tokens[v._state] + 29 " tokens["+v._state+"].indexOf(event.type)=" + tokens[v._state].indexOf(event.type)); 30 v._state = event.type; 31 } 32 33 function ended(event) { 34 var v = event.target; 35 removeNodeAndSource(v); 36 manager.finished(v.token); 37 } 38 39 function initTest(test, token) { 40 var v = document.createElement('video'); 41 v.token = token; 42 manager.started(token); 43 v._state = 0; 44 45 ["play", "canplay", "playing", "canplaythrough"].forEach(function (e) { 46 v.addEventListener(e, gotPlayEvent); 47 }); 48 49 v.addEventListener("ended", ended); 50 51 v.src = test.name; 52 document.body.appendChild(v); // Causes load. 53 v.play(); 54 } 55 56 manager.runTests(gSmallTests, initTest); 57 58 </script> 59 </pre> 60 </body> 61 </html>