content/media/test/test_playback_rate_playpause.html

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

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

mercurial