test_play_events_2.html (1381B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: play() method via DOM 0 handlers</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 var manager = new MediaTestManager; 14 15 var tokens = { 16 0: ["play"], 17 "play": ["canplay"], 18 "canplay": ["playing"], 19 "playing": ["canplay", "canplaythrough"], 20 "canplaythrough": ["canplay", "canplaythrough"] 21 }; 22 23 function gotPlayEvent(event) { 24 var v = event.target; 25 ok(tokens[v._state].includes(event.type), 26 "Check expected event got " + event.type + " at " + v._state + " for " + v.src); 27 v._state = event.type; 28 } 29 30 function ended(event) { 31 var v = event.target; 32 v._finished = true; 33 removeNodeAndSource(v); 34 manager.finished(v.token); 35 } 36 37 function startTest(test, token) { 38 var v = document.createElement('video'); 39 v.token = token; 40 manager.started(token); 41 v._state = 0; 42 v._finished = false; 43 44 ["play", "canplay", "playing", "canplaythrough"].forEach(function (e) { 45 v["on" + e] = gotPlayEvent; 46 }); 47 48 v.onended = ended; 49 50 v.src = test.name; 51 document.body.appendChild(v); // Causes load. 52 v.play(); 53 } 54 55 manager.runTests(gSmallTests, startTest); 56 57 </script> 58 </pre> 59 </body> 60 </html>