tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_metadata.html (2373B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <meta charset="utf-8">
      5  <title>Test returning metadata from media files with mozGetMetadata()</title>
      6  <script src="/tests/SimpleTest/SimpleTest.js"></script>
      7  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      8  <script type="text/javascript" src="manifest.js"></script>
      9 </head>
     10 <body>
     11 <pre id="test">
     12 <div id="output"></div>
     13 <script class="testbody" type="text/javascript">
     14 
     15 var manager = new MediaTestManager;
     16 
     17 function startTest(test, token) {
     18  var a = document.createElement('audio');
     19  a.preload = "metadata";
     20  a.token = token;
     21  manager.started(token);
     22 
     23  a.src = test.name;
     24  a.name = test.name;
     25 
     26  // Tags should not be available immediately.
     27  var exception_fired = false;
     28  try {
     29    a.mozGetMetadata();
     30  } catch (e) {
     31    is(e.name, 'InvalidStateError',
     32       "early mozGetMetadata() should throw InvalidStateError");
     33    exception_fired = true;
     34  }
     35  ok(exception_fired,
     36     "mozGetMetadata() should throw an exception before HAVE_METADATA");
     37 
     38  // Wait until metadata has loaded.
     39  a.addEventListener('loadedmetadata', function() {
     40    // read decoded tags
     41    let tags = a.mozGetMetadata();
     42    ok(tags, "mozGetMetadata() should return a truthy value");
     43    // Dump them out.
     44    var d = document.getElementById('output');
     45    var html = '<table>\n';
     46    html += '<caption><p>Called getMozMetadata()'
     47    html += ' on '+test.name+'</p></caption>\n';
     48    html += '<tr><th>tag</th>';
     49    html += '<th>decoded value</th><th>expected value</th></tr>\n';
     50    for (let tag in tags) {
     51      html += '<tr><td>'+tag+'</td>';
     52      html += '<td>'+tags[tag]+'</td>';
     53      html += '<td>'+test.tags[tag]+'</td>';
     54      html += '</tr>\n';
     55    }
     56    if (!Object.keys(tags).length) {
     57      html += '<tr><td colspan=3 align=center><em>no tags</em></td></tr>\n';
     58    }
     59    html += '</table>\n';
     60    var div = document.createElement('div');
     61    div.innerHTML = html;
     62    d.appendChild(div);
     63    // Verify decoded tag values.
     64    for (let tag in tags) {
     65      is(tags[tag], test.tags[tag], "Tag '"+tag+"' should match");
     66    }
     67    // Verify expected tag values
     68    for (let tag in test.tags) {
     69      is(tags[tag], test.tags[tag], "Tag '"+tag+"' should match");
     70    }
     71    removeNodeAndSource(a);
     72    manager.finished(token);
     73  });
     74 }
     75 
     76 manager.runTests(gMetadataTests, startTest);
     77 
     78 </script>
     79 </pre>
     80 </body>
     81 </html>