tor-browser

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

test_play_promise_8.html (1485B)


      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: playAndPauseWhenCanplay
     14 // Case: invlke play() and then pause() on an element that already has enough data to play
     15 // Expected result: resolve the promise
     16 // Note: the pause() doesn't cancel the play() because it was alredy been queued to be resolved.
     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  element.preload = "auto";
     25  element.src = test.name;
     26  once(element, "canplay").then(() => {
     27    element.play().then(
     28      (result) => {
     29        if (result == undefined) {
     30          ok(true, `${token} is resolved with ${result}.`);
     31        } else {
     32          ok(false, `${token} is resolved with ${result}.`);
     33        }
     34      },
     35      (error) => {
     36        ok(false, `${token} is rejected with ${error.name}.`);
     37      }
     38    ).then( () => { manager.finished(token); } );
     39    ok(!element.paused, `playAndPauseWhenCanplay(${token}) element should not be paused.`);
     40    element.pause();
     41    ok(element.paused, `playAndPauseWhenCanplay(${token}) element should be paused.`);
     42  });
     43 }
     44 
     45 manager.runTests(gSmallTests, initTest);
     46 
     47 </script>