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

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/AudioParam/audioparam-processing.html

Issue 2895963003: Apply layout-test-tidy to LayoutTests/webaudio (Closed)
Patch Set: Created 3 years, 7 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 <!doctype html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>Test Processing Of AudioParams of Disconnected AudioNodes</title> 4 <title>
5 Test Processing Of AudioParams of Disconnected AudioNodes
6 </title>
5 <script src="../../resources/testharness.js"></script> 7 <script src="../../resources/testharness.js"></script>
6 <script src="../../resources/testharnessreport.js"></script> 8 <script src="../../resources/testharnessreport.js"></script>
7 <script src="../resources/audit.js"></script> 9 <script src="../resources/audit.js"></script>
8 </head> 10 </head>
9
10 <body> 11 <body>
11 <script> 12 <script id="layout-test-code">
12 // Arbitrary sample rate. 13 // Arbitrary sample rate.
13 var sampleRate = 8000; 14 let sampleRate = 8000;
14 15
15 // Arbitrary number of frames for the test, except it must be greater than 16 // Arbitrary number of frames for the test, except it must be greater than
16 // |automationEndFrame|. 17 // |automationEndFrame|.
17 var renderFrames = 1024; 18 let renderFrames = 1024;
18 19
19 // The linear ramp automation ends at this frame. Arbitrary, except it 20 // The linear ramp automation ends at this frame. Arbitrary, except it
20 // must be strictly less than the render length. 21 // must be strictly less than the render length.
21 var automationEndFrame = 128; 22 let automationEndFrame = 128;
22 23
23 var audit = Audit.createTaskRunner(); 24 let audit = Audit.createTaskRunner();
24 25
25 // There should be a test for every single node which has an AudioParam. 26 // There should be a test for every single node which has an AudioParam.
26 // Source nodes are not included in this because the AudioParams for the 27 // Source nodes are not included in this because the AudioParams for the
27 // source nodes only process when the node has been started. 28 // source nodes only process when the node has been started.
28 29
29 audit.define("BiquadFilterNode", (task, should) => { 30 audit.define('BiquadFilterNode', (task, should) => {
30 var nodeName = "BiquadFilterNode" 31 let nodeName = 'BiquadFilterNode'
31 Promise.all([ 32 Promise
32 testParamAutomation(should, { 33 .all([
33 nodeName: nodeName, 34 testParamAutomation(should, {
34 paramName: "Q", 35 nodeName: nodeName,
35 initialValue: 2, 36 paramName: 'Q',
36 rampFinalValue: 5 37 initialValue: 2,
37 }), 38 rampFinalValue: 5
38 testParamAutomation(should, { 39 }),
39 nodeName: nodeName, 40 testParamAutomation(should, {
40 paramName: "detune", 41 nodeName: nodeName,
41 initialValue: 1, 42 paramName: 'detune',
42 rampFinalValue: 0.5 43 initialValue: 1,
43 }), 44 rampFinalValue: 0.5
44 testParamAutomation(should, { 45 }),
45 nodeName: nodeName, 46 testParamAutomation(should, {
46 paramName: "frequency", 47 nodeName: nodeName,
47 initialValue: 1000, 48 paramName: 'frequency',
48 rampFinalValue: 100 49 initialValue: 1000,
49 }), 50 rampFinalValue: 100
50 testParamAutomation(should, { 51 }),
51 nodeName: nodeName, 52 testParamAutomation(should, {
52 paramName: "gain", 53 nodeName: nodeName,
53 initialValue: -3, 54 paramName: 'gain',
54 rampFinalValue: 3 55 initialValue: -3,
55 }), 56 rampFinalValue: 3
56 ]).then(() => task.done()); 57 }),
57 }); 58 ])
58 59 .then(() => task.done());
59 audit.define("DelayNode", (task, should) => { 60 });
61
62 audit.define('DelayNode', (task, should) => {
60 testParamAutomation(should, { 63 testParamAutomation(should, {
61 nodeName: "DelayNode", 64 nodeName: 'DelayNode',
62 paramName: "delayTime", 65 paramName: 'delayTime',
63 initialValue: 0.25, 66 initialValue: 0.25,
64 rampFinalValue: 0.5 67 rampFinalValue: 0.5
65 }).then(() => task.done()); 68 }).then(() => task.done());
66 }); 69 });
67 70
68 audit.define("DynamicsCompressorNode", (task, should) => { 71 audit.define('DynamicsCompressorNode', (task, should) => {
69 var nodeName = "DynamicsCompressorNode"; 72 let nodeName = 'DynamicsCompressorNode';
70 Promise.all([ 73 Promise
71 testParamAutomation(should, { 74 .all([
72 nodeName: nodeName, 75 testParamAutomation(should, {
73 paramName: "attack", 76 nodeName: nodeName,
74 initialValue: 0.1, 77 paramName: 'attack',
75 rampFinalValue: 0.5 78 initialValue: 0.1,
76 }), 79 rampFinalValue: 0.5
77 testParamAutomation(should, { 80 }),
78 nodeName: nodeName, 81 testParamAutomation(should, {
79 paramName: "knee", 82 nodeName: nodeName,
80 initialValue: 0, 83 paramName: 'knee',
81 rampFinalValue: 25 84 initialValue: 0,
82 }), 85 rampFinalValue: 25
83 testParamAutomation(should, { 86 }),
84 nodeName: nodeName, 87 testParamAutomation(should, {
85 paramName: "ratio", 88 nodeName: nodeName,
86 initialValue: 1, 89 paramName: 'ratio',
87 rampFinalValue: 15 90 initialValue: 1,
88 }), 91 rampFinalValue: 15
89 testParamAutomation(should, { 92 }),
90 nodeName: nodeName, 93 testParamAutomation(should, {
91 paramName: "release", 94 nodeName: nodeName,
92 initialValue: 0, 95 paramName: 'release',
93 rampFinalValue: 0.75 96 initialValue: 0,
94 }), 97 rampFinalValue: 0.75
95 testParamAutomation(should, { 98 }),
96 nodeName: nodeName, 99 testParamAutomation(should, {
97 paramName: "threshold", 100 nodeName: nodeName,
98 initialValue: -50, 101 paramName: 'threshold',
99 rampFinalValue: -10 102 initialValue: -50,
100 }) 103 rampFinalValue: -10
101 ]).then(() => task.done()); 104 })
102 }); 105 ])
103 106 .then(() => task.done());
104 audit.define("GainNode", (task, should) => { 107 });
108
109 audit.define('GainNode', (task, should) => {
105 testParamAutomation(should, { 110 testParamAutomation(should, {
106 nodeName: "GainNode", 111 nodeName: 'GainNode',
107 paramName: "gain", 112 paramName: 'gain',
108 initialValue: 1, 113 initialValue: 1,
109 rampFinalValue: 0.5 114 rampFinalValue: 0.5
110 }).then(() => task.done()); 115 }).then(() => task.done());
111 }); 116 });
112 117
113 audit.define("PannerNode", (task, should) => { 118 audit.define('PannerNode', (task, should) => {
114 var nodeName = "PannerNode"; 119 let nodeName = 'PannerNode';
115 Promise.all([ 120 Promise
116 testParamAutomation(should, { 121 .all([
117 nodeName: nodeName, 122 testParamAutomation(should, {
118 paramName: "positionX", 123 nodeName: nodeName,
119 initialValue: 0.1, 124 paramName: 'positionX',
120 rampFinalValue: 0.5 125 initialValue: 0.1,
121 }), 126 rampFinalValue: 0.5
122 testParamAutomation(should, { 127 }),
123 nodeName: nodeName, 128 testParamAutomation(should, {
124 paramName: "positionY", 129 nodeName: nodeName,
125 initialValue: 2, 130 paramName: 'positionY',
126 rampFinalValue: 30 131 initialValue: 2,
127 }), 132 rampFinalValue: 30
128 testParamAutomation(should, { 133 }),
129 nodeName: nodeName, 134 testParamAutomation(should, {
130 paramName: "positionZ", 135 nodeName: nodeName,
131 initialValue: 1, 136 paramName: 'positionZ',
132 rampFinalValue: 15 137 initialValue: 1,
133 }), 138 rampFinalValue: 15
134 testParamAutomation(should, { 139 }),
135 nodeName: nodeName, 140 testParamAutomation(should, {
136 paramName: "orientationX", 141 nodeName: nodeName,
137 initialValue: 0.1, 142 paramName: 'orientationX',
138 rampFinalValue: 0.5 143 initialValue: 0.1,
139 }), 144 rampFinalValue: 0.5
140 testParamAutomation(should, { 145 }),
141 nodeName: nodeName, 146 testParamAutomation(should, {
142 paramName: "orientationY", 147 nodeName: nodeName,
143 initialValue: 2, 148 paramName: 'orientationY',
144 rampFinalValue: 30 149 initialValue: 2,
145 }), 150 rampFinalValue: 30
146 testParamAutomation(should, { 151 }),
147 nodeName: nodeName, 152 testParamAutomation(should, {
148 paramName: "orientationZ", 153 nodeName: nodeName,
149 initialValue: 1, 154 paramName: 'orientationZ',
150 rampFinalValue: 15 155 initialValue: 1,
151 }), 156 rampFinalValue: 15
152 ]).then(() => task.done()); 157 }),
153 }); 158 ])
154 159 .then(() => task.done());
155 audit.define("StereoPannerNode", (task, should) => { 160 });
161
162 audit.define('StereoPannerNode', (task, should) => {
156 testParamAutomation(should, { 163 testParamAutomation(should, {
157 nodeName: "StereoPannerNode", 164 nodeName: 'StereoPannerNode',
158 paramName: "pan", 165 paramName: 'pan',
159 initialValue: 1, 166 initialValue: 1,
160 rampFinalValue: 0.5 167 rampFinalValue: 0.5
161 }).then(() => task.done()); 168 }).then(() => task.done());
162 }); 169 });
163 170
164 audit.define("AudioListener", (task, should) => { 171 audit.define('AudioListener', (task, should) => {
165 Promise.all([ 172 Promise
166 testAudioListener(should, { 173 .all([
167 paramName: "positionX", 174 testAudioListener(should, {
168 initialValue: 1, 175 paramName: 'positionX',
169 rampFinalValue: 100 176 initialValue: 1,
170 }), 177 rampFinalValue: 100
171 testAudioListener(should, { 178 }),
172 paramName: "positionY", 179 testAudioListener(should, {
173 initialValue: 1, 180 paramName: 'positionY',
174 rampFinalValue: 200 181 initialValue: 1,
175 }), 182 rampFinalValue: 200
176 testAudioListener(should, { 183 }),
177 paramName: "positionZ", 184 testAudioListener(should, {
178 initialValue: 1, 185 paramName: 'positionZ',
179 rampFinalValue: 300 186 initialValue: 1,
180 }), 187 rampFinalValue: 300
181 testAudioListener(should, { 188 }),
182 paramName: "forwardX", 189 testAudioListener(should, {
183 initialValue: 1, 190 paramName: 'forwardX',
184 rampFinalValue: -100 191 initialValue: 1,
185 }), 192 rampFinalValue: -100
186 testAudioListener(should, { 193 }),
187 paramName: "forwardY", 194 testAudioListener(should, {
188 initialValue: 1, 195 paramName: 'forwardY',
189 rampFinalValue: -200 196 initialValue: 1,
190 }), 197 rampFinalValue: -200
191 testAudioListener(should, { 198 }),
192 paramName: "forwardZ", 199 testAudioListener(should, {
193 initialValue: 1, 200 paramName: 'forwardZ',
194 rampFinalValue: -300 201 initialValue: 1,
195 }), 202 rampFinalValue: -300
196 testAudioListener(should, { 203 }),
197 paramName: "upX", 204 testAudioListener(
198 initialValue: 1, 205 should,
199 rampFinalValue: 99 206 {paramName: 'upX', initialValue: 1, rampFinalValue: 99}),
200 }), 207 testAudioListener(
201 testAudioListener(should, { 208 should,
202 paramName: "upY", 209 {paramName: 'upY', initialValue: 1, rampFinalValue: 42}),
203 initialValue: 1, 210 testAudioListener(
204 rampFinalValue: 42 211 should,
205 }), 212 {paramName: 'upZ', initialValue: 1, rampFinalValue: 137}),
206 testAudioListener(should, { 213 ])
207 paramName: "upZ", 214 .then(() => task.done());
208 initialValue: 1,
209 rampFinalValue: 137
210 }),
211 ]).then(() => task.done());
212 }); 215 });
213 216
214 // Run test of automation processing. |options| is a dictionary that 217 // Run test of automation processing. |options| is a dictionary that
215 // describes the node to test, the AudioParams to be tested and the values 218 // describes the node to test, the AudioParams to be tested and the values
216 // for the AudioParam. The members of the dictionary are: 219 // for the AudioParam. The members of the dictionary are:
217 // 220 //
218 // nodeName - name of the node (constructor name) 221 // nodeName - name of the node (constructor name)
219 // paramName - name of the AudioParam to be tested 222 // paramName - name of the AudioParam to be tested
220 // initialValue - starting value for linear ramp 223 // initialValue - starting value for linear ramp
221 // rampFinalValue - finale value for linear ramp 224 // rampFinalValue - finale value for linear ramp
222 // 225 //
223 // The test is considered to have succeeded if the |.value| of the AudioPa ram 226 // The test is considered to have succeeded if the |.value| of the
224 // is the final value. 227 // AudioParam is the final value.
225 // 228 //
226 // A simple graph is created containing the node to be tested, connected 229 // A simple graph is created containing the node to be tested, connected
227 // to the destination. A linear ramp automation is scheduled for the 230 // to the destination. A linear ramp automation is scheduled for the
228 // specified AudioParam, starting and ending at the values given. 231 // specified AudioParam, starting and ending at the values given.
229 // 232 //
230 // Processing is started and after some number of frames, the |.value| of 233 // Processing is started and after some number of frames, the |.value| of
231 // the AudioParam is obtained and compared against the final value. These 234 // the AudioParam is obtained and compared against the final value. These
232 // should match exactly. 235 // should match exactly.
233 function testParamAutomation(should, options) { 236 function testParamAutomation(should, options) {
234 var context = new OfflineAudioContext(1, renderFrames, sampleRate); 237 let context = new OfflineAudioContext(1, renderFrames, sampleRate);
235 238
236 // Create the node to be tested 239 // Create the node to be tested
237 var node = new window[options.nodeName](context); 240 let node = new window[options.nodeName](context);
238 node.connect(context.destination); 241 node.connect(context.destination);
239 242
240 // A linear ramp starting at frame 0 to frame |automationEndFrame| is 243 // A linear ramp starting at frame 0 to frame |automationEndFrame| is
241 // used for the test. This value is fairly arbitrary, but it should be 244 // used for the test. This value is fairly arbitrary, but it should be
242 // less than the total render frames. 245 // less than the total render frames.
243 246
244 node[options.paramName].setValueAtTime(options.initialValue, 0); 247 node[options.paramName].setValueAtTime(options.initialValue, 0);
245 node[options.paramName].linearRampToValueAtTime(options.rampFinalValue, 248 node[options.paramName].linearRampToValueAtTime(
246 automationEndFrame / context.sampleRate); 249 options.rampFinalValue, automationEndFrame / context.sampleRate);
247 250
248 return context.startRendering() 251 return context.startRendering().then(function(resultBuffer) {
249 .then(function (resultBuffer) { 252 // Sanity check: the given ramp final value must not be the default
250 // Sanity check: the given ramp final value must not be the default 253 // value, otherwise we can't easily tell if the automation was
251 // value, otherwise we can't easily tell if the automation was 254 // actually run.
252 // actually run. 255 should(
253 should(options.rampFinalValue, 256 options.rampFinalValue,
254 options.nodeName + "." + options.paramName + " ramp final value") 257 options.nodeName + '.' + options.paramName + ' ramp final value')
255 .notBeEqualTo(node[options.paramName].defaultValue); 258 .notBeEqualTo(node[options.paramName].defaultValue);
256 259
257 // The actual AudioParam value should be the rampe final value. 260 // The actual AudioParam value should be the rampe final value.
258 should(node[options.paramName].value, 261 should(
259 options.nodeName + "." + options.paramName + ".value") 262 node[options.paramName].value,
263 options.nodeName + '.' + options.paramName + '.value')
260 .beEqualTo(options.rampFinalValue); 264 .beEqualTo(options.rampFinalValue);
261 }); 265 });
262 } 266 }
263 267
264 function testAudioListener(should, options) { 268 function testAudioListener(should, options) {
265 var context = new OfflineAudioContext(1, renderFrames, sampleRate); 269 let context = new OfflineAudioContext(1, renderFrames, sampleRate);
266 270
267 // Create the node to be tested 271 // Create the node to be tested
268 var node = new PannerNode(context); 272 let node = new PannerNode(context);
269 node.connect(context.destination); 273 node.connect(context.destination);
270 274
271 // A linear ramp starting at frame 0 to frame |automationEndFrame| is 275 // A linear ramp starting at frame 0 to frame |automationEndFrame| is
272 // used for the test. This value is fairly arbitrary, but it should be 276 // used for the test. This value is fairly arbitrary, but it should be
273 // less than the total render frames. 277 // less than the total render frames.
274 278
275 context.listener[options.paramName].setValueAtTime(options.initialValue, 0); 279 context.listener[options.paramName].setValueAtTime(
276 context.listener[options.paramName].linearRampToValueAtTime(options.ramp FinalValue, 280 options.initialValue, 0);
277 automationEndFrame / context.sampleRate); 281 context.listener[options.paramName].linearRampToValueAtTime(
282 options.rampFinalValue, automationEndFrame / context.sampleRate);
278 283
279 return context.startRendering() 284 return context.startRendering().then(function(resultBuffer) {
280 .then(function (resultBuffer) { 285 // Sanity check: the given ramp final value must not be the default
281 // Sanity check: the given ramp final value must not be the default 286 // value, otherwise we can't easily tell if the automation was
282 // value, otherwise we can't easily tell if the automation was 287 // actually run.
283 // actually run. 288 should(
284 should(options.rampFinalValue, 289 options.rampFinalValue,
285 "AudioListener." + options.paramName + " ramp final value") 290 'AudioListener.' + options.paramName + ' ramp final value')
286 .notBeEqualTo(context.listener[options.paramName].defaultValue); 291 .notBeEqualTo(context.listener[options.paramName].defaultValue);
287 292
288 // The actual AudioParam value should be the rampe final value. 293 // The actual AudioParam value should be the rampe final value.
289 should(context.listener[options.paramName].value, 294 should(
290 "AudioListener." + options.paramName + ".value") 295 context.listener[options.paramName].value,
296 'AudioListener.' + options.paramName + '.value')
291 .beEqualTo(options.rampFinalValue); 297 .beEqualTo(options.rampFinalValue);
292 }); 298 });
293 } 299 }
294 300
295 audit.run(); 301 audit.run();
296 </script> 302 </script>
297 </body> 303 </body>
298 </html> 304 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698