summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html')
-rw-r--r--testing/web-platform/tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html66
1 files changed, 66 insertions, 0 deletions
diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html b/testing/web-platform/tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html
new file mode 100644
index 0000000000..35cfca8e4e
--- /dev/null
+++ b/testing/web-platform/tests/webaudio/the-audio-api/the-audionode-interface/channel-mode-interp-basic.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>
+ Test Setting of channelCountMode and channelInterpretation
+ </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">
+ // Fairly arbitrary sample rate and number of frames, except the number of
+ // frames should be more than a few render quantums.
+ let sampleRate = 16000;
+ let renderFrames = 10 * 128;
+
+ let audit = Audit.createTaskRunner();
+
+ audit.define('interp', (task, should) => {
+ let context = new OfflineAudioContext(1, renderFrames, sampleRate);
+ let node = context.createGain();
+
+ // Set a new interpretation and verify that it changed.
+ node.channelInterpretation = 'discrete';
+ let value = node.channelInterpretation;
+ should(value, 'node.channelInterpretation').beEqualTo('discrete');
+ node.connect(context.destination);
+
+ context.startRendering()
+ .then(function(buffer) {
+ // After rendering, the value should have been changed.
+ should(
+ node.channelInterpretation,
+ 'After rendering node.channelInterpretation')
+ .beEqualTo('discrete');
+ })
+ .then(() => task.done());
+ });
+
+ audit.define('mode', (task, should) => {
+ let context = new OfflineAudioContext(1, renderFrames, sampleRate);
+ let node = context.createGain();
+
+ // Set a new mode and verify that it changed.
+ node.channelCountMode = 'explicit';
+ let value = node.channelCountMode;
+ should(value, 'node.channelCountMode').beEqualTo('explicit');
+ node.connect(context.destination);
+
+ context.startRendering()
+ .then(function(buffer) {
+ // After rendering, the value should have been changed.
+ should(
+ node.channelCountMode,
+ 'After rendering node.channelCountMode')
+ .beEqualTo('explicit');
+ })
+ .then(() => task.done());
+ });
+
+ audit.run();
+ </script>
+ </body>
+</html>