test_seek_out_of_range.html (1457B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: seeking off the end of a file</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 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 13 var manager = new MediaTestManager; 14 15 // Test if the ended event works correctly. 16 17 async function initTest(test, token) { 18 var type = getMajorMimeType(test.type); 19 var v = document.createElement(type); 20 v.preload = "auto"; 21 v.token = token; 22 manager.started(token); 23 v.src = test.name; 24 v._name = test.name; 25 document.body.appendChild(v); 26 27 await once(v, "loadedmetadata"); 28 info(`${v._name}: seeking to the end of the media.`); 29 v.currentTime = 3.0 * v.duration; 30 // Wait for 'seeked' and 'ended' to be fired. 31 await Promise.all([once(v, "seeked"), once(v, "ended")]); 32 // Check currentTime is near the end of the media. 33 ok(Math.abs(v.duration - v.currentTime) < 0.1, 34 "Should be at end of media for " + v._name + " t=" + v.currentTime + " d=" + v.duration); 35 // Call play() to start playback from the beginning. 36 v.play(); 37 await once(v, "ended"); 38 ok(v.ended, "Checking ended set after seeking to EOF and playing for " + v._name); 39 removeNodeAndSource(v); 40 manager.finished(v.token); 41 } 42 43 manager.runTests(gSmallTests, initTest); 44 45 </script> 46 </pre> 47 </body> 48 </html>