1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/media/test/seek11.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,49 @@ 1.4 +function test_seek11(v, seekTime, is, ok, finish) { 1.5 + 1.6 +// Test for bug 476973, multiple seeks to the same position shouldn't cause problems. 1.7 + 1.8 +var seekedNonZero = false; 1.9 +var completed = false; 1.10 +var target = 0; 1.11 + 1.12 +function startTest() { 1.13 + if (completed) 1.14 + return; 1.15 + target = v.duration / 2; 1.16 + v.currentTime = target; 1.17 + v.currentTime = target; 1.18 + v._seekTarget = target; 1.19 +} 1.20 + 1.21 +function startSeeking() { 1.22 + ok(v.currentTime >= v._seekTarget - 0.1, 1.23 + "Video currentTime should be around " + v._seekTarget + ": " + v.currentTime); 1.24 + if (!seekedNonZero) { 1.25 + v.currentTime = target; 1.26 + v._seekTarget = target; 1.27 + seekedNonZero = true; 1.28 + } 1.29 +} 1.30 + 1.31 +function seekEnded() { 1.32 + if (completed) 1.33 + return; 1.34 + 1.35 + if (v.currentTime > 0) { 1.36 + ok(v.currentTime > target - 0.1 && v.currentTime < target + 0.1, 1.37 + "Seek to wrong destination " + v.currentTime); 1.38 + v.currentTime = 0.0; 1.39 + v._seekTarget = 0.0; 1.40 + } else { 1.41 + ok(seekedNonZero, "Successfully seeked to nonzero"); 1.42 + ok(true, "Seek back to zero was successful"); 1.43 + completed = true; 1.44 + finish(); 1.45 + } 1.46 +} 1.47 + 1.48 +v.addEventListener("loadedmetadata", startTest, false); 1.49 +v.addEventListener("seeking", startSeeking, false); 1.50 +v.addEventListener("seeked", seekEnded, false); 1.51 + 1.52 +}