Merge pull request #8213 from w3c/sync_44bc95443de17bda911f39671617a4c5d6c2e31c

Convert test_analyserScale.html to a web-platform-test: test-analyser-scale.html.
diff --git a/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html b/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html
new file mode 100644
index 0000000..04fe480
--- /dev/null
+++ b/webaudio/the-audio-api/the-analysernode-interface/test-analyser-scale.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>Test AnalyserNode when the input is scaled</title>
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <script>
+    var context = new AudioContext();
+
+    var gain = context.createGain();
+    var analyser = context.createAnalyser();
+    var osc = context.createOscillator();
+
+    osc.connect(gain);
+    gain.connect(analyser);
+
+    osc.start();
+
+    var array = new Uint8Array(analyser.frequencyBinCount);
+
+    function getAnalyserData() {
+      gain.gain.setValueAtTime(currentGain, context.currentTime);
+      analyser.getByteTimeDomainData(array);
+      var inrange = true;
+      var max = -1;
+      for (var i = 0; i < array.length; i++) {
+        if (array[i] > max) {
+          max = Math.abs(array[i] - 128);
+        }
+      }
+      if (max <= currentGain * 128) {
+        assert_true(true, "Analyser got scaled data for " + currentGain);
+        currentGain = tests.shift();
+        if (currentGain == undefined) {
+          done();
+          return;
+        }
+      }
+      requestAnimationFrame(getAnalyserData);
+    }
+
+    var tests = [1.0, 0.5, 0.0];
+    var currentGain = tests.shift();
+    requestAnimationFrame(getAnalyserData);
+  </script>
+</head>
+</body>
+</html>