1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/test/seek1.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,68 @@ 1.4 +function test_seek1(v, seekTime, is, ok, finish) { 1.5 + 1.6 +var startPassed = false; 1.7 +var endPassed = false; 1.8 +var seekFlagStart = false; 1.9 +var seekFlagEnd = false; 1.10 +var readonly = true; 1.11 +var completed = false; 1.12 + 1.13 +function startTest() { 1.14 + if (completed) 1.15 + return; 1.16 + ok(!v.seeking, "seeking should default to false"); 1.17 + try { 1.18 + v.seeking = true; 1.19 + readonly = v.seeking === false; 1.20 + } 1.21 + catch(e) { 1.22 + readonly = "threw exception: " + e; 1.23 + } 1.24 + is(readonly, true, "seeking should be readonly"); 1.25 + 1.26 + v.play(); 1.27 + v.currentTime=seekTime; 1.28 + seekFlagStart = v.seeking; 1.29 +} 1.30 + 1.31 +function seekStarted() { 1.32 + if (completed) 1.33 + return; 1.34 + ok(v.currentTime >= seekTime - 0.1, 1.35 + "Video currentTime should be around " + seekTime + ": " + v.currentTime + " (seeking)"); 1.36 + v.pause(); 1.37 + startPassed = true; 1.38 +} 1.39 + 1.40 +function seekEnded() { 1.41 + if (completed) 1.42 + return; 1.43 + 1.44 + var t = v.currentTime; 1.45 + // Since we were playing, and we only paused asynchronously, we can't be 1.46 + // sure that we paused before the seek finished, so we may have played 1.47 + // ahead arbitrarily far. 1.48 + ok(t >= seekTime - 0.1, "Video currentTime should be around " + seekTime + ": " + t + " (seeked)"); 1.49 + v.play(); 1.50 + endPassed = true; 1.51 + seekFlagEnd = v.seeking; 1.52 +} 1.53 + 1.54 +function playbackEnded() { 1.55 + if (completed) 1.56 + return; 1.57 + 1.58 + completed = true; 1.59 + ok(startPassed, "seeking event"); 1.60 + ok(endPassed, "seeked event"); 1.61 + ok(seekFlagStart, "seeking flag on start should be true"); 1.62 + ok(!seekFlagEnd, "seeking flag on end should be false"); 1.63 + finish(); 1.64 +} 1.65 + 1.66 +v.addEventListener("ended", playbackEnded, false); 1.67 +v.addEventListener("loadedmetadata", startTest, false); 1.68 +v.addEventListener("seeking", seekStarted, false); 1.69 +v.addEventListener("seeked", seekEnded, false); 1.70 + 1.71 +}