tor-browser

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

test-pannernode-automation.html (1242B)


      1 <!doctype html>
      2 <meta charset=utf-8>
      3 <title></title>
      4 <script src=/resources/testharness.js></script>
      5 <script src=/resources/testharnessreport.js></script>
      6 <script>
      7 
      8 // This value is purposefuly not aligned on a 128-block boundary so that we test
      9 // that the PannerNode position audioparam is a-rate.
     10 const POSITION_CHANGE_FRAME = 1111;
     11 
     12 promise_test(function(t) {
     13  var ac = new OfflineAudioContext(2, 2048, 44100);
     14  var panner = ac.createPanner();
     15  panner.positionX.value = -1;
     16  panner.positionY.value = -1;
     17  panner.positionZ.value = 1;
     18  panner.positionX.setValueAtTime(1, POSITION_CHANGE_FRAME/ac.sampleRate);
     19  var osc = ac.createOscillator();
     20  osc.connect(panner);
     21  panner.connect(ac.destination);
     22  osc.start()
     23  return ac.startRendering().then(function(buffer) {
     24    var left = buffer.getChannelData(0);
     25    var right = buffer.getChannelData(1);
     26    for (var i = 0; i < 2048; ++i) {
     27      if (i < POSITION_CHANGE_FRAME) {
     28        assert_true(Math.abs(left[i]) >= Math.abs(right[i]), "index " + i + " should be on the left");
     29      } else {
     30        assert_true(Math.abs(left[i]) < Math.abs(right[i]), "index " + i + " should be on the right");
     31      }
     32    }
     33  });
     34 }, "PannerNode AudioParam automation works properly");
     35 
     36 </script>