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 function test_seek1(v, seekTime, is, ok, finish) {
3 var startPassed = false;
4 var endPassed = false;
5 var seekFlagStart = false;
6 var seekFlagEnd = false;
7 var readonly = true;
8 var completed = false;
10 function startTest() {
11 if (completed)
12 return;
13 ok(!v.seeking, "seeking should default to false");
14 try {
15 v.seeking = true;
16 readonly = v.seeking === false;
17 }
18 catch(e) {
19 readonly = "threw exception: " + e;
20 }
21 is(readonly, true, "seeking should be readonly");
23 v.play();
24 v.currentTime=seekTime;
25 seekFlagStart = v.seeking;
26 }
28 function seekStarted() {
29 if (completed)
30 return;
31 ok(v.currentTime >= seekTime - 0.1,
32 "Video currentTime should be around " + seekTime + ": " + v.currentTime + " (seeking)");
33 v.pause();
34 startPassed = true;
35 }
37 function seekEnded() {
38 if (completed)
39 return;
41 var t = v.currentTime;
42 // Since we were playing, and we only paused asynchronously, we can't be
43 // sure that we paused before the seek finished, so we may have played
44 // ahead arbitrarily far.
45 ok(t >= seekTime - 0.1, "Video currentTime should be around " + seekTime + ": " + t + " (seeked)");
46 v.play();
47 endPassed = true;
48 seekFlagEnd = v.seeking;
49 }
51 function playbackEnded() {
52 if (completed)
53 return;
55 completed = true;
56 ok(startPassed, "seeking event");
57 ok(endPassed, "seeked event");
58 ok(seekFlagStart, "seeking flag on start should be true");
59 ok(!seekFlagEnd, "seeking flag on end should be false");
60 finish();
61 }
63 v.addEventListener("ended", playbackEnded, false);
64 v.addEventListener("loadedmetadata", startTest, false);
65 v.addEventListener("seeking", seekStarted, false);
66 v.addEventListener("seeked", seekEnded, false);
68 }