OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 | |
4 <head> | 3 <head> |
| 4 <title> |
| 5 pannernode-basic.html |
| 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-util.js"></script> | 9 <script src="../resources/audit-util.js"></script> |
8 <script src="../resources/audit.js"></script> | 10 <script src="../resources/audit.js"></script> |
9 </head> | 11 </head> |
| 12 <body> |
| 13 <script id="layout-test-code"> |
| 14 let context; |
| 15 let panner; |
| 16 let audit = Audit.createTaskRunner(); |
10 | 17 |
11 <body> | 18 audit.define('initialize', (task, should) => { |
12 <script> | |
13 var context; | |
14 var panner; | |
15 var audit = Audit.createTaskRunner(); | |
16 | |
17 audit.define("initialize", (task, should) => { | |
18 should(() => { | 19 should(() => { |
19 context = new AudioContext(); | 20 context = new AudioContext(); |
20 panner = context.createPanner(); | 21 panner = context.createPanner(); |
21 }, "Initialize context and panner") | 22 }, 'Initialize context and panner').notThrow(); |
22 .notThrow(); | |
23 task.done(); | 23 task.done(); |
24 }); | 24 }); |
25 | 25 |
26 audit.define("basic", (task, should) => { | 26 audit.define('basic', (task, should) => { |
27 should(panner.numberOfInputs, "panner.numberOfInputs") | 27 should(panner.numberOfInputs, 'panner.numberOfInputs').beEqualTo(1); |
28 .beEqualTo(1); | 28 should(panner.numberOfOutputs, 'panner.numberOfOutputs').beEqualTo(1); |
29 should(panner.numberOfOutputs, "panner.numberOfOutputs") | 29 should(panner.refDistance, 'panner.refDistance').beEqualTo(1); |
30 .beEqualTo(1); | |
31 should(panner.refDistance, "panner.refDistance") | |
32 .beEqualTo(1); | |
33 panner.refDistance = 270.5; | 30 panner.refDistance = 270.5; |
34 should(panner.refDistance, "panner.refDistance = 270.5") | 31 should(panner.refDistance, 'panner.refDistance = 270.5') |
35 .beEqualTo(270.5); | 32 .beEqualTo(270.5); |
36 should(panner.maxDistance, "panner.maxDistance") | 33 should(panner.maxDistance, 'panner.maxDistance').beEqualTo(10000); |
37 .beEqualTo(10000); | |
38 panner.maxDistance = 100.5; | 34 panner.maxDistance = 100.5; |
39 should(panner.maxDistance, "panner.maxDistance = 100.5") | 35 should(panner.maxDistance, 'panner.maxDistance = 100.5') |
40 .beEqualTo(100.5); | 36 .beEqualTo(100.5); |
41 should(panner.rolloffFactor, "panner.rolloffFactor") | 37 should(panner.rolloffFactor, 'panner.rolloffFactor').beEqualTo(1); |
42 .beEqualTo(1); | |
43 panner.rolloffFactor = 0.75; | 38 panner.rolloffFactor = 0.75; |
44 should(panner.rolloffFactor, "panner.rolloffFactor = 0.75") | 39 should(panner.rolloffFactor, 'panner.rolloffFactor = 0.75') |
45 .beEqualTo(0.75); | 40 .beEqualTo(0.75); |
46 should(panner.coneInnerAngle, "panner.coneInnerAngle") | 41 should(panner.coneInnerAngle, 'panner.coneInnerAngle').beEqualTo(360); |
47 .beEqualTo(360); | |
48 panner.coneInnerAngle = 240.5; | 42 panner.coneInnerAngle = 240.5; |
49 should(panner.coneInnerAngle, "panner.coneInnerAngle = 240.5") | 43 should(panner.coneInnerAngle, 'panner.coneInnerAngle = 240.5') |
50 .beEqualTo(240.5); | 44 .beEqualTo(240.5); |
51 should(panner.coneOuterAngle, "panner.coneOuterAngle") | 45 should(panner.coneOuterAngle, 'panner.coneOuterAngle').beEqualTo(360); |
52 .beEqualTo(360); | |
53 panner.coneOuterAngle = 166.5; | 46 panner.coneOuterAngle = 166.5; |
54 should(panner.coneOuterAngle, "panner.coneOuterAngle = 166.5") | 47 should(panner.coneOuterAngle, 'panner.coneOuterAngle = 166.5') |
55 .beEqualTo(166.5); | 48 .beEqualTo(166.5); |
56 should(panner.coneOuterGain, "panner.coneOuterGain") | 49 should(panner.coneOuterGain, 'panner.coneOuterGain').beEqualTo(0); |
57 .beEqualTo(0); | |
58 panner.coneOuterGain = 0.25; | 50 panner.coneOuterGain = 0.25; |
59 should(panner.coneOuterGain, "panner.coneOuterGain = 0.25") | 51 should(panner.coneOuterGain, 'panner.coneOuterGain = 0.25') |
60 .beEqualTo(0.25); | 52 .beEqualTo(0.25); |
61 should(panner.panningModel, "panner.panningModel") | 53 should(panner.panningModel, 'panner.panningModel') |
62 .beEqualTo("equalpower"); | 54 .beEqualTo('equalpower'); |
63 should(panner.distanceModel) | 55 should(panner.distanceModel) |
64 .beEqualTo("inverse", "panner.distanceModel"); | 56 .beEqualTo('inverse', 'panner.distanceModel'); |
65 | 57 |
66 should(panner.positionX.value, "panner.positionX") | 58 should(panner.positionX.value, 'panner.positionX').beEqualTo(0); |
67 .beEqualTo(0); | 59 should(panner.positionY.value, 'panner.positionY').beEqualTo(0); |
68 should(panner.positionY.value, "panner.positionY") | 60 should(panner.positionZ.value, 'panner.positionZ').beEqualTo(0); |
69 .beEqualTo(0); | 61 should(panner.orientationX.value, 'panner.orientationX').beEqualTo(1); |
70 should(panner.positionZ.value, "panner.positionZ") | 62 should(panner.orientationY.value, 'panner.orientationY').beEqualTo(0); |
71 .beEqualTo(0); | 63 should(panner.orientationZ.value, 'panner.orientationZ').beEqualTo(0); |
72 should(panner.orientationX.value, "panner.orientationX") | |
73 .beEqualTo(1); | |
74 should(panner.orientationY.value, "panner.orientationY") | |
75 .beEqualTo(0); | |
76 should(panner.orientationZ.value, "panner.orientationZ") | |
77 .beEqualTo(0); | |
78 | 64 |
79 task.done(); | 65 task.done(); |
80 }); | 66 }); |
81 | 67 |
82 audit.define("listener", (task, should) => { | 68 audit.define('listener', (task, should) => { |
83 should(context.listener.positionX.value, "listener.positionX") | 69 should(context.listener.positionX.value, 'listener.positionX') |
84 .beEqualTo(0); | 70 .beEqualTo(0); |
85 should(context.listener.positionY.value, "listener.positionY") | 71 should(context.listener.positionY.value, 'listener.positionY') |
86 .beEqualTo(0); | 72 .beEqualTo(0); |
87 should(context.listener.positionZ.value, "listener.positionZ") | 73 should(context.listener.positionZ.value, 'listener.positionZ') |
88 .beEqualTo(0); | 74 .beEqualTo(0); |
89 should(context.listener.forwardX.value, "listener.forwardX") | 75 should(context.listener.forwardX.value, 'listener.forwardX') |
90 .beEqualTo(0); | 76 .beEqualTo(0); |
91 should(context.listener.forwardY.value, "listener.forwardY") | 77 should(context.listener.forwardY.value, 'listener.forwardY') |
92 .beEqualTo(0); | 78 .beEqualTo(0); |
93 should(context.listener.forwardZ.value, "listener.forwardZ") | 79 should(context.listener.forwardZ.value, 'listener.forwardZ') |
94 .beEqualTo(-1); | 80 .beEqualTo(-1); |
95 should(context.listener.upX.value, "listener.upX") | 81 should(context.listener.upX.value, 'listener.upX').beEqualTo(0); |
96 .beEqualTo(0); | 82 should(context.listener.upY.value, 'listener.upY').beEqualTo(1); |
97 should(context.listener.upY.value, "listener.upY") | 83 should(context.listener.upZ.value, 'listener.upZ').beEqualTo(0); |
98 .beEqualTo(1); | |
99 should(context.listener.upZ.value, "listener.upZ") | |
100 .beEqualTo(0); | |
101 | 84 |
102 task.done(); | 85 task.done(); |
103 }); | 86 }); |
104 | 87 |
105 audit.define("panning models", (task, should) => { | 88 audit.define('panning models', (task, should) => { |
106 // Check that the .panningModel attribute can be set to all legal values
. | 89 // Check that the .panningModel attribute can be set to all legal |
107 var panningModels = ["equalpower", "HRTF"]; | 90 // values. |
| 91 let panningModels = ['equalpower', 'HRTF']; |
108 | 92 |
109 for (var i = 0; i < panningModels.length; ++i) { | 93 for (let i = 0; i < panningModels.length; ++i) { |
110 should(function () { | 94 should(function() { |
111 panner.panningModel = panningModels[i]; | 95 panner.panningModel = panningModels[i]; |
112 }, | 96 }, 'Set panner.panningModel = "' + panningModels[i] + '"').notThrow(); |
113 'Set panner.panningModel = "' + panningModels[i] + '"') | |
114 .notThrow(); | |
115 | 97 |
116 should(panner.panningModel, | 98 should( |
| 99 panner.panningModel, |
117 'panner.panningModel = "' + panningModels[i] + '"') | 100 'panner.panningModel = "' + panningModels[i] + '"') |
118 .beEqualTo(panningModels[i]); | 101 .beEqualTo(panningModels[i]); |
119 } | 102 } |
120 | 103 |
121 should(function () { | 104 should(function() { |
122 panner.panningModel = "invalid"; | 105 panner.panningModel = 'invalid'; |
123 }, | 106 }, 'panner.panningModel = "invalid"').notThrow(); |
124 'panner.panningModel = "invalid"') | |
125 .notThrow(); | |
126 | 107 |
127 should(panner.panningModel, | 108 should(panner.panningModel, 'panner.panningModel after invalid setter') |
128 "panner.panningModel after invalid setter") | 109 .beEqualTo('HRTF'); |
129 .beEqualTo("HRTF"); | |
130 | 110 |
131 // Check that numerical values are no longer supported. We shouldn't th
row and the value | 111 // Check that numerical values are no longer supported. We shouldn't |
132 // shouldn't be changed. | 112 // throw and the value shouldn't be changed. |
133 panner.panningModel = "HRTF"; | 113 panner.panningModel = 'HRTF'; |
134 should(function () { | 114 should(function() { |
135 panner.panningModel = 1; | 115 panner.panningModel = 1; |
136 }, 'panner.panningModel = 1').notThrow(); | 116 }, 'panner.panningModel = 1').notThrow(); |
137 | 117 |
138 should(panner.panningModel, 'panner.panningModel') | 118 should(panner.panningModel, 'panner.panningModel').beEqualTo('HRTF'); |
139 .beEqualTo("HRTF"); | |
140 | 119 |
141 task.done(); | 120 task.done(); |
142 }); | 121 }); |
143 | 122 |
144 audit.define("distance models", (task, should) => { | 123 audit.define('distance models', (task, should) => { |
145 // Check that the .panningModel attribute can be set to all legal values
. | 124 // Check that the .panningModel attribute can be set to all legal |
146 var distanceModels = ["linear", "inverse", "exponential"]; | 125 // values. |
| 126 let distanceModels = ['linear', 'inverse', 'exponential']; |
147 | 127 |
148 for (var i = 0; i < distanceModels.length; ++i) { | 128 for (let i = 0; i < distanceModels.length; ++i) { |
| 129 should(function() { |
| 130 panner.distanceModel = distanceModels[i]; |
| 131 }, 'panner.distanceModel = "' + distanceModels[i] + '"').notThrow(); |
| 132 |
149 should( | 133 should( |
150 function () { | 134 panner.distanceModel, |
151 panner.distanceModel = distanceModels[i]; | |
152 }, | |
153 'panner.distanceModel = "' + distanceModels[i] + '"') | 135 'panner.distanceModel = "' + distanceModels[i] + '"') |
154 .notThrow(); | 136 .beEqualTo(distanceModels[i]); |
155 | |
156 should(panner.distanceModel, | |
157 'panner.distanceModel = "' + distanceModels[i] + '"') | |
158 .beEqualTo(distanceModels[i]); | |
159 } | 137 } |
160 | 138 |
161 should(function () { | 139 should(function() { |
162 panner.distanceModel = "invalid"; | 140 panner.distanceModel = 'invalid'; |
163 }, | 141 }, 'panner.distanceModel = "invalid"').notThrow(); |
164 'panner.distanceModel = "invalid"') | |
165 .notThrow(); | |
166 | 142 |
167 should(panner.distanceModel, "panner.distanceModel") | 143 should(panner.distanceModel, 'panner.distanceModel') |
168 .beEqualTo("exponential"); | 144 .beEqualTo('exponential'); |
169 | 145 |
170 task.done(); | 146 task.done(); |
171 }); | 147 }); |
172 | 148 |
173 audit.run(); | 149 audit.run(); |
174 </script> | 150 </script> |
175 | |
176 </body> | 151 </body> |
177 | |
178 </html> | 152 </html> |
OLD | NEW |