<!DOCTYPE HTML> <html> <head> <title>Media test: play() method</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> <script type="text/javascript" src="manifest.js"></script> </head> <body contenteditable="true"> <pre id="test"> <script> var manager = new MediaTestManager; var tokens = { 0: ["canplay"], "canplay": ["canplay", "canplaythrough"], "canplaythrough": ["canplay", "canplaythrough"] }; var eventList = ["play", "canplay", "playing", "canplaythrough", "ended"]; function gotPlayEvent(event) { var v = event.target; ok(tokens[v._state].indexOf(event.type) >= 0, "Check expected event got " + uneval(event.type) + " at " + uneval(v._state) + " for " + v._name); v._state = event.type; if (event.type == 'canplaythrough') { // Remove all event listeners to avoid running tests after finishing test case. eventList.forEach(function (e) { v.removeEventListener(e, gotPlayEvent, false); }); v.pause(); goToNext(v); } } function goToNext(v) { v.parentNode.removeChild(v); manager.finished(v.token); } function initTest(test, token) { var v = document.createElement('video'); v.preload = "metadata"; v.token = token; manager.started(token); v._state = 0; eventList.forEach(function (e) { v.addEventListener(e, gotPlayEvent, false); }); v.src = test.name; v._name = test.name; v.autoplay = true; document.body.appendChild(v); // Causes load. } manager.runTests(gSmallTests, initTest); </script> </pre> </body> </html>