test_seek-2.html (1770B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: seek tests</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 <script type="text/javascript" src="seek_support.js"></script> 9 </head> 10 <body> 11 <pre id="test"> 12 <script class="testbody" type="text/javascript"> 13 14 // The data being used in these tests is specified in manifest.js. 15 // The functions to build the test array and to run a specific test are in 16 // seek_support.js. 17 18 PARALLEL_TESTS = 1; 19 const SEEK_TEST_NUMBER = 2; 20 21 function test_seek2(v, seekTime, is, ok, finish) { 22 23 // Test seeking works if current time is set before video is 24 // playing. 25 var startPassed = false; 26 var endPassed = false; 27 var completed = false; 28 29 function startTest() { 30 if (completed) 31 return; 32 33 v.currentTime=seekTime; 34 v.play(); 35 } 36 37 function seekStarted() { 38 if (completed) 39 return; 40 41 ok(v.currentTime >= seekTime - 0.1, "Video currentTime should be around " + seekTime + ": " + v.currentTime); 42 startPassed = true; 43 } 44 45 function seekEnded() { 46 if (completed) 47 return; 48 49 endPassed = true; 50 } 51 52 function playbackEnded() { 53 if (completed) 54 return; 55 56 completed = true; 57 ok(startPassed, "send seeking event"); 58 ok(endPassed, "send seeked event"); 59 ok(v.ended, "Checking playback has ended"); 60 ok(Math.abs(v.currentTime - v.duration) <= 0.1, "Checking currentTime at end: " + v.currentTime); 61 finish(); 62 } 63 64 v.addEventListener("ended", playbackEnded); 65 v.addEventListener("loadedmetadata", startTest); 66 v.addEventListener("seeking", seekStarted); 67 v.addEventListener("seeked", seekEnded); 68 69 } 70 71 manager.runTests(createTestArray(), startTest); 72 73 </script> 74 </pre> 75 </body> 76 </html>