content/media/test/test_streams_srcObject.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 interactions of src and srcObject</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 onload="doTest()">
    10 <audio id="a"></audio>
    11 <pre id="test">
    12 <script class="testbody" type="text/javascript">
    13 SimpleTest.waitForExplicitFinish();
    15 var a = document.getElementById('a');
    16 a.src = getPlayableAudio(gSmallTests).name;
    18 var b = new Audio();
    20 function doTest() {
    21   var newSrc = a.src + "?2";
    22   b.src = newSrc;
    23   is(b.mozSrcObject, null, "Initial srcObject is null");
    24   var stream = a.mozCaptureStream();
    25   b.mozSrcObject = stream;
    26   is(b.mozSrcObject, stream, "Stream set correctly");
    27   try {
    28     b.mozSrcObject = "invalid";
    29     ok(false, "Setting mozSrcObject to an invalid value should throw.");
    30   } catch (e) {
    31     ok(e instanceof TypeError, "Exception should be a TypeError");
    32   }
    33   is(b.mozSrcObject, stream, "Stream not set to invalid value");
    34   is(b.src, newSrc, "src attribute not affected by setting srcObject");
    35   var step = 0;
    36   b.addEventListener("loadedmetadata", function() {
    37     if (step == 0) {
    38       is(b.currentSrc, "", "currentSrc set to empty string while playing srcObject");
    39       b.mozSrcObject = null;
    40       is(b.mozSrcObject, null, "Stream set to null");
    41       // The resource selection algorithm will run again and choose b.src
    42     } else if (step == 1) {
    43       is(b.currentSrc, b.src, "currentSrc set to src now that srcObject is null");
    44       SimpleTest.finish();
    45     }
    46     ++step;
    47   });
    48 }
    49 </script>
    50 </pre>
    51 </body>
    52 </html>

mercurial