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

Side by Side Diff: LayoutTests/webaudio/resources/audio-testing.js

Issue 886173004: Fix AudioNode.disconnect() to support selective disconnection. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Test for AudioParam disconnection Created 5 years, 10 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
1 if (window.testRunner) 1 if (window.testRunner)
2 testRunner.overridePreference("WebKitWebAudioEnabled", "1"); 2 testRunner.overridePreference("WebKitWebAudioEnabled", "1");
3 3
4 function writeString(s, a, offset) { 4 function writeString(s, a, offset) {
5 for (var i = 0; i < s.length; ++i) { 5 for (var i = 0; i < s.length; ++i) {
6 a[offset + i] = s.charCodeAt(i); 6 a[offset + i] = s.charCodeAt(i);
7 } 7 }
8 } 8 }
9 9
10 function writeInt16(n, a, offset) { 10 function writeInt16(n, a, offset) {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 var endFrame = timeToSampleFrame(grainOffset + duration, sampleRate); 168 var endFrame = timeToSampleFrame(grainOffset + duration, sampleRate);
169 169
170 return endFrame - startFrame; 170 return endFrame - startFrame;
171 } 171 }
172 172
173 // True if the number is not an infinity or NaN 173 // True if the number is not an infinity or NaN
174 function isValidNumber(x) { 174 function isValidNumber(x) {
175 return !isNaN(x) && (x != Infinity) && (x != -Infinity); 175 return !isNaN(x) && (x != Infinity) && (x != -Infinity);
176 } 176 }
177 177
178 function shouldThrowTypeError(func, text) {
Raymond Toy 2015/02/11 21:31:18 No test was using this function?
hongchan 2015/02/12 18:38:00 This is removed and merged into |Should| name spac
179 var ok = false;
180 try {
181 func();
182 } catch (e) {
183 if (e instanceof TypeError) {
184 ok = true;
185 }
186 }
187 if (ok) {
188 testPassed(text + " threw TypeError.");
189 } else {
190 testFailed(text + " should throw TypeError.");
191 }
192 }
193
194 // |Audit| is a task runner for web audio test. It makes asynchronous web audio 178 // |Audit| is a task runner for web audio test. It makes asynchronous web audio
195 // testing simple and manageable. 179 // testing simple and manageable.
196 // 180 //
197 // EXAMPLE: 181 // EXAMPLE:
198 // 182 //
199 // var audit = Audit.createTaskRunner(); 183 // var audit = Audit.createTaskRunner();
200 // // Define test routine. Make sure to call done() when reached at the end. 184 // // Define test routine. Make sure to call done() when reached at the end.
201 // audit.defineTask('foo', function (done) { 185 // audit.defineTask('foo', function (done) {
202 // var context = new AudioContext(); 186 // var context = new AudioContext();
203 // // do things 187 // // do things
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 // Start task 0. 232 // Start task 0.
249 this.tasks[this.queue[this.currentTask]](done); 233 this.tasks[this.queue[this.currentTask]](done);
250 }; 234 };
251 235
252 return { 236 return {
253 createTaskRunner: function () { 237 createTaskRunner: function () {
254 return new Tasks(); 238 return new Tasks();
255 } 239 }
256 }; 240 };
257 241
258 })(); 242 })();
243
244
245 // Create a channel buffer for testing. Push a channel index value into the
246 // each channel buffer. The channel index is between 1 and |numChannels|.
247 // For example, a 4 channel buffer will have values [1, 2, 3, 4] for each
248 // channel respectively.
Raymond Toy 2015/02/11 21:31:18 I think I'd rephrase this. We're not really pushin
hongchan 2015/02/12 18:38:00 Done.
249 function createTestingBuffer(context, numChannels, length) {
250 var buffer = context.createBuffer(numChannels, length, context.sampleRate);
251 for (var i = 1; i <= numChannels; i++) {
252 var data = buffer.getChannelData(i-1);
253 for (var j = 0; j < data.length; j++) {
254 // Storing channel index into the channel buffer.
255 data[j] = i;
256 }
257 }
258 return buffer;
259 }
260
261 // Get summarized (truncated) function content.
Raymond Toy 2015/02/11 21:31:18 I have no idea what this function is trying to do
hongchan 2015/02/12 18:38:00 I missed that. Will add comment here. This is basi
262 function getTaskSummary(func) {
263 var content = func.toString().replace(/(\s|\t|\r\n|\n|\r)/gm, '');
264 return '"' + content.slice(11, 30) + '..."';
265 }
266
267
268 // |Should| test utilities. Note that testPassed(), testFailed() are from
269 // resources/js-test.js.
270 var Should = {};
271
272 // Expect exception with a certin type. If type is undefined, it only checks for
273 // the exception.
274 Should.throwWithType = function (func, type) {
275 try {
276 func();
277 var content = Expect.getTaskSummary(func);
278 testFailed('Exception should be thrown from '+ content);
279 } catch (e) {
280 if (e.name === type || type === undefined)
281 testPassed(e.name + ' was thrown as expected.');
282 else
283 testFailed('Expected ' + type + ' but got ' + e.name);
Raymond Toy 2015/02/11 21:31:18 I didn't check, but it would be nice if you kind o
hongchan 2015/02/12 18:38:00 Good idea. Done.
284 }
285 };
286
287 // Expect not to throw an exception.
288 Should.notThrow = function (func) {
289 try {
290 func();
291 testPassed('Error was not thrown as expected.');
292 } catch (e) {
293 var content = Expect.getFunctionContent(func);
294 testFailed('Error was not expected but got ' + e.name + ' from ' + conte nt);
295 }
296 };
297
298
299 // Expect the channelData to have a certain value.
Raymond Toy 2015/02/11 21:31:18 Expand this comment to say that every value in cha
hongchan 2015/02/12 18:38:00 Done.
300 Should.haveValueInChannel = function (value, channelData) {
301 var flag = true;
Raymond Toy 2015/02/11 21:31:18 s/flag/isConstant/ or some other more meaningful n
hongchan 2015/02/12 18:38:00 Done.
302 for (var i = 0; i < channelData.length; i++) {
303 if (channelData[i] !== value) {
304 flag = false;
305 break;
306 }
307 }
308 if (flag)
309 testPassed('ChannelData has expected values.');
Raymond Toy 2015/02/11 21:31:18 Include the expected value in message.
hongchan 2015/02/12 18:38:00 Done.
310 else
311 testFailed('ChannelData has invalid values (expected ' + value + ')');
Raymond Toy 2015/02/11 21:31:18 Might be useful for debugging to include the index
hongchan 2015/02/12 18:38:00 Yes, I will come up with a way of doing this.
312 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698