test_seek_negative.html (2309B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Media test: seeking to a negative time with readyState HAVE_NOTHING</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 function startTest(test, token) { 16 var type = getMajorMimeType(test.type); 17 var v = document.createElement(type); 18 v.token = token; 19 manager.started(token); 20 21 // Seek to negative start time. 22 v.currentTime = -123; 23 is(v.readyState, v.HAVE_NOTHING, "readyState is HAVE_NOTHING"); 24 ok(!v.seeking, "can't be seeking prior src defined"); 25 is(v.currentTime, -123, "currentTime is original seek time"); 26 27 v.src = test.name; 28 29 // Initialize running variables. 30 v._name = test.name; 31 v._seekStarted = false; 32 v._seekCompleted = false; 33 v._metadata = false; 34 35 var events = [ "suspend", "play", "canplay", "canplaythrough", "loadstart", 36 "loadedmetadata", "loadeddata", "playing", "ended", "error", 37 "stalled", "emptied", "abort", "waiting", "pause" ]; 38 function logEvent(e) { 39 var video = e.target; 40 Log(e.target.token, "got " + e.type + " with currentTime = " + video.currentTime); 41 } 42 events.forEach(function(e) { 43 v.addEventListener(e, logEvent); 44 }); 45 46 once(v, "seeking", function() { 47 v._seekStarted = true; 48 ok(v.currentTime >= 0, "currentTime should be positive"); 49 }); 50 once(v, "seeked", function() { 51 v._seekCompleted = true; 52 ok(v.currentTime >= 0, "currentTime should be positive"); 53 }); 54 once(v, "loadedmetadata", function() { 55 v._metadata = true; 56 ok(v.seeking, "element is seeking once readyState is HAVE_METADATA"); 57 ok(v.currentTime >= 0, "currentTime should be positive"); 58 }); 59 once(v, "ended", function() { 60 ok(v._seekStarted, "seek should have started"); 61 ok(v._seekCompleted, "seek should have completed"); 62 ok(v._metadata, "loadedmetadata fired"); 63 ok(v.currentTime >= 0, "currentTime should be positive"); 64 removeNodeAndSource(v); 65 manager.finished(v.token); 66 }); 67 68 v.play(); 69 } 70 71 72 manager.runTests(gSmallTests, startTest); 73 74 </script> 75 </pre> 76 </body> 77 </html>