tor-browser

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

test_play_promise_9.html (1443B)


      1 <!DOCTYPE HTML>
      2 <html>
      3 <head>
      4  <title>Media test: promise-based play() method</title>
      5  <script 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">
     11 
     12 <script>
     13 // Name: playAndPauseBeforeCanPlay
     14 // Case: invlke play() and then pause() on an element that deoen't have enough data to play.
     15 // Expected result: reject the promise with AbortError DOM exception.
     16 // Note: the pause() cancels the play() because the promise is still pending.
     17 
     18 let manager = new MediaTestManager;
     19 
     20 function initTest(test, token) {
     21  manager.started(token);
     22 
     23  let element = document.createElement(getMajorMimeType(test.type));
     24  ok(element.readyState == HTMLMediaElement.HAVE_NOTHING);
     25  element.play().then(
     26    (result) => {
     27      ok(false, `${token} is resolved with ${result}.`);
     28    },
     29    (error) => {
     30      if (error.name == "AbortError") {
     31        ok(true, `${token} is rejected with ${error.name}.`);
     32      } else {
     33        ok(false, `${token} is rejected with ${error.name}.`);
     34      }
     35    }
     36  ).then( () => { manager.finished(token); } );
     37  ok(!element.paused, `playAndPauseBeforeCanPlay(${token}) element should not be paused.`);
     38  element.pause();
     39  ok(element.paused, `playAndPauseBeforeCanPlay(${token}) element should be paused.`);
     40 }
     41 
     42 manager.runTests(gSmallTests, initTest);
     43 
     44 </script>