tor-browser

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

ctor-audiobuffersource.html (3783B)


      1 <!DOCTYPE html>
      2 <html>
      3  <head>
      4    <title>
      5      Test Constructor: AudioBufferSource
      6    </title>
      7    <script src="/resources/testharness.js"></script>
      8    <script src="/resources/testharnessreport.js"></script>
      9    <script src="/webaudio/resources/audit-util.js"></script>
     10    <script src="/webaudio/resources/audit.js"></script>
     11    <script src="/webaudio/resources/audionodeoptions.js"></script>
     12  </head>
     13  <body>
     14    <script id="layout-test-code">
     15      let context;
     16 
     17      let audit = Audit.createTaskRunner();
     18 
     19      audit.define('initialize', (task, should) => {
     20        context = initializeContext(should);
     21        task.done();
     22      });
     23 
     24      audit.define('invalid constructor', (task, should) => {
     25        testInvalidConstructor(should, 'AudioBufferSourceNode', context);
     26        task.done();
     27      });
     28 
     29      audit.define('default constructor', (task, should) => {
     30        let prefix = 'node0';
     31        let node =
     32            testDefaultConstructor(should, 'AudioBufferSourceNode', context, {
     33              prefix: prefix,
     34              numberOfInputs: 0,
     35              numberOfOutputs: 1,
     36              channelCount: 2,
     37              channelCountMode: 'max',
     38              channelInterpretation: 'speakers'
     39            });
     40 
     41        testDefaultAttributes(should, node, prefix, [
     42          {name: 'buffer', value: null},
     43          {name: 'detune', value: 0},
     44          {name: 'loop', value: false},
     45          {name: 'loopEnd', value: 0.0},
     46          {name: 'loopStart', value: 0.0},
     47          {name: 'playbackRate', value: 1.0},
     48        ]);
     49 
     50        task.done();
     51      });
     52 
     53      audit.define('nullable buffer', (task, should) => {
     54        let node;
     55        let options = {buffer: null};
     56 
     57        should(
     58            () => {
     59              node = new AudioBufferSourceNode(context, options);
     60            },
     61            'node1 = new AudioBufferSourceNode(c, ' + JSON.stringify(options))
     62            .notThrow();
     63 
     64        should(node.buffer, 'node1.buffer').beEqualTo(null);
     65 
     66        task.done();
     67      });
     68 
     69      audit.define('constructor options', (task, should) => {
     70        let node;
     71        let buffer = context.createBuffer(2, 1000, context.sampleRate);
     72 
     73        let options = {
     74          buffer: buffer,
     75          detune: .5,
     76          loop: true,
     77          loopEnd: (buffer.length / 2) / context.sampleRate,
     78          loopStart: 5 / context.sampleRate,
     79          playbackRate: .75
     80        };
     81 
     82        let message = 'node = new AudioBufferSourceNode(c, ' +
     83            JSON.stringify(options) + ')';
     84 
     85        should(() => {
     86          node = new AudioBufferSourceNode(context, options);
     87        }, message).notThrow();
     88 
     89        // Use the factory method to create an equivalent node and compare the
     90        // results from the constructor against this node.
     91        let factoryNode = context.createBufferSource();
     92        factoryNode.buffer = options.buffer;
     93        factoryNode.detune.value = options.detune;
     94        factoryNode.loop = options.loop;
     95        factoryNode.loopEnd = options.loopEnd;
     96        factoryNode.loopStart = options.loopStart;
     97        factoryNode.playbackRate.value = options.playbackRate;
     98 
     99        should(node.buffer === buffer, 'node2.buffer === buffer')
    100            .beEqualTo(true);
    101        should(node.detune.value, 'node2.detune.value')
    102            .beEqualTo(factoryNode.detune.value);
    103        should(node.loop, 'node2.loop').beEqualTo(factoryNode.loop);
    104        should(node.loopEnd, 'node2.loopEnd').beEqualTo(factoryNode.loopEnd);
    105        should(node.loopStart, 'node2.loopStart')
    106            .beEqualTo(factoryNode.loopStart);
    107        should(node.playbackRate.value, 'node2.playbackRate.value')
    108            .beEqualTo(factoryNode.playbackRate.value);
    109 
    110        task.done();
    111      });
    112 
    113      audit.run();
    114    </script>
    115  </body>
    116 </html>