content/media/test/test_fragment_play.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Media test: seek tests</title>
     5   <script type="text/javascript" src="/MochiKit/packed.js"></script>
     6   <script type="text/javascript" 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   <script type="text/javascript" src="fragment_play.js"></script>
    10 </head>
    11 <body>
    12 <pre id="test">
    13 <script class="testbody" type="text/javascript">
    15 var manager = new MediaTestManager;
    17 // Fragment parameters to try. These tests
    18 // try playing the video. Tests for other fragment
    19 // formats are in test_fragment_noplay.html.
    20 var gFragmentParams = [
    21   { fragment: "", start: null, end: null },
    22   { fragment: "#t=,", start: null, end: null },
    23   { fragment: "#t=3,3", start: null, end: null },
    24   { fragment: "#t=7,3", start: null, end: null },
    25   { fragment: "#t=7,15", start: 7, end: null },
    26   { fragment: "#t=15,20", start: 9.287981, end: null },
    27   { fragment: "#t=5", start: 5, end: null },
    28   { fragment: "#t=5.5", start: 5.5, end: null },
    29   { fragment: "#t=5,", start: null, end: null },
    30   { fragment: "#t=,5", start: 0, end: 5, todo: "See bugs 682141 and 720248" },
    31   { fragment: "#t=2.5,5.5", start: 2.5, end: 5.5, todo: "See bugs 682141 and 720248" },
    32   { fragment: "#t=1,2.5", start: 1, end: 2.5, todo: "See bugs 682141 and 720248" },
    33   { fragment: "#t=,15", start: 0, end: null }
    34 ];
    36 function createTestArray() {
    37   var tests = [];
    38   var tmpVid = document.createElement("video");
    40   for (var testNum=0; testNum<gFragmentTests.length; testNum++) {
    41     var test = gFragmentTests[testNum];
    42     if (!tmpVid.canPlayType(test.type)) {
    43       continue;
    44     }
    46     for (var fragNum=0; fragNum<gFragmentParams.length; fragNum++) {
    47       var p = gFragmentParams[fragNum];
    48       var t = new Object;
    49       t.name = test.name + p.fragment;
    50       t.type = test.type;
    51       t.duration = test.duration;
    52       t.start = p.start;
    53       t.end = p.end;
    54       t.todo = p.todo;
    55       tests.push(t);
    56     }
    57   }
    58   return tests;
    59 }
    61 function startTest(test, token) {
    62   if (test.todo) {
    63     todo(false, test.todo);
    64     return;
    65   }
    66   var v = document.createElement('video');
    67   manager.started(token);
    68   v.preload = "metadata";
    69   v.src = test.name;
    70   v.token = token;
    71   v.controls = true;
    72   document.body.appendChild(v);
    73   var name = test.name + " fragment test";
    74   var localIs = function(name) { return function(a, b, msg) {
    75     is(a, b, name + ": " + msg);
    76   }}(name);
    77   var localOk = function(name) { return function(a, msg) {
    78     ok(a, name + ": " + msg);
    79   }}(name);
    80   var localFinish = function(v, manager) { return function() {
    81     if (v.parentNode) {
    82       v.parentNode.removeChild(v);
    83     }
    84     manager.finished(v.token);
    85   }}(v, manager);
    86   window['test_fragment_play'](v, test.start, test.end, localIs, localOk, localFinish);
    87 }
    89 manager.runTests(createTestArray(), startTest);
    91 </script>
    92 </pre>
    93 </body>
    94 </html>

mercurial