OLD | NEW |
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="resources/compatibility.js"></script> | 4 <script src="resources/compatibility.js"></script> |
5 <script src="../resources/js-test.js"></script> | 5 <script src="../resources/js-test.js"></script> |
6 </head> | 6 </head> |
7 | 7 |
8 <body> | 8 <body> |
9 <script> | 9 <script> |
10 description("Test exceptional arguments for AudioParam timeline events"); | 10 description("Test exceptional arguments for AudioParam timeline events"); |
11 | 11 |
12 var context; | 12 var context; |
13 var gain; | 13 var gain; |
14 | 14 |
15 // For these values, AudioParam methods should throw an error because they
are invalid; only | 15 // For these values, AudioParam methods should throw an error because they
are invalid; only |
16 // finite values are allowed. | 16 // finite values are allowed. |
17 var targetValues = [Infinity, -Infinity, NaN]; | 17 var targetValues = [Infinity, -Infinity, NaN]; |
18 | 18 |
19 // For these time values, AudioParam methods should throw an error because
they are | 19 // For these time values, AudioParam methods should throw an error because
they are |
20 // invalid. Only finite non-negative values are allowed for any time or ti
me-like parameter. | 20 // invalid. Only finite non-negative values are allowed for any time or ti
me-like parameter. |
21 var timeValues = [-1, Infinity, -Infinity, NaN]; | 21 var timeValues = [-1, Infinity, -Infinity, NaN]; |
22 | 22 |
| 23 // For these duration values, AudioParam methods should throw an error bec
ause they are |
| 24 // invalid. Only finite values are allowed for any duration parameter. |
| 25 var durationValues = [-1, Infinity, -Infinity, NaN, 0]; |
| 26 |
23 // Just an array for use by setValueCurveAtTime. The length and contents o
f the array are not | 27 // Just an array for use by setValueCurveAtTime. The length and contents o
f the array are not |
24 // important. | 28 // important. |
25 var curve = new Float32Array(10); | 29 var curve = new Float32Array(10); |
26 | 30 |
27 function runTest() { | 31 function runTest() { |
28 if (window.testRunner) { | 32 if (window.testRunner) { |
29 testRunner.dumpAsText(); | 33 testRunner.dumpAsText(); |
30 testRunner.waitUntilDone(); | 34 testRunner.waitUntilDone(); |
31 } | 35 } |
32 window.jsTestIsAsync = true; | 36 window.jsTestIsAsync = true; |
33 | 37 |
34 context = new AudioContext(); | 38 context = new AudioContext(); |
35 gain = context.createGain(); | 39 gain = context.createGain(); |
36 | 40 |
37 // Test the value parameter | 41 // Test the value parameter |
38 for (value in targetValues) { | 42 for (value of targetValues) { |
39 shouldThrow("gain.gain.setValueAtTime(" + targetValues[value] + ", 1)"
); | 43 shouldThrow("gain.gain.setValueAtTime(" + value + ", 1)"); |
40 shouldThrow("gain.gain.linearRampToValueAtTime(" + targetValues[value]
+ ", 1)"); | 44 shouldThrow("gain.gain.linearRampToValueAtTime(" + value + ", 1)"); |
41 shouldThrow("gain.gain.exponentialRampToValueAtTime(" + targetValues[v
alue] + ", 1)"); | 45 shouldThrow("gain.gain.exponentialRampToValueAtTime(" + value + ", 1)"
); |
42 shouldThrow("gain.gain.setTargetAtTime(" + targetValues[value] + ", 1,
1)"); | 46 shouldThrow("gain.gain.setTargetAtTime(" + value + ", 1, 1)"); |
43 } | 47 } |
44 | 48 |
45 // Test the time parameter | 49 // Test the time parameter |
46 for (startTime in timeValues) { | 50 for (startTime of timeValues) { |
47 shouldThrow("gain.gain.setValueAtTime(1, " + timeValues[startTime] + "
)"); | 51 shouldThrow("gain.gain.setValueAtTime(1, " + startTime + ")"); |
48 shouldThrow("gain.gain.linearRampToValueAtTime(1, " + timeValues[start
Time] + ")"); | 52 shouldThrow("gain.gain.linearRampToValueAtTime(1, " + startTime + ")")
; |
49 shouldThrow("gain.gain.exponentialRampToValueAtTime(1, " + timeValues[
startTime] + ")"); | 53 shouldThrow("gain.gain.exponentialRampToValueAtTime(1, " + startTime +
")"); |
50 shouldThrow("gain.gain.setTargetAtTime(1, " + timeValues[startTime] +
", 1)"); | 54 shouldThrow("gain.gain.setTargetAtTime(1, " + startTime + ", 1)"); |
51 } | 55 } |
52 | 56 |
53 // Test time constant | 57 // Test time constant |
54 for (value in targetValues) { | 58 for (value of targetValues) { |
55 shouldThrow("gain.gain.setTargetAtTime(1, 1, " + targetValues[value] +
")"); | 59 shouldThrow("gain.gain.setTargetAtTime(1, 1, " + value + ")"); |
56 } | 60 } |
57 | 61 |
58 // Test startTime and duration for setValueCurveAtTime | 62 // Test startTime and duration for setValueCurveAtTime |
59 for (startTime in timeValues) { | 63 for (startTime of timeValues) { |
60 shouldThrow("gain.gain.setValueCurveAtTime(curve, " + timeValues[start
Time] + ", 1)"); | 64 shouldThrow("gain.gain.setValueCurveAtTime(curve, " + startTime + ", 1
)"); |
61 shouldThrow("gain.gain.setValueCurveAtTime(curve, 1, " + timeValues[du
ration] + ")"); | |
62 } | 65 } |
63 | 66 for (duration of durationValues) { |
64 shouldThrow("gain.gain.setValueCurveAtTime(curve, 1, 0)"); | 67 shouldThrow("gain.gain.setValueCurveAtTime(curve, 1, " + duration + ")
"); |
| 68 } |
65 | 69 |
66 finishJSTest(); | 70 finishJSTest(); |
67 } | 71 } |
68 | 72 |
69 runTest(); | 73 runTest(); |
70 successfullyParsed = true; | 74 successfullyParsed = true; |
71 </script> | 75 </script> |
72 </body> | 76 </body> |
73 </html> | 77 </html> |
OLD | NEW |