tor-browser

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

audiobuffer.html (2085B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4  <title>AudioBuffer API Test</title>
      5  <script src="/resources/testharness.js"></script>
      6  <script src="/resources/testharnessreport.js"></script>
      7 </head>
      8 <body>
      9  <script>
     10    const sampleRate = 44100.0;
     11    const lengthInSeconds = 2;
     12    const numberOfChannels = 4;
     13 
     14    test(() => {
     15      const buffer = new AudioBuffer({
     16        numberOfChannels,
     17        length: sampleRate * lengthInSeconds,
     18        sampleRate
     19      });
     20 
     21      assert_true(
     22          true,
     23          `buffer = new AudioBuffer({numberOfChannels: ${numberOfChannels}, ` +
     24              `length: ${sampleRate * lengthInSeconds}, ` +
     25                  `sampleRate: ${sampleRate}})`);
     26 
     27      assert_equals(buffer.sampleRate, sampleRate, 'buffer.sampleRate');
     28      assert_equals(
     29          buffer.length, sampleRate * lengthInSeconds, 'buffer.length');
     30      assert_equals(buffer.duration, lengthInSeconds, 'buffer.duration');
     31      assert_equals(
     32          buffer.numberOfChannels, numberOfChannels, 'buffer.numberOfChannels');
     33 
     34      for (let i = 0; i < buffer.numberOfChannels; ++i) {
     35        assert_true(
     36            buffer.getChannelData(i) instanceof Float32Array,
     37            `buffer.getChannelData(${i}) instanceof Float32Array`);
     38      }
     39 
     40      assert_throws_dom(
     41          'IndexSizeError',
     42          () => buffer.getChannelData(buffer.numberOfChannels),
     43          `buffer.getChannelData(${buffer.numberOfChannels}) throws`);
     44 
     45      // Non-standard values (1000 & 24576) to test edge-case duration behavior.
     46      const testSampleRate = 24576;
     47      const testLength = 1000;
     48 
     49      const buffer2 = new AudioBuffer({
     50        numberOfChannels: 1,
     51        length: testLength,
     52        sampleRate: testSampleRate
     53      });
     54 
     55      const expectedDuration = testLength / testSampleRate;
     56 
     57      assert_equals(
     58          buffer2.duration,
     59          expectedDuration,
     60          'new AudioBuffer({numberOfChannels: 1,\n' +
     61              `length: ${testLength},sampleRate: ${testSampleRate}}).duration`);
     62    }, 'AudioBuffer: creation and property validation');
     63  </script>
     64 </body>
     65 </html>