content/media/test/test_playback_rate_playpause.html

Fri, 16 Jan 2015 04:50:19 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 04:50:19 +0100
branch
TOR_BUG_9701
changeset 13
44a2da4a2ab2
permissions
-rw-r--r--

Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32

michael@0 1 <!DOCTYPE HTML>
michael@0 2 <html>
michael@0 3 <head>
michael@0 4 <title>Test that the playbackRate property is not reset when resuming the playback</title>
michael@0 5 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
michael@0 6 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
michael@0 7 <script type="text/javascript" src="manifest.js"></script>
michael@0 8 </head>
michael@0 9 <body>
michael@0 10 <pre id="test">
michael@0 11 <script class="testbody" type='application/javascript;version=1.8'>
michael@0 12
michael@0 13 if (navigator.platform.startsWith("Win")) {
michael@0 14 SimpleTest.expectAssertions(0, 1);
michael@0 15 } else if (navigator.platform.startsWith("Mac")) {
michael@0 16 SimpleTest.expectAssertions(0, 2);
michael@0 17 } else if (navigator.platform.startsWith("Linux")) {
michael@0 18 // Bug 897024
michael@0 19 SimpleTest.expectAssertions(0, 2);
michael@0 20 }
michael@0 21
michael@0 22 let manager = new MediaTestManager;
michael@0 23
michael@0 24 function ontimeupdate(e) {
michael@0 25 var t = e.target;
michael@0 26 if (t.currentTime != 0.0) {
michael@0 27 dump(t.token + " t.currentTime != 0.0.\n");
michael@0 28 t.removeEventListener("timeupdate", ontimeupdate);
michael@0 29 t.pause();
michael@0 30 is(t.playbackRate, 0.5, "PlaybackRate should not have changed after pause.");
michael@0 31 } else {
michael@0 32 dump(t.token + " t.currentTime == 0.0.\n");
michael@0 33 }
michael@0 34 }
michael@0 35
michael@0 36 function onpaused(e) {
michael@0 37 var t = e.target;
michael@0 38 dump(t.token + " onpaused.\n");
michael@0 39 t.play();
michael@0 40 is(t.playbackRate, 0.5, "PlaybackRate should not have changed after resuming playback.");
michael@0 41 finish_test(t);
michael@0 42 }
michael@0 43
michael@0 44 function finish_test(element) {
michael@0 45 dump(element.token + " finish_test.\n");
michael@0 46 if (element.parentNode)
michael@0 47 element.parentNode.removeChild(element);
michael@0 48 element.src="";
michael@0 49 manager.finished(element.token);
michael@0 50 }
michael@0 51
michael@0 52 function startTest(test, token) {
michael@0 53 let elemType = /^audio/.test(test.type) ? "audio" : "video";
michael@0 54 let element = document.createElement(elemType);
michael@0 55 element.src = test.name;
michael@0 56 element.token = token;
michael@0 57 element.controls = true;
michael@0 58 element.playbackRate = 0.5;
michael@0 59 element.addEventListener("timeupdate", ontimeupdate);
michael@0 60 element.addEventListener("pause", onpaused);
michael@0 61 element.addEventListener("loadedmetadata", function() {
michael@0 62 dump(element.token + " loadedmetadata\n");
michael@0 63 element.play();
michael@0 64 });
michael@0 65 document.body.appendChild(element);
michael@0 66 manager.started(token);
michael@0 67 }
michael@0 68
michael@0 69 manager.runTests(gPlayedTests, startTest);
michael@0 70
michael@0 71 </script>
michael@0 72 </pre>
michael@0 73 <div id="elements">
michael@0 74 </div>
michael@0 75 </body>
michael@0 76 </html>

mercurial