Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/constructor/audiobuffer.html

Issue 2102133002: Add constructors for WebAudio nodes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments and rebase Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!doctype html>
2 <html>
3 <head>
4 <title>Test Constructor: AudioBuffer</title>
5 <script src="../../resources/testharness.js"></script>
6 <script src="../../resources/testharnessreport.js"></script>
7 <script src="../resources/audio-testing.js"></script>
8 </head>
9
10 <body>
11 <script>
12 var context;
13
14 var audit = Audit.createTaskRunner();
15
16 audit.defineTask("initialize", function (taskDone) {
17 Should("context = new OfflineAudioContext(...)", function () {
18 context = new OfflineAudioContext(1, 1, 48000);
19 }).notThrow();
20
21 taskDone();
22 });
23
24 audit.defineTask("invalid constructor", function (taskDone) {
25 var node;
26 var success = true;
27
28 success = Should("new AudioBuffer()", function () {
29 node = new AudioBuffer();
30 }).throw("TypeError");
31 success = Should("new AudioBuffer(1)", function () {
32 node = new AudioBuffer(1) && success;
33 }).throw("TypeError");
34 success = Should("new AudioBuffer(context, 42)", function () {
35 node = new AudioBuffer(context, 42) && success;
36 }).throw("TypeError");
37
38 Should("Invalid constructors", success)
39 .summarize(
40 "correctly threw errors",
41 "did not throw errors in all cases");
42
43 taskDone();
44 });
45
46 audit.defineTask("required options", function (taskDone) {
47 var success = true;
48
49 success = Should("new AudioBuffer(context, {})", function () {
50 var buffer = new AudioBuffer(context, {});
51 }).throw("NotFoundError");
52
53 success = Should("new AudioBuffer(context, {numberOfChannels: 1}",
54 function () {
55 var buffer = new AudioBuffer(context, {
56 numberOfChannels: 1
57 });
58 }).throw("NotFoundError") && success;
59
60 // The sampleRate isn't required, but numberOfChannels and length are.
61 success = Should(
62 "new AudioBuffer(context, {numberOfChannels: 1, length: 1}",
63 function () {
64 var buffer = new AudioBuffer(context, {
65 numberOfChannels: 1,
66 length: 1
67 });
68 }).notThrow() && success;
69
70 success = Should(
71 "new AudioBuffer(context, {numberOfChannels: 1, length: 1, sampleRate: 48000}",
72 function () {
73 var buffer = new AudioBuffer(context, {
74 numberOfChannels: 1,
75 length: 1,
76 sampleRate: 48000
77 });
78 }).notThrow() && success;
79
80 Should("Missing option values handled", success)
81 .summarize("correctly", "incorrectly");
82
83 taskDone();
84 });
85
86 audit.defineTask("invalid option values", function (taskDone) {
87 var success = true;
88
89 success = Should("new AudioBuffer(context, {numberOfChannels: 0})", func tion () {
hongchan 2016/09/13 22:13:22 We can apply the same technique of JSON.stringify
Raymond Toy 2016/09/14 18:02:22 Done.
90 var buffer = new AudioBuffer(context, {numberOfChannels: 0, length: 1} );
91 }).throw("NotSupportedError");
92
93 success = Should("new AudioBuffer(context, {numberOfChannels: 99})", fun ction () {
94 var buffer = new AudioBuffer(context, {numberOfChannels: 99, length: 0 });
95 }).throw("NotSupportedError") && success;
96
97 success = Should("new AudioBuffer(context, {length: 0})", function () {
98 var buffer = new AudioBuffer(context, {numberOfChannels: 1, length: 0} );
99 }).throw("NotSupportedError") && success;
100
101 success = Should("new AudioBuffer(context, {sampleRate: 100})", function () {
102 var buffer = new AudioBuffer(context, {numberOfChannels: 1, length: 1,
103 sampleRate: 100});
104 }).throw("NotSupportedError") && success;
105
106 Should("Invalid option values handled", success)
107 .summarize("correctly", "incorrectly");
108
109 taskDone();
110 });
111
112 audit.defineTask("default constructor", function (taskDone) {
113 var buffer;
114 var success = true;
115
116 success = Should(
117 "buffer = new AudioBuffer(context, {numberOfChannels: 5, length: 17})" ,
118 function () {
119 buffer = new AudioBuffer(context, {numberOfChannels: 5, length: 17}) ;
120 }).notThrow();
121
122 success = Should("buffer.numberOfChannels", buffer.numberOfChannels)
123 .beEqualTo(5) && success;
124 success = Should("buffer.length", buffer.length)
125 .beEqualTo(17) && success;
126 success = Should("buffer.sampleRate", buffer.sampleRate)
127 .beEqualTo(context.sampleRate) && success;
128
129 Should("Default constructor values set", success)
130 .summarize("correctly", "incorrectly");
131
132 taskDone();
133 });
134
135 audit.defineTask("valid constructor", function (taskDone) {
136 var buffer;
137 var success = true;
138
139 var options = {
140 numberOfChannels: 3,
141 length: 42,
142 sampleRate: 54321
143 };
144
145 var message = "new AudioBuffer(context, {";
hongchan 2016/09/13 22:13:22 var message = "..." + "..." + val1 + "..." + v
146 message += "numberOfChannels: " + options.numberOfChannels;
147 message += ", length: " + options.length;
148 message += ", sampleRate: " + options.sampleRate;
149 message += "}";
150 success = Should(message, function () {
151 buffer = new AudioBuffer(context, options);
152 }).notThrow();
153
154 success = Should("buffer.numberOfChannels", buffer.numberOfChannels)
155 .beEqualTo(options.numberOfChannels) && success;
156
157 success = Should("buffer.length", buffer.length)
158 .beEqualTo(options.length) && success;
159
160 success = Should("buffer.sampleRate", buffer.sampleRate)
161 .beEqualTo(options.sampleRate) && success;
162
163 // Verify that we actually got the right number of channels
164 for (var k = 0; k < options.numberOfChannels; ++k) {
165 var data;
166 var message = "buffer.getChannelData(" + k + ")";
167 success = Should(message, function () {
168 data = buffer.getChannelData(k);
169 }).notThrow() && success;
170
171 success = Should(message + " length", data.length)
172 .beEqualTo(options.length) && success;
173 }
174
175 Should("buffer.getChannelData(" + options.numberOfChannels + ")",
176 function () {
177 buffer.getChannelData(options.numberOfChannels);
178 }).throw("IndexSizeError") && success;
179
180 Should("AudioBuffer constructed", success)
181 .summarize("correctly", "incorrectly");
182
183 taskDone();
184 });
185
186 audit.runTasks();
187 </script>
188 </body>
189 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698