Bug 1408456 - Convert test_AnalyserNode.html to a web-platform-test. r?karlt draft
authorPaul Adenot <paul@paul.cx>
Fri, 13 Oct 2017 18:09:41 +0200
changeset 680691 b6f1eab8830298abd897ff47a2cc116e4191c8ff
parent 678523 f3e939a81ee1169f9501ad96eb43bbf4bf4a1bde
child 735933 75291285913a418c1525658fc9b9e1286d777183
push id84587
push userktomlinson@mozilla.com
push dateMon, 16 Oct 2017 04:22:25 +0000
reviewerskarlt
bugs1408456
milestone58.0a1
Bug 1408456 - Convert test_AnalyserNode.html to a web-platform-test. r?karlt MozReview-Commit-ID: GR3Ze8KIAKB
dom/media/webaudio/test/mochitest.ini
dom/media/webaudio/test/test_analyserNode.html
testing/web-platform/meta/MANIFEST.json
testing/web-platform/tests/webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html
--- a/dom/media/webaudio/test/mochitest.ini
+++ b/dom/media/webaudio/test/mochitest.ini
@@ -26,17 +26,16 @@ support-files =
   ting-48k-2ch.ogg
   ting-44.1k-1ch.wav
   ting-44.1k-2ch.wav
   ting-48k-1ch.wav
   ting-48k-2ch.wav
   sine-440-10s.opus
   webaudio.js
 
-[test_analyserNode.html]
 [test_analyserScale.html]
 [test_analyserNodeOutput.html]
 [test_analyserNodePassThrough.html]
 [test_analyserNodeWithGain.html]
 [test_analyserNodeMinimum.html]
 [test_AudioBuffer.html]
 [test_audioBufferSourceNode.html]
 [test_audioBufferSourceNodeEnded.html]
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -380067,16 +380067,22 @@
     ]
    ],
    "web-share/share-without-user-gesture.https.html": [
     [
      "/web-share/share-without-user-gesture.https.html",
      {}
     ]
    ],
