test_playback_rate_playpause.html (1841B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test that the playbackRate property is not reset when resuming the playback</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='application/javascript'> 12 13 let manager = new MediaTestManager; 14 15 function ontimeupdate(e) { 16 var t = e.target; 17 if (t.currentTime != 0.0) { 18 info(t.token + " t.currentTime=" + t.currentTime +"\n"); 19 t.removeEventListener("timeupdate", ontimeupdate); 20 t.pause(); 21 is(t.playbackRate, 0.5, "PlaybackRate should not have changed after pause."); 22 } else { 23 info(t.token + " t.currentTime == 0.0.\n"); 24 } 25 } 26 27 function onpaused(e) { 28 var t = e.target; 29 dump(t.token + " onpaused.\n"); 30 t.play(); 31 is(t.playbackRate, 0.5, "PlaybackRate should not have changed after resuming playback."); 32 finish_test(t); 33 } 34 35 function finish_test(element) { 36 dump(element.token + " finish_test.\n"); 37 removeNodeAndSource(element); 38 manager.finished(element.token); 39 } 40 41 function startTest(test, token) { 42 let elemType = /^audio/.test(test.type) ? "audio" : "video"; 43 let element = document.createElement(elemType); 44 element.src = test.name; 45 element.token = token; 46 element.controls = true; 47 element.playbackRate = 0.5; 48 element.preload = "metadata"; 49 element.addEventListener("timeupdate", ontimeupdate); 50 element.addEventListener("pause", onpaused); 51 element.addEventListener("loadedmetadata", function() { 52 dump(element.token + " loadedmetadata\n"); 53 element.play(); 54 }); 55 document.body.appendChild(element); 56 manager.started(token); 57 } 58 59 manager.runTests(gPlayedTests, startTest); 60 61 </script> 62 </pre> 63 <div id="elements"> 64 </div> 65 </body> 66 </html>