Bug 1424271 - convert mochitest test_audioBufferSourceNodeOffset.html to a web-platform-test r?padenot draft
authorp1509425
Fri, 05 Jan 2018 12:02:27 +0100
changeset 717081 0185301efaf20c2785b2b8d943151dbd547fcd46
parent 717080 9b0e412885affbe5f9555dc28f7f7013fca14b70
child 717082 847cafcab758fb8c8bd5e66fdc4d8d7928afaed7
push id94557
push userbmo:alan.guyoch@gmail.com
push dateMon, 08 Jan 2018 07:50:18 +0000
reviewerspadenot
bugs1424271
milestone59.0a1
Bug 1424271 - convert mochitest test_audioBufferSourceNodeOffset.html to a web-platform-test r?padenot MozReview-Commit-ID: Bl8rNVammrM
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeOffset.html
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -348570,16 +348570,22 @@
     ]
    ],
    "webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeLoopStartEndSame.html": [
     [
      "/webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeLoopStartEndSame.html",
      {}
     ]
    ],
+   "webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeOffset.html": [
+    [
+     "/webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeOffset.html",
+     {}
+    ]
+   ],
    "webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html": [
     [
      "/webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html",
      {}
     ]
    ],
    "webaudio/the-audio-api/the-audionode-interface/audionode-connect-return-value.html": [
     [
@@ -576483,16 +576489,20 @@
   "webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeLoopStartEnd.html": [
    "88d9b5d9930a0a59b3a509cc724d0f539a10cd89",
    "testharness"
   ],
   "webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeLoopStartEndSame.html": [
    "d16bc09e518ecd012bb673fe351052b25834e55b",
    "testharness"
   ],
+  "webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeOffset.html": [
+   "9c49750f889df8b10bdefb6d8ac008b97e8c200e",
+   "testharness"
+  ],
   "webaudio/the-audio-api/the-audiocontext-interface/.gitkeep": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webaudio/the-audio-api/the-audiodestinationnode-interface/.gitkeep": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/test_audioBufferSourceNodeOffset.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script>
+var fuzz = 0.3;
+
+if (navigator.platform.startsWith("Mac")) {
+  // bug 895720
+  fuzz = 0.6;
+}
+
+var t = async_test();
+var samplesFromSource = 0;
+var context = new AudioContext();
+var sp = context.createScriptProcessor(256);
+
+sp.onaudioprocess = function(e) {
+  samplesFromSource += e.inputBuffer.length;
+};
+
+var buffer = context.createBuffer(1, context.sampleRate, context.sampleRate);
+for (var i = 0; i < context.sampleRate; ++i) {
+  buffer.getChannelData(0)[i] = Math.sin(
+    440 * 2 * Math.PI * i / context.sampleRate
+  );
+}
+
+var source = context.createBufferSource();
+
+source.onended = function(e) {
+  // The timing at which the audioprocess and ended listeners are called can
+  // change, hence the fuzzy equal here.
+  var errorRatio = samplesFromSource / (0.5 * context.sampleRate);
+  assert_true(
+    errorRatio > 1.0 - fuzz && errorRatio < 1.0 + fuzz,
+    "Correct number of samples received (expected: " +
+      0.5 * context.sampleRate +
+      ", actual: " +
+      samplesFromSource +
+      ")."
+  );
+  t.done();
+};
+
+source.buffer = buffer;
+source.connect(sp);
+source.start(0, 0.5);
+  </script>
+</head>
+</body>
+</html>