tor-browser

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

event_volumechange.html (2428B)


      1 <!doctype html>
      2 <title>volumechange event</title>
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <div id="log"></div>
      6 <script>
      7 function volumechange_test(tagName) {
      8  async_test(function(t) {
      9    var e = document.createElement(tagName);
     10    assert_equals(e.volume, 1);
     11    e.volume = 0.5;
     12    assert_equals(e.volume, 0.5);
     13    e.onvolumechange = t.step_func(function() {
     14      assert_equals(e.volume, 0.5);
     15      e.volume = 1;
     16      assert_equals(e.volume, 1);
     17      e.onvolumechange = t.step_func(function() {
     18        assert_equals(e.volume, 1);
     19        t.done();
     20      });
     21    });
     22  }, "setting " + tagName + ".volume fires volumechange");
     23 
     24  async_test(function(t) {
     25    var e = document.createElement(tagName);
     26    assert_false(e.muted);
     27    e.muted = true;
     28    assert_true(e.muted);
     29    e.onvolumechange = t.step_func(function() {
     30      assert_true(e.muted);
     31      e.muted = false;
     32      assert_false(e.muted);
     33      e.onvolumechange = t.step_func(function() {
     34        assert_false(e.muted);
     35        t.done();
     36      });
     37    });
     38  }, "setting " + tagName + ".muted fires volumechange");
     39 
     40  async_test(function(t) {
     41    var e = document.createElement(tagName);
     42    e.volume = e.volume;
     43    e.muted = e.muted;
     44    e.onvolumechange = t.step_func(function() {
     45      assert_unreached();
     46    });
     47    var e2 = document.createElement(tagName);
     48    e2.muted = !e2.muted;
     49    e2.onvolumechange = t.step_func(function() {
     50      t.done();
     51    });
     52  }, "setting " + tagName + ".volume/muted to the same value does not fire volumechange");
     53 
     54  async_test(function(t) {
     55    var e = document.createElement(tagName);
     56    e.muted = !e.muted;
     57    e.volume = 1 - e.volume;
     58    e.muted = !e.muted;
     59    e.volume = 1 - e.volume;
     60    var volumechange_count = 0;
     61    e.onvolumechange = t.step_func(function() {
     62      volumechange_count++;
     63      if (volumechange_count == 4) {
     64        t.done();
     65      }
     66    });
     67  }, "setting " + tagName + ".volume/muted repeatedly fires volumechange repeatedly");
     68 
     69  async_test(function(t) {
     70    var e = document.createElement(tagName);
     71    e.muted = !e.muted;
     72    e.volume = 1 - e.volume;
     73    e.load();
     74    e.onvolumechange = t.unreached_func();
     75    t.step_timeout(() => {
     76      t.done();
     77    }, 1000);
     78  }, "setting " + tagName + ".volume/muted before load will not fire volumechange");
     79 }
     80 
     81 volumechange_test("audio");
     82 volumechange_test("video");
     83 </script>