Fri, 16 Jan 2015 04:50:19 +0100
Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Media test: Bug 465498 - Seeking after playback ended</title>
5 <script type="text/javascript" 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">
14 var manager = new MediaTestManager;
16 function startTest(e) {
17 e.target.play();
18 }
20 function playbackEnded(e) {
21 var v = e.target;
22 if (v._finished)
23 return;
24 ok(v.currentTime >= v.duration - 0.1 && v.currentTime <= v.duration + 0.1,
25 "Checking currentTime at end: " + v.currentTime + " for " + v._name);
26 ok(v.ended, "Checking playback has ended for " + v._name);
27 v.pause();
28 v.currentTime = 0;
29 ok(!v.ended, "Checking ended is no longer true for " + v._name);
30 v._seeked = true;
31 }
33 function seekEnded(e) {
34 var v = e.target;
35 if (v._finished)
36 return;
37 ok(v.currentTime == 0, "Checking currentTime after seek: " +
38 v.currentTime + " for " + v._name);
39 ok(!v.ended, "Checking ended is false for " + v._name);
40 v._finished = true;
41 v.parentNode.removeChild(v);
42 manager.finished(v.token);
43 }
45 function initTest(test, token) {
46 var type = getMajorMimeType(test.type);
47 var v = document.createElement(type);
48 if (!v.canPlayType(test.type))
49 return;
50 v.preload = "metadata";
51 v.token = token;
52 manager.started(token);
53 v._name = test.name;
55 var s = document.createElement("source");
56 s.type = test.type;
57 s.src = test.name;
58 v.appendChild(s);
60 v._seeked = false;
61 v._finished = false;
62 v.addEventListener("loadedmetadata", startTest, false);
63 v.addEventListener("ended", playbackEnded, false);
64 v.addEventListener("seeked", seekEnded, false);
65 document.body.appendChild(v);
66 }
68 manager.runTests(gSmallTests, initTest);
70 </script>
71 </pre>
72 </body>
73 </html>