OLD | NEW |
1 'use strict'; | 1 'use strict'; |
2 | 2 |
3 // Run a set of tests for a given |sensorType|. |updateReading| is | 3 // Run a set of tests for a given |sensorType|. |updateReading| is |
4 // a called by the test to provide the mock values for sensor. |verifyReading| | 4 // a called by the test to provide the mock values for sensor. |verifyReading| |
5 // is called so that the value read in JavaScript are the values expected (the o
nes | 5 // is called so that the value read in JavaScript are the values expected (the o
nes |
6 // sent by |updateReading|). | 6 // sent by |updateReading|). |
7 function runGenericSensorTests(sensorType, updateReading, verifyReading) { | 7 function runGenericSensorTests(sensorType, updateReading, verifyReading) { |
8 test(() => assert_throws( | 8 test(() => assert_throws( |
9 new RangeError(), | 9 new RangeError(), |
10 () => new sensorType({frequency: -60})), | 10 () => new sensorType({frequency: -60})), |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 function checkOnChangeIsCalledAndReadingIsValid(sensor) { | 163 function checkOnChangeIsCalledAndReadingIsValid(sensor) { |
164 let sensorObject = new sensorType({frequency: 60}); | 164 let sensorObject = new sensorType({frequency: 60}); |
165 sensorObject.start(); | 165 sensorObject.start(); |
166 let testPromise = sensor.mockSensorProvider.getCreatedSensor() | 166 let testPromise = sensor.mockSensorProvider.getCreatedSensor() |
167 .then(mockSensor => { | 167 .then(mockSensor => { |
168 return mockSensor.setUpdateSensorReadingFunction(updateReading); | 168 return mockSensor.setUpdateSensorReadingFunction(updateReading); |
169 }) | 169 }) |
170 .then((mockSensor) => { | 170 .then((mockSensor) => { |
171 return new Promise((resolve, reject) => { | 171 return new Promise((resolve, reject) => { |
172 let wrapper = new CallbackWrapper(() => { | 172 let wrapper = new CallbackWrapper(() => { |
173 assert_true(verifyReading(sensorObject.reading)); | 173 assert_true(verifyReading(sensorObject)); |
174 sensorObject.stop(); | 174 sensorObject.stop(); |
175 assert_equals(sensorObject.reading, null); | 175 assert_true(verifyReading(sensorObject, true /*should be null*/)); |
176 resolve(mockSensor); | 176 resolve(mockSensor); |
177 }, reject); | 177 }, reject); |
178 | 178 |
179 sensorObject.onchange = wrapper.callback; | 179 sensorObject.onchange = wrapper.callback; |
180 sensorObject.onerror = reject; | 180 sensorObject.onerror = reject; |
181 }); | 181 }); |
182 }) | 182 }) |
183 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); }); | 183 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); }); |
184 | 184 |
185 return testPromise; | 185 return testPromise; |
(...skipping 11 matching lines...) Expand all Loading... |
197 sensor_test(sensor => { | 197 sensor_test(sensor => { |
198 let sensorObject = new sensorType; | 198 let sensorObject = new sensorType; |
199 sensorObject.start(); | 199 sensorObject.start(); |
200 let testPromise = sensor.mockSensorProvider.getCreatedSensor() | 200 let testPromise = sensor.mockSensorProvider.getCreatedSensor() |
201 .then(mockSensor => { | 201 .then(mockSensor => { |
202 return mockSensor.setUpdateSensorReadingFunction(updateReading); | 202 return mockSensor.setUpdateSensorReadingFunction(updateReading); |
203 }) | 203 }) |
204 .then(mockSensor => { | 204 .then(mockSensor => { |
205 return new Promise((resolve, reject) => { | 205 return new Promise((resolve, reject) => { |
206 let wrapper = new CallbackWrapper(() => { | 206 let wrapper = new CallbackWrapper(() => { |
207 assert_true(verifyReading(sensorObject.reading)); | 207 assert_true(verifyReading(sensorObject)); |
208 resolve(mockSensor); | 208 resolve(mockSensor); |
209 }, reject); | 209 }, reject); |
210 | 210 |
211 sensorObject.onchange = wrapper.callback; | 211 sensorObject.onchange = wrapper.callback; |
212 sensorObject.onerror = reject; | 212 sensorObject.onerror = reject; |
213 }); | 213 }); |
214 }) | 214 }) |
215 .then(mockSensor => { | 215 .then(mockSensor => { |
216 testRunner.setPageVisibility('hidden'); | 216 testRunner.setPageVisibility('hidden'); |
217 return mockSensor.suspendCalled(); | 217 return mockSensor.suspendCalled(); |
(...skipping 21 matching lines...) Expand all Loading... |
239 | 239 |
240 let sensor2 = new sensorType({frequency: 20}); | 240 let sensor2 = new sensorType({frequency: 20}); |
241 sensor2.start(); | 241 sensor2.start(); |
242 let testPromise = sensor.mockSensorProvider.getCreatedSensor() | 242 let testPromise = sensor.mockSensorProvider.getCreatedSensor() |
243 .then(mockSensor => { | 243 .then(mockSensor => { |
244 return mockSensor.setUpdateSensorReadingFunction(updateReading); | 244 return mockSensor.setUpdateSensorReadingFunction(updateReading); |
245 }) | 245 }) |
246 .then((mockSensor) => { | 246 .then((mockSensor) => { |
247 return new Promise((resolve, reject) => { | 247 return new Promise((resolve, reject) => { |
248 let wrapper = new CallbackWrapper(() => { | 248 let wrapper = new CallbackWrapper(() => { |
249 // Reading value is correct. | 249 // Reading values are correct for both sensors. |
250 assert_true(verifyReading(sensor1.reading)); | 250 assert_true(verifyReading(sensor1)); |
| 251 assert_true(verifyReading(sensor2)); |
251 | 252 |
252 // Both sensors share the same reading instance. | 253 // After first sensor stops its reading values are null, |
253 let reading = sensor1.reading; | 254 // reading values for the second sensor sensor remain. |
254 assert_equals(reading, sensor2.reading); | |
255 | |
256 // After first sensor stops its reading is null, reading for secon
d | |
257 // sensor sensor remains. | |
258 sensor1.stop(); | 255 sensor1.stop(); |
259 assert_equals(sensor1.reading, null); | 256 assert_true(verifyReading(sensor1, true /*should be null*/)); |
260 assert_true(verifyReading(sensor2.reading)); | 257 assert_true(verifyReading(sensor2)); |
261 | 258 |
262 sensor2.stop(); | 259 sensor2.stop(); |
263 assert_equals(sensor2.reading, null); | 260 assert_true(verifyReading(sensor2, true /*should be null*/)); |
264 | 261 |
265 // Cached reading remains. | |
266 assert_true(verifyReading(reading)); | |
267 resolve(mockSensor); | 262 resolve(mockSensor); |
268 }, reject); | 263 }, reject); |
269 | 264 |
270 sensor1.onchange = wrapper.callback; | 265 sensor1.onchange = wrapper.callback; |
271 sensor1.onerror = reject; | 266 sensor1.onerror = reject; |
272 sensor2.onerror = reject; | 267 sensor2.onerror = reject; |
273 }); | 268 }); |
274 }) | 269 }) |
275 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); }); | 270 .then(mockSensor => { return mockSensor.removeConfigurationCalled(); }); |
276 | 271 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 | 325 |
331 sensor_test(sensor => { | 326 sensor_test(sensor => { |
332 return checkFrequencyHintWorks(sensor); | 327 return checkFrequencyHintWorks(sensor); |
333 }, 'Test that frequency hint works (onchange reporting).'); | 328 }, 'Test that frequency hint works (onchange reporting).'); |
334 | 329 |
335 sensor_test(sensor => { | 330 sensor_test(sensor => { |
336 sensor.mockSensorProvider.setContinuousReportingMode(); | 331 sensor.mockSensorProvider.setContinuousReportingMode(); |
337 return checkFrequencyHintWorks(sensor); | 332 return checkFrequencyHintWorks(sensor); |
338 }, 'Test that frequency hint works (continuous reporting).'); | 333 }, 'Test that frequency hint works (continuous reporting).'); |
339 } | 334 } |
OLD | NEW |