Bug 1618225 - Added wpt. r=padenot
authorCorentin Arnould <koalab1999@gmail.com>
Wed, 28 Oct 2020 13:38:27 +0000
changeset 554899 97ecf4557cf41812748b55e46f94c30b7a20d993
parent 554898 3aa921cab4179f31edd28f63f04325f55fcf6a8b
child 554900 0c7b5d5a230791e949919eeed02d5c8b12570206
push id129637
push userpadenot@mozilla.com
push dateWed, 28 Oct 2020 13:41:43 +0000
treeherderautoland@0c7b5d5a2307 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerspadenot
bugs1618225
milestone84.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1618225 - Added wpt. r=padenot Depends on D84403 Differential Revision: https://phabricator.services.mozilla.com/D84481
testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-duration-loop.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-duration-loop.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>
+      Test AudioBufferSourceNode With Looping And Duration
+    </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();
+      audit.define('loop with duration', (task, should) => {
+        // Create the context
+        let context = new OfflineAudioContext(1, 4096, 48000);
+
+        // Create the sample buffer and fill the second half with 1
+        let buffer = context.createBuffer(1, 2048, context.sampleRate);
+        for(let i = 1024; i < 2048; i++) {
+          buffer.getChannelData(0)[i] = 1;
+        }
+
+        // Create the source and set its value
+        let source = context.createBufferSource();
+        source.loop = true;
+        source.loopStart = 1024 / context.sampleRate;
+        source.loopEnd = 2048 / context.sampleRate;
+        source.buffer = buffer;
+        source.connect(context.destination);
+        source.start(0, 1024 / context.sampleRate, 2048 / context.sampleRate);
+        // Expectations
+        let expected = new Float32Array(4096);
+        for(let i = 0; i < 2048; i++) {
+          expected[i] = 1;
+        }
+        // Render it!
+        context.startRendering()
+          .then(function(audioBuffer) {
+            should(audioBuffer.getChannelData, "audioBuffer.getChannelData").beEqualToArray(expected);
+          })
+          .then(task.done());
+      });
+
+      audit.run();
+
+    </script>
+  </body>
+</html>