tor-browser

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

ctor-channelsplitter.html (3398B)


      1 <!DOCTYPE html>
      2 <html>
      3  <head>
      4    <title>
      5      Test Constructor: ChannelSplitter
      6    </title>
      7    <script src="/resources/testharness.js"></script>
      8    <script src="/resources/testharnessreport.js"></script>
      9    <script src="/webaudio/resources/audionodeoptions.js"></script>
     10  </head>
     11  <body>
     12    <script>
     13 
     14      test(() => {
     15        context = new OfflineAudioContext(1, 1, 48000);
     16      }, 'initialize');
     17 
     18      test(() => {
     19        testInvalidConstructor_W3CTH('ChannelSplitterNode');
     20      }, 'invalid constructor');
     21 
     22      test(() => {
     23        testDefaultConstructor_W3CTH('ChannelSplitterNode', context, {
     24          prefix: 'node0',
     25          numberOfInputs: 1,
     26          numberOfOutputs: 6,
     27          channelCount: 6,
     28          channelCountMode: 'explicit',
     29          channelInterpretation: 'discrete',
     30        });
     31      }, 'default constructor');
     32 
     33      test(() => {
     34        const node = new ChannelSplitterNode(context);
     35        node.channelCount = 6;
     36        assert_equals(node.channelCount, 6, 'channelCount stays 6');
     37 
     38        node.channelCountMode = 'explicit';
     39        assert_equals(node.channelCountMode, 'explicit',
     40            'channelCountMode stays explicit');
     41 
     42        node.channelInterpretation = 'discrete';
     43        assert_equals(node.channelInterpretation, 'discrete',
     44            'channelInterpretation stays discrete');
     45 
     46        assert_throws_dom(
     47            'InvalidStateError', () => {
     48              node.channelCount = 7;
     49            },
     50            'channelCount immutable');
     51 
     52        assert_throws_dom(
     53            'InvalidStateError', () => {
     54              node.channelCountMode = 'max';
     55            },
     56            'channelCountMode immutable');
     57 
     58        assert_throws_dom(
     59            'InvalidStateError', () => {
     60              node.channelInterpretation = 'speakers';
     61            },
     62            'channelInterpretation immutable');
     63      }, 'AudioNodeOptions immutability');
     64 
     65      test(() => {
     66        const options = {
     67          numberOfInputs: 3,
     68          numberOfOutputs: 9,
     69          channelInterpretation: 'discrete',
     70        };
     71        const node = new ChannelSplitterNode(context, options);
     72        assert_equals(
     73            node.numberOfInputs,
     74            1,
     75            `success ${JSON.stringify(options)} – numberOfInputs`);
     76        assert_equals(
     77            node.numberOfOutputs,
     78            options.numberOfOutputs,
     79            ` success ${JSON.stringify(options)} – numberOfOutputs`);
     80        assert_equals(
     81            node.channelInterpretation,
     82            'discrete',
     83            `success ${JSON.stringify(options)} – channelInterpretation`);
     84 
     85        const badOutputs = {numberOfOutputs: 99};
     86        assert_throws_dom(
     87            'IndexSizeError',
     88            () => new ChannelSplitterNode(context, badOutputs),
     89            `error ${JSON.stringify(badOutputs)} – IndexSizeError`);
     90 
     91        const badCount = {channelCount: 3};
     92        assert_throws_dom(
     93            'InvalidStateError',
     94            () => new ChannelSplitterNode(context, badCount),
     95            `error ${JSON.stringify(badCount)} – InvalidStateError`);
     96 
     97        const badMode = {channelCountMode: 'max'};
     98        assert_throws_dom(
     99            'InvalidStateError',
    100            () => new ChannelSplitterNode(context, badMode),
    101            `error ${JSON.stringify(badMode)} – InvalidStateError`);
    102      }, 'constructor options');
    103    </script>
    104  </body>
    105 </html>