+   "webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html": [
+    [
+     "/webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html",
+     {}
+    ]
+   ],
    "webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html": [
     [
      "/webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html",
      {}
     ]
    ],
    "webaudio/the-audio-api/the-audiodestinationnode-interface/idl-test.html": [
     [
@@ -631558,16 +631564,20 @@
   "webaudio/specification.html": [
    "1bea5d5d8983a3505328f6878bfe09c20c25aa8c",
    "support"
   ],
   "webaudio/the-audio-api/the-analysernode-interface/.gitkeep": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
+  "webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html": [
+   "c797c32ea223569c49352d171104907d92616042",
+   "testharness"
+  ],
   "webaudio/the-audio-api/the-audiobuffer-interface/.gitkeep": [
    "da39a3ee5e6b4b0d3255bfef95601890afd80709",
    "support"
   ],
   "webaudio/the-audio-api/the-audiobuffer-interface/idl-test.html": [
    "11ec68dec57c960cea256c28237715866c58ac84",
    "testharness"
   ],
rename from dom/media/webaudio/test/test_analyserNode.html
rename to testing/web-platform/tests/webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html
--- a/dom/media/webaudio/test/test_analyserNode.html
+++ b/testing/web-platform/tests/webaudio/the-audio-api/the-analysernode-interface/test-analysernode.html
@@ -1,178 +1,237 @@
-<!DOCTYPE HTML>
+<!DOCTYPE html>
 <html>
 <head>
-  <title>Test AnalyserNode</title>
-  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
-  <script type="text/javascript" src="webaudio.js"></script>
-  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
-</head>
-<body>
-<pre id="test">
-<script class="testbody" type="text/javascript">
+  <meta charset="utf-8">
+  <script src="/resources/testharness.js" />
+  <script src="/resources/testharnessreport.js" />
+  <script>
+    function testNode() {
+      var context = new AudioContext();
+      var buffer = context.createBuffer(1, 2048, context.sampleRate);
+      for (var i = 0; i < 2048; ++i) {
+        buffer.getChannelData(0)[i] = Math.sin(
+          440 * 2 * Math.PI * i / context.sampleRate
+        );
+      }
+
+      var destination = context.destination;
+
+      var source = context.createBufferSource();
+
+      var analyser = context.createAnalyser();
 
-function testNode() {
-  var context = new AudioContext();
-  var buffer = context.createBuffer(1, 2048, context.sampleRate);
-  for (var i = 0; i < 2048; ++i) {
-    buffer.getChannelData(0)[i] = Math.sin(440 * 2 * Math.PI * i / context.sampleRate);
-  }
+      source.buffer = buffer;
 
-  var destination = context.destination;
-
-  var source = context.createBufferSource();
+      source.connect(analyser);
+      analyser.connect(destination);
 
-  var analyser = context.createAnalyser();
-
-  source.buffer = buffer;
-
-  source.connect(analyser);
-  analyser.connect(destination);
-
-  is(analyser.channelCount, 1, "analyser node has 1 input channels by default");
-  is(analyser.channelCountMode, "max", "Correct channelCountMode for the analyser node");
-  is(analyser.channelInterpretation, "speakers", "Correct channelCountInterpretation for the analyser node");
+      assert_equals(
+        analyser.channelCount,
+        1,
+        "analyser node has 1 input channels by default"
+      );
+      assert_equals(
+        analyser.channelCountMode,
+        "max",
+        "Correct channelCountMode for the analyser node"
+      );
+      assert_equals(
+        analyser.channelInterpretation,
+        "speakers",
+        "Correct channelCountInterpretation for the analyser node"
+      );
 
-  is(analyser.fftSize, 2048, "Correct default value for fftSize");
-  is(analyser.frequencyBinCount, 1024, "Correct default value for frequencyBinCount");
-  expectException(function() {
-    analyser.fftSize = 0;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 1;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 8;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 100; // non-power of two
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 2049;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 4097;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 8193;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 16385;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 32769;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.fftSize = 65536;
-  }, DOMException.INDEX_SIZE_ERR);
-  analyser.fftSize = 1024;
-  is(analyser.frequencyBinCount, 512, "Correct new value for frequencyBinCount");
+      assert_equals(
+        analyser.fftSize,
+        2048,
+        "Correct default value for fftSize"
+      );
+      assert_equals(
+        analyser.frequencyBinCount,
+        1024,
+        "Correct default value for frequencyBinCount"
+      );
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 0;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 1;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 8;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 100;
+      }); // non-power of two
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 2049;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 4097;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 8193;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 16385;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 32769;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.fftSize = 65536;
+      });
+      analyser.fftSize = 1024;
+      assert_equals(
+        analyser.frequencyBinCount,
+        512,
+        "Correct new value for frequencyBinCount"
+      );
 
-  is(analyser.minDecibels, -100, "Correct default value for minDecibels");
-  is(analyser.maxDecibels, -30, "Correct default value for maxDecibels");
-  expectException(function() {
-    analyser.minDecibels = -30;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.minDecibels = -29;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.maxDecibels = -100;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.maxDecibels = -101;
-  }, DOMException.INDEX_SIZE_ERR);
+      assert_equals(
+        analyser.minDecibels,
+        -100,
+        "Correct default value for minDecibels"
+      );
+      assert_equals(
+        analyser.maxDecibels,
+        -30,
+        "Correct default value for maxDecibels"
+      );
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.minDecibels = -30;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.minDecibels = -29;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.maxDecibels = -100;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.maxDecibels = -101;
+      });
 
-  ok(Math.abs(analyser.smoothingTimeConstant - 0.8) < 0.001, "Correct default value for smoothingTimeConstant");
-  expectException(function() {
-    analyser.smoothingTimeConstant = -0.1;
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser.smoothingTimeConstant = 1.1;
-  }, DOMException.INDEX_SIZE_ERR);
-  analyser.smoothingTimeConstant = 0;
-  analyser.smoothingTimeConstant = 1;
-}
+      assert_true(
+        Math.abs(analyser.smoothingTimeConstant - 0.8) < 0.001,
+        "Correct default value for smoothingTimeConstant"
+      );
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.smoothingTimeConstant = -0.1;
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser.smoothingTimeConstant = 1.1;
+      });
+      analyser.smoothingTimeConstant = 0;
+      analyser.smoothingTimeConstant = 1;
+    }
+
+    function testConstructor() {
+      var context = new AudioContext();
 
-function testConstructor() {
-  var context = new AudioContext();
+      var analyser = new AnalyserNode(context);
+      assert_equals(
+        analyser.channelCount,
+        1,
+        "analyser node has 1 input channels by default"
+      );
+      assert_equals(
+        analyser.channelCountMode,
+        "max",
+        "Correct channelCountMode for the analyser node"
+      );
+      assert_equals(
+        analyser.channelInterpretation,
+        "speakers",
+        "Correct channelCountInterpretation for the analyser node"
+      );
 
-  var analyser = new AnalyserNode(context);
-  is(analyser.channelCount, 1, "analyser node has 1 input channels by default");
-  is(analyser.channelCountMode, "max", "Correct channelCountMode for the analyser node");
-  is(analyser.channelInterpretation, "speakers", "Correct channelCountInterpretation for the analyser node");
-
-  is(analyser.fftSize, 2048, "Correct default value for fftSize");
-  is(analyser.frequencyBinCount, 1024, "Correct default value for frequencyBinCount");
-  is(analyser.minDecibels, -100, "Correct default value for minDecibels");
-  is(analyser.maxDecibels, -30, "Correct default value for maxDecibels");
-  ok(Math.abs(analyser.smoothingTimeConstant - 0.8) < 0.001, "Correct default value for smoothingTimeConstant");
+      assert_equals(
+        analyser.fftSize,
+        2048,
+        "Correct default value for fftSize"
+      );
+      assert_equals(
+        analyser.frequencyBinCount,
+        1024,
+        "Correct default value for frequencyBinCount"
+      );
+      assert_equals(
+        analyser.minDecibels,
+        -100,
+        "Correct default value for minDecibels"
+      );
+      assert_equals(
+        analyser.maxDecibels,
+        -30,
+        "Correct default value for maxDecibels"
+      );
+      assert_true(
+        Math.abs(analyser.smoothingTimeConstant - 0.8) < 0.001,
+        "Correct default value for smoothingTimeConstant"
+      );
 
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 0 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 1 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 8 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 100 }); // non-power of two
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 2049 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 4097 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 8193 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 16385 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 32769 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { fftSize: 65536 });
-  }, DOMException.INDEX_SIZE_ERR);
-  analyser = new AnalyserNode(context, { fftSize: 1024 });
-  is(analyser.frequencyBinCount, 512, "Correct new value for frequencyBinCount");
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 0 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 1 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 8 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 100 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 2049 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 4097 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 8193 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 16385 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 32769 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { fftSize: 65536 });
+      });
+      analyser = new AnalyserNode(context, { fftSize: 1024 });
+      assert_equals(
+        analyser.frequencyBinCount,
+        512,
+        "Correct new value for frequencyBinCount"
+      );
 
-  expectException(function() {
-    analyser = new AnalyserNode(context, { minDecibels: -30 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { minDecibels: -29 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { maxDecibels: -100 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { maxDecibels: -101 });
-  }, DOMException.INDEX_SIZE_ERR);
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { minDecibels: -30 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { minDecibels: -29 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { maxDecibels: -100 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { maxDecibels: -101 });
+      });
 
-  expectException(function() {
-    analyser = new AnalyserNode(context, { smoothingTimeConstant: -0.1 });
-  }, DOMException.INDEX_SIZE_ERR);
-  expectException(function() {
-    analyser = new AnalyserNode(context, { smoothingTimeConstant: -1.1 });
-  }, DOMException.INDEX_SIZE_ERR);
-  analyser = new AnalyserNode(context, { smoothingTimeConstant: 0 });
-  analyser = new AnalyserNode(context, { smoothingTimeConstant: 1 });
-}
-
-SimpleTest.waitForExplicitFinish();
-addLoadEvent(function() {
-
-  testNode();
-  testConstructor();
-
-  SimpleTest.finish();
-});
-
-</script>
-</pre>
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { smoothingTimeConstant: -0.1 });
+      });
+      assert_throws("INDEX_SIZE_ERR", function() {
+        analyser = new AnalyserNode(context, { smoothingTimeConstant: -1.1 });
+      });
+      analyser = new AnalyserNode(context, { smoothingTimeConstant: 0 });
+      analyser = new AnalyserNode(context, { smoothingTimeConstant: 1 });
+    }
+    test(testNode, "Test AnalyserNode API");
+    test(testConstructor, "Test AnalyserNode's ctor API");
+  </script>
+</head>
 </body>
 </html>