content/media/test/test_play_events.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 <head>
     4   <title>Media test: play() method</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">
    12 <script>
    14 var manager = new MediaTestManager;
    16 var tokens = {
    17   0:                ["play"],
    18   "play":           ["canplay"],
    19   "canplay":        ["playing"],
    20   "playing":        ["canplay", "canplaythrough"],
    21   "canplaythrough": ["canplay", "canplaythrough"]
    22 };
    24 function gotPlayEvent(event) {
    25   var v = event.target;
    26   ok(tokens[v._state].indexOf(event.type) >= 0,
    27      "Check expected event got " + event.type + " at " + v._state + " for " + v.src +
    28      " uneval(event.type)=" + uneval(event.type) + " typeof(event.type)=" + typeof(event.type) +
    29      " uneval(v._state)=" + uneval(v._state) + " typeof(v._state)=" + typeof(v._state) + 
    30      " tokens["+v._state+"]=" + tokens[v._state] +
    31      " tokens["+v._state+"].indexOf(event.type)=" + tokens[v._state].indexOf(event.type));
    32   v._state = event.type;
    33 }
    35 function ended(event) {
    36   var v = event.target;
    37   removeNodeAndSource(v);
    38   manager.finished(v.token);
    39 }
    41 function initTest(test, token) {
    42   var v = document.createElement('video');
    43   v.token = token;
    44   manager.started(token);
    45   v._state = 0;
    47   ["play", "canplay", "playing", "canplaythrough"].forEach(function (e) {
    48     v.addEventListener(e, gotPlayEvent, false);
    49   });
    51   v.addEventListener("ended", ended, false);
    53   v.src = test.name;
    54   document.body.appendChild(v); // Causes load.
    55   v.play();
    56 }
    58 manager.runTests(gSmallTests, initTest);
    60 </script>
    61 </pre>
    62 </body>
    63 </html>

mercurial