blob: a7603055823ef2e2308ad78d29e7b0cd464e196c [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>
Test Constructor: ChannelSplitter
</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../resources/audit-util.js"></script>
<script src="../resources/audit.js"></script>
<script src="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: 'speakers'
});
task.done();
});
audit.define('test AudioNodeOptions', (task, should) => {
testAudioNodeOptions(should, context, 'ChannelSplitterNode', {
channelCount:
{value: 6, isFixed: true, errorType: 'InvalidStateError'},
channelCountMode: {
value: 'explicit',
isFixed: true,
}
});
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('IndexSizeError');
options = {channelCount: 3};
should(
() => {
node = new ChannelSplitterNode(context, options);
},
'new ChannelSplitterNode(c, ' + JSON.stringify(options) + ')')
.throw('InvalidStateError');
options = {channelCountMode: 'max'};
should(
() => {
node = new ChannelSplitterNode(context, options);
},
'new ChannelSplitterNode(c, ' + JSON.stringify(options) + ')')
.throw('InvalidStateError');
task.done();
});
audit.run();
</script>
</body>
</html>