| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| audiochannelmerger-basic.html |
| </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> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| let audit = Audit.createTaskRunner(); |
| |
| // Task: Checking constraints in ChannelMergerNode. |
| audit.define('exceptions-channels', (task, should) => { |
| let context = new OfflineAudioContext(2, 128, 44100); |
| let merger; |
| |
| should(function() { |
| merger = context.createChannelMerger(); |
| }, 'context.createChannelMerger()').notThrow(); |
| |
| should(function() { |
| merger = context.createChannelMerger(0); |
| }, 'context.createChannelMerger(0)').throw(DOMException, 'IndexSizeError'); |
| |
| should(function() { |
| merger = context.createChannelMerger(32); |
| }, 'context.createChannelMerger(32)').notThrow(); |
| |
| // Can't create a channel merger with 33 channels because the audio |
| // context has a 32-channel-limit in Chrome. |
| should(function() { |
| merger = context.createChannelMerger(33); |
| }, 'context.createChannelMerger(33)').throw(DOMException, 'IndexSizeError'); |
| |
| task.done(); |
| }); |
| |
| // Task: checking the channel-related properties have the correct value |
| // and can't be changed. |
| audit.define('exceptions-properties', (task, should) => { |
| let context = new OfflineAudioContext(2, 128, 44100); |
| let merger = context.createChannelMerger(); |
| |
| should(merger.channelCount, 'merger.channelCount').beEqualTo(1); |
| |
| should(function() { |
| merger.channelCount = 3; |
| }, 'merger.channelCount = 3').throw(DOMException, 'InvalidStateError'); |
| |
| should(merger.channelCountMode, 'merger.channelCountMode') |
| .beEqualTo('explicit'); |
| |
| should(function() { |
| merger.channelCountMode = 'max'; |
| }, 'merger.channelCountMode = "max"').throw(DOMException, 'InvalidStateError'); |
| |
| task.done(); |
| }); |
| |
| audit.run(); |
| </script> |
| </body> |
| </html> |