| OLD | NEW |
| 1 <!doctype html> | 1 <!doctype html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Test Constructor: WaveShaper</title> | 4 <title>Test Constructor: WaveShaper</title> |
| 5 <script src="../../resources/testharness.js"></script> | 5 <script src="../../resources/testharness.js"></script> |
| 6 <script src="../../resources/testharnessreport.js"></script> | 6 <script src="../../resources/testharnessreport.js"></script> |
| 7 <script src="../resources/audit-util.js"></script> | 7 <script src="../resources/audit-util.js"></script> |
| 8 <script src="../resources/audio-testing.js"></script> | 8 <script src="../resources/audit.js"></script> |
| 9 <script src="audionodeoptions.js"></script> | 9 <script src="new-audionodeoptions.js"></script> |
| 10 </head> | 10 </head> |
| 11 | 11 |
| 12 <body> | 12 <body> |
| 13 <script> | 13 <script> |
| 14 var context; | 14 var context; |
| 15 | 15 |
| 16 var audit = Audit.createTaskRunner(); | 16 var audit = Audit.createTaskRunner(); |
| 17 | 17 |
| 18 audit.defineTask("initialize", function (taskDone) { | 18 audit.define('initialize', (task, should) => { |
| 19 Should("Construct Offline context", function () { | 19 context = initializeContext(should); |
| 20 context = new OfflineAudioContext(1, 1, 48000); | 20 task.done(); |
| 21 }).notThrow(); | |
| 22 taskDone(); | |
| 23 }); | 21 }); |
| 24 | 22 |
| 25 audit.defineTask("incorrect construction", function (taskDone) { | 23 audit.define('incorrect construction', (task, should) => { |
| 26 var success = true; | 24 testInvalidConstructor(should, 'WaveShaperNode', context); |
| 27 | 25 task.done(); |
| 28 success = Should("new WaveShaperNode()", function () { | |
| 29 new WaveShaperNode(); | |
| 30 }).throw("TypeError"); | |
| 31 success = Should("new WaveShaperNode(1)", function () { | |
| 32 new WaveShaperNode(1); | |
| 33 }).throw("TypeError") && success; | |
| 34 success = Should("new WaveShaperNode(context, 42)", function () { | |
| 35 new WaveShaperNode(context, 42); | |
| 36 }).throw("TypeError") && success; | |
| 37 | |
| 38 success = Should("Invalid constructors", success) | |
| 39 .summarize( | |
| 40 "correctly threw errors", | |
| 41 "did not throw errors in all cases"); | |
| 42 taskDone(); | |
| 43 }); | 26 }); |
| 44 | 27 |
| 45 audit.defineTask("valid default construction", function (taskDone) { | 28 audit.define('valid default construction', (task, should) => { |
| 29 let prefix = 'node0'; |
| 30 let node = testDefaultConstructor(should, 'WaveShaperNode', context, { |
| 31 prefix: prefix, |
| 32 numberOfInputs: 1, |
| 33 numberOfOutputs: 1, |
| 34 channelCount: 2, |
| 35 channelCountMode: 'max', |
| 36 channelInterpretation: 'speakers' |
| 37 }); |
| 38 |
| 39 testDefaultAttributes(should, node, prefix, [ |
| 40 {name: 'curve', value: null}, {name: 'oversample', value: 'none'} |
| 41 ]); |
| 42 |
| 43 task.done(); |
| 44 }); |
| 45 |
| 46 audit.define('test AudioNodeOptions', (task, should) => { |
| 47 testAudioNodeOptions(should, context, 'WaveShaperNode'); |
| 48 task.done(); |
| 49 }); |
| 50 |
| 51 audit.define('valid non-default', (task, should) => { |
| 52 // Construct an WaveShaperNode with options |
| 53 var options = {curve: Float32Array.from([1, 2, 3]), oversample: '4x'}; |
| 46 var node; | 54 var node; |
| 47 | 55 |
| 48 success = Should("node0 = new WaveShaperNode(context)", function () { | 56 var message = |
| 49 node = new WaveShaperNode(context); | 57 'node1 = new WaveShaperNode(, ' + JSON.stringify(options) + ')'; |
| 50 }).notThrow(); | 58 should(() => { |
| 51 success = Should("node0.curve", node.curve).beEqualTo(null) && success; | 59 node = new WaveShaperNode(context, options); |
| 52 success = Should("node0.oversample", node.oversample).beEqualTo("none")
&& success; | 60 }, message).notThrow(); |
| 61 should(node.curve, 'node1.curve').beEqualToArray(options.curve); |
| 62 should(node.oversample, 'node1.oversample') |
| 63 .beEqualTo(options.oversample); |
| 53 | 64 |
| 54 success = Should("node0.channelCount", node.channelCount) | 65 task.done(); |
| 55 .beEqualTo(2) && success; | |
| 56 success = Should("node0.channelCountMode", node.channelCountMode) | |
| 57 .beEqualTo("max") && success; | |
| 58 success = Should("node0.channelInterpretation", node.channelInterpretati
on) | |
| 59 .beEqualTo("speakers") && success; | |
| 60 | |
| 61 Should("new WaveShaperNode(context)", success) | |
| 62 .summarize( | |
| 63 "constructed node with correct attributes", | |
| 64 "did not construct correct node correctly") | |
| 65 | |
| 66 taskDone(); | |
| 67 }); | 66 }); |
| 68 | 67 |
| 69 audit.defineTask("test AudioNodeOptions", function (taskDone) { | 68 audit.run(); |
| 70 testAudioNodeOptions(context, "WaveShaperNode"); | |
| 71 taskDone(); | |
| 72 }); | |
| 73 | |
| 74 audit.defineTask("valid non-default", function (taskDone) { | |
| 75 // Construct an WaveShaperNode with options | |
| 76 var options = { | |
| 77 curve: Float32Array.from([1,2,3]), | |
| 78 oversample: "4x" | |
| 79 }; | |
| 80 var node; | |
| 81 | |
| 82 var message = "node1 = new WaveShaperNode(, " + JSON.stringify(options)
+ ")"; | |
| 83 success = Should(message, function () { | |
| 84 node = new WaveShaperNode(context, options); | |
| 85 }).notThrow(); | |
| 86 success = Should("node1.curve", node.curve) | |
| 87 .beEqualToArray(options.curve) && success; | |
| 88 success = Should("node1.oversample", node.oversample) | |
| 89 .beEqualTo(options.oversample) && success; | |
| 90 | |
| 91 Should("new WaveShaper() with options", success) | |
| 92 .summarize( | |
| 93 "constructed with correct attributes", | |
| 94 "was not constructed correctly"); | |
| 95 | |
| 96 taskDone(); | |
| 97 }); | |
| 98 | |
| 99 if (window.SharedArrayBuffer) { | |
| 100 audit.defineTask("invalid setCurve", function (taskDone) { | |
| 101 var node = new WaveShaperNode(context); | |
| 102 | |
| 103 Should("WaveShaper.curve = SharedArrayBuffer view", function () { | |
| 104 node.curve = new Float32Array(new SharedArrayBuffer(16)); | |
| 105 }).throw("TypeError"); | |
| 106 taskDone(); | |
| 107 }); | |
| 108 } | |
| 109 | |
| 110 audit.runTasks(); | |
| 111 </script> | 69 </script> |
| 112 </body> | 70 </body> |
| 113 </html> | 71 </html> |
| OLD | NEW |