tor-browser

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

mediasource-duration-boundaryconditions.html (3668B)


      1 <!DOCTYPE html>
      2 <!-- Copyright © 2016 Chromium authors and World Wide Web Consortium, (Massachusetts Institute of Technology, ERCIM, Keio University, Beihang). -->
      3 <html>
      4    <head>
      5        <title>MediaSource.duration boundary condition test cases.</title>
      6        <script src="/resources/testharness.js"></script>
      7        <script src="/resources/testharnessreport.js"></script>
      8        <script src="mediasource-util.js"></script>
      9    </head>
     10    <body>
     11        <div id="log"></div>
     12        <script>
     13          function DurationBoundaryConditionTest(testDurationValue, expectedError, description)
     14          {
     15              return mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
     16              {
     17                  // Append initialization segment.
     18                  test.expectEvent(sourceBuffer, "updateend", "sourceBuffer");
     19                  test.expectEvent(mediaElement, "loadedmetadata", "mediaElement");
     20                  sourceBuffer.appendBuffer(MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init));
     21                  test.waitForExpectedEvents(function()
     22                  {
     23                      if (expectedError) {
     24                          assert_throws_js(expectedError,
     25                              function() { mediaSource.duration = testDurationValue; },
     26                              "mediaSource.duration assignment throws an exception for " + testDurationValue);
     27                          test.done();
     28                          return;
     29                      }
     30 
     31                      mediaSource.duration = testDurationValue;
     32 
     33                      assert_equals(mediaSource.duration, testDurationValue, "mediaSource.duration");
     34                      assert_equals(mediaElement.duration, testDurationValue, "mediaElement.duration");
     35 
     36                      test.expectEvent(mediaElement, "durationchange", "mediaElement");
     37                      test.waitForExpectedEvents(function()
     38                      {
     39                          assert_equals(mediaSource.duration, testDurationValue, "mediaSource.duration");
     40                          assert_equals(mediaElement.duration, testDurationValue, "mediaElement.duration");
     41                          test.done();
     42                      });
     43                  });
     44 
     45              }, description);
     46          }
     47 
     48          DurationBoundaryConditionTest(Math.pow(2, 31) - 1, null, "Set duration to 2^31 - 1");
     49          DurationBoundaryConditionTest(1, null, "Set duration to 1");
     50          DurationBoundaryConditionTest(Number.MAX_VALUE, null, "Set duration to Number.MAX_VALUE");
     51          DurationBoundaryConditionTest(Number.MIN_VALUE, null, "Set duration to Number.MIN_VALUE");
     52          DurationBoundaryConditionTest(Number.MAX_VALUE - 1, null, "Set duration to Number.MAX_VALUE - 1");
     53          DurationBoundaryConditionTest(Number.MIN_VALUE - 1, TypeError, "Set duration to Number.MIN_VALUE - 1");
     54          DurationBoundaryConditionTest(Number.POSITIVE_INFINITY, null, "Set duration to Number.POSITIVE_INFINITY");
     55          DurationBoundaryConditionTest(Number.NEGATIVE_INFINITY, TypeError, "Set duration to Number.NEGATIVE_INFINITY");
     56          DurationBoundaryConditionTest(-1 * Number.MAX_VALUE, TypeError, "Set duration to lowest value.");
     57          DurationBoundaryConditionTest(-101.9, TypeError, "Set duration to a negative double.");
     58          DurationBoundaryConditionTest(101.9, null, "Set duration to a positive double.");
     59          DurationBoundaryConditionTest(0, null, "Set duration to zero");
     60          DurationBoundaryConditionTest(NaN, TypeError, "Set duration to NaN");
     61        </script>
     62    </body>
     63 </html>