| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| Test Constructor: ChannelSplitter |
| </title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/webaudio/resources/audit-util.js"></script> |
| <script src="/webaudio/resources/audit.js"></script> |
| <script src="/webaudio/resources/audionodeoptions.js"></script> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| let context; |
| |
| let audit = Audit.createTaskRunner(); |
| |
| audit.define('initialize', (task, should) => { |
| context = initializeContext(should); |
| task.done(); |
| }); |
| |
| audit.define('invalid constructor', (task, should) => { |
| testInvalidConstructor(should, 'ChannelSplitterNode', context); |
| task.done(); |
| }); |
| |
| audit.define('default constructor', (task, should) => { |
| testDefaultConstructor(should, 'ChannelSplitterNode', context, { |
| prefix: 'node0', |
| numberOfInputs: 1, |
| numberOfOutputs: 6, |
| channelCount: 6, |
| channelCountMode: 'explicit', |
| channelInterpretation: 'discrete' |
| }); |
| |
| task.done(); |
| }); |
| |
| audit.define('test AudioNodeOptions', (task, should) => { |
| testAudioNodeOptions(should, context, 'ChannelSplitterNode', { |
| channelCount: { |
| value: 6, |
| isFixed: true, |
| exceptionType: 'InvalidStateError' |
| }, |
| channelCountMode: { |
| value: 'explicit', |
| isFixed: true, |
| exceptionType: 'InvalidStateError' |
| }, |
| channelInterpretation: { |
| value: 'discrete', |
| isFixed: true, |
| exceptionType: 'InvalidStateError' |
| }, |
| }); |
| task.done(); |
| }); |
| |
| audit.define('constructor options', (task, should) => { |
| let node; |
| let options = { |
| numberOfInputs: 3, |
| numberOfOutputs: 9, |
| channelInterpretation: 'discrete' |
| }; |
| |
| should( |
| () => { |
| node = new ChannelSplitterNode(context, options); |
| }, |
| 'node1 = new ChannelSplitterNode(context, ' + |
| JSON.stringify(options) + ')') |
| .notThrow(); |
| |
| should(node.numberOfInputs, 'node1.numberOfInputs').beEqualTo(1); |
| should(node.numberOfOutputs, 'node1.numberOfOutputs') |
| .beEqualTo(options.numberOfOutputs); |
| should(node.channelInterpretation, 'node1.channelInterpretation') |
| .beEqualTo(options.channelInterpretation); |
| |
| options = {numberOfOutputs: 99}; |
| should( |
| () => { |
| node = new ChannelSplitterNode(context, options); |
| }, |
| 'new ChannelSplitterNode(c, ' + JSON.stringify(options) + ')') |
| .throw(DOMException, 'IndexSizeError'); |
| |
| options = {channelCount: 3}; |
| should( |
| () => { |
| node = new ChannelSplitterNode(context, options); |
| }, |
| 'new ChannelSplitterNode(c, ' + JSON.stringify(options) + ')') |
| .throw(DOMException, 'InvalidStateError'); |
| |
| options = {channelCountMode: 'max'}; |
| should( |
| () => { |
| node = new ChannelSplitterNode(context, options); |
| }, |
| 'new ChannelSplitterNode(c, ' + JSON.stringify(options) + ')') |
| .throw(DOMException, 'InvalidStateError'); |
| |
| task.done(); |
| }); |
| |
| audit.run(); |
| </script> |
| </body> |
| </html> |