content/media/test/test_referer.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

     1 <!DOCTYPE HTML>
     2 <html>
     3 <!--
     4 https://bugzilla.mozilla.org/show_bug.cgi?id=584480
     5 -->
     6 <head>
     7   <title>Test for Bug 584480</title>
     8   <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     9   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    10   <script type="text/javascript" src="manifest.js"></script> 
    11 </head>
    12 <body>
    13 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=584480">Mozilla Bug </a>
    14 <p id="display"></p>
    15 <div id="content" style="display: none">
    17 </div>
    18 <pre id="test">
    19 <script type="application/javascript">
    20 var media = [];
    22 function checkComplete() {
    23   for (var i=0; i<media.length; ++i) {
    24     if (!media[i]._complete) {
    25       return;
    26     }
    27   }
    29   SimpleTest.finish();
    30 }
    32 function removeNode(v) {
    33   v.removeEventListener("error", loadError, false);
    34   v.removeEventListener("loadedmetadata", loadedMetadata, false);
    35   v.remove();
    36   v.src = "";
    37 }
    39 function loadError(evt) {
    40   // If no referer is sent then the sjs returns an error
    41   ok(false, "check referer is sent with media request");
    42   evt.target._complete = true;
    43   checkComplete();
    44   removeNode(evt.target);
    45 }
    47 function loadedMetadata(evt) {
    48   // If a referer is sent then the sjs returns a valid media
    49   ok(true, "check referer is sent with media request");
    50   evt.target._complete = true;
    51   checkComplete();
    52   removeNode(evt.target);
    53 }
    55 // Create all media objects.
    56 for (var i=0; i<gSmallTests.length; ++i) {
    57   var test = gSmallTests[i];
    58   var type;
    59   if (/^video/.test(test.type)) {
    60     type = "video"
    61   } else {
    62     type = "audio";
    63   }
    64   var v = document.createElement(type);
    65   if (!v.canPlayType(test.type)) {
    66     continue;
    67   }
    68   // ensure metadata is loaded for default preload is none on b2g 
    69   v.preload = "metadata";
    70   v._complete = false;
    71   v.addEventListener("error", loadError, false);
    72   v.addEventListener("loadedmetadata", loadedMetadata, false);
    73   v.src = 'referer.sjs?name=' + test.name + '&type=' + test.type;
    74   document.body.appendChild(v); // Will start load.
    75   media.push(v);
    76 }
    78 if (media.length == 0) {
    79   todo(false, "No types supported");
    80 } else {
    81   SimpleTest.waitForExplicitFinish();
    82 }
    83 </script>
    84 </pre>
    86 </body>
    87 </html>

mercurial