content/media/test/seek1.js

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 function test_seek1(v, seekTime, is, ok, finish) {
     3 var startPassed = false;
     4 var endPassed = false;
     5 var seekFlagStart = false;
     6 var seekFlagEnd = false;
     7 var readonly = true;
     8 var completed = false;
    10 function startTest() {
    11   if (completed)
    12     return;
    13   ok(!v.seeking, "seeking should default to false");
    14   try {
    15     v.seeking = true;
    16     readonly = v.seeking === false;
    17   }
    18   catch(e) {
    19     readonly = "threw exception: " + e;
    20   }
    21   is(readonly, true, "seeking should be readonly");
    23   v.play();
    24   v.currentTime=seekTime;
    25   seekFlagStart = v.seeking;
    26 }
    28 function seekStarted() {
    29   if (completed)
    30     return;
    31   ok(v.currentTime >= seekTime - 0.1,
    32      "Video currentTime should be around " + seekTime + ": " + v.currentTime + " (seeking)");
    33   v.pause();
    34   startPassed = true;
    35 }
    37 function seekEnded() {
    38   if (completed)
    39     return;
    41   var t = v.currentTime;
    42   // Since we were playing, and we only paused asynchronously, we can't be
    43   // sure that we paused before the seek finished, so we may have played
    44   // ahead arbitrarily far.
    45   ok(t >= seekTime - 0.1, "Video currentTime should be around " + seekTime + ": " + t + " (seeked)");
    46   v.play();
    47   endPassed = true;
    48   seekFlagEnd = v.seeking;
    49 }
    51 function playbackEnded() {
    52   if (completed)
    53     return;
    55   completed = true;
    56   ok(startPassed, "seeking event");
    57   ok(endPassed, "seeked event");
    58   ok(seekFlagStart, "seeking flag on start should be true");
    59   ok(!seekFlagEnd, "seeking flag on end should be false");
    60   finish();
    61 }
    63 v.addEventListener("ended", playbackEnded, false);
    64 v.addEventListener("loadedmetadata", startTest, false);
    65 v.addEventListener("seeking", seekStarted, false);
    66 v.addEventListener("seeked", seekEnded, false);
    68 }

mercurial