copy from dom/media/webaudio/test/test_analyserNode.html
copy 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>
+ <script src="/resources/testharnessreport.js"></script>
+ <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>