test_bug465498.html (2185B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: Bug 465498 - Seeking after playback ended</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 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=465498">Mozilla Bug 465498</a> 11 <pre id="test"> 12 <script class="testbody" type="text/javascript"> 13 14 var manager = new MediaTestManager; 15 16 function startTest(e) { 17 var v = e.target; 18 info(v._name + " loadedmetadata"); 19 e.target.play(); 20 } 21 22 function playbackEnded(e) { 23 var v = e.target; 24 info(v._name + " ended"); 25 if (v._finished) 26 return; 27 ok(v.currentTime >= v.duration - 0.1 && v.currentTime <= v.duration + 0.1, 28 "Checking currentTime at end: " + v.currentTime + " for " + v._name); 29 ok(v.ended, "Checking playback has ended for " + v._name); 30 v.pause(); 31 v.currentTime = 0; 32 ok(!v.ended, "Checking ended is no longer true for " + v._name); 33 v._seeked = true; 34 } 35 36 function seekEnded(e) { 37 var v = e.target; 38 info(v._name + " seeked"); 39 if (v._finished) 40 return; 41 ok(v.currentTime == 0, "Checking currentTime after seek: " + 42 v.currentTime + " for " + v._name); 43 ok(!v.ended, "Checking ended is false for " + v._name); 44 v._finished = true; 45 removeNodeAndSource(v); 46 manager.finished(v.token); 47 } 48 49 function seeking(e) { 50 var v = e.target; 51 info(v._name + " seeking"); 52 } 53 54 function initTest(test, token) { 55 var type = getMajorMimeType(test.type); 56 var v = document.createElement(type); 57 if (!v.canPlayType(test.type)) 58 return; 59 v.preload = "metadata"; 60 v.token = token; 61 manager.started(token); 62 v._name = test.name; 63 64 var s = document.createElement("source"); 65 s.type = test.type; 66 s.src = test.name; 67 v.appendChild(s); 68 69 v._seeked = false; 70 v._finished = false; 71 v.addEventListener("loadedmetadata", startTest); 72 v.addEventListener("ended", playbackEnded); 73 v.addEventListener("seeked", seekEnded); 74 v.addEventListener("seeking", seeking); 75 document.body.appendChild(v); 76 } 77 78 manager.runTests(gSmallTests, initTest); 79 80 </script> 81 </pre> 82 </body> 83 </html>