OLD | NEW |
1 'use strict'; | 1 'use strict'; |
2 | 2 |
3 function sensor_mocks(mojo) { | 3 function sensor_mocks(mojo) { |
4 return define('Generic Sensor API mocks', [ | 4 return define('Generic Sensor API mocks', [ |
5 'mojo/public/js/core', | 5 'mojo/public/js/core', |
6 'mojo/public/js/bindings', | 6 'mojo/public/js/bindings', |
7 'mojo/public/js/connection', | 7 'mojo/public/js/connection', |
8 'device/generic_sensor/public/interfaces/sensor_provider.mojom', | 8 'device/generic_sensor/public/interfaces/sensor_provider.mojom', |
9 'device/generic_sensor/public/interfaces/sensor.mojom', | 9 'device/generic_sensor/public/interfaces/sensor.mojom', |
10 ], (core, bindings, connection, sensor_provider, sensor) => { | 10 ], (core, bindings, connection, sensor_provider, sensor) => { |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 this.resume_called_(this); | 105 this.resume_called_(this); |
106 } | 106 } |
107 } | 107 } |
108 | 108 |
109 // Mock functions | 109 // Mock functions |
110 | 110 |
111 // Resets mock Sensor state. | 111 // Resets mock Sensor state. |
112 reset() { | 112 reset() { |
113 if (this.sensor_reading_timer_id_) { | 113 if (this.sensor_reading_timer_id_) { |
114 window.clearTimeout(this.sensor_reading_timer_id_); | 114 window.clearTimeout(this.sensor_reading_timer_id_); |
| 115 this.sensor_reading_timer_id_ = null; |
115 } | 116 } |
116 | 117 |
117 this.start_should_fail_ = false; | 118 this.start_should_fail_ = false; |
118 this.sensor_reading_timer_id_ = null; | 119 this.update_reading_function_ = null; |
119 this.active_sensor_configurations_ = []; | 120 this.active_sensor_configurations_ = []; |
120 this.suspend_called_ = null; | 121 this.suspend_called_ = null; |
121 this.resume_called_ = null; | 122 this.resume_called_ = null; |
122 this.add_configuration_called_ = null; | 123 this.add_configuration_called_ = null; |
123 this.remove_configuration_called_ = null; | 124 this.remove_configuration_called_ = null; |
124 this.resetBuffer(); | 125 this.resetBuffer(); |
| 126 core.unmapBuffer(this.buffer_array_); |
| 127 this.buffer_array_ = null; |
| 128 bindings.StubBindings(this.stub_).close(); |
125 } | 129 } |
126 | 130 |
127 // Zeroes shared buffer. | 131 // Zeroes shared buffer. |
128 resetBuffer() { | 132 resetBuffer() { |
129 for (let i = 0; i < this.buffer_.length; ++i) { | 133 for (let i = 0; i < this.buffer_.length; ++i) { |
130 this.buffer_[i] = 0; | 134 this.buffer_[i] = 0; |
131 } | 135 } |
132 } | 136 } |
133 | 137 |
134 // Sets callback that is used to deliver sensor reading updates. | 138 // Sets callback that is used to deliver sensor reading updates. |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
250 pipe, sensor_provider.SensorProvider); | 254 pipe, sensor_provider.SensorProvider); |
251 bindings.StubBindings(this.stub_).delegate = this; | 255 bindings.StubBindings(this.stub_).delegate = this; |
252 } | 256 } |
253 | 257 |
254 // Mock functions | 258 // Mock functions |
255 | 259 |
256 // Resets state of mock SensorProvider between test runs. | 260 // Resets state of mock SensorProvider between test runs. |
257 reset() { | 261 reset() { |
258 if (this.active_sensor_ != null) { | 262 if (this.active_sensor_ != null) { |
259 this.active_sensor_.reset(); | 263 this.active_sensor_.reset(); |
| 264 this.active_sensor_ = null; |
260 } | 265 } |
261 | 266 |
262 this.get_sensor_should_fail_ = false; | 267 this.get_sensor_should_fail_ = false; |
263 this.resolve_func_ = null; | 268 this.resolve_func_ = null; |
264 } | 269 } |
265 | 270 |
266 // Sets flag that forces mock SensorProvider to fail when getSensor() is | 271 // Sets flag that forces mock SensorProvider to fail when getSensor() is |
267 // invoked. | 272 // invoked. |
268 setGetSensorShouldFail(should_fail) { | 273 setGetSensorShouldFail(should_fail) { |
269 this.get_sensor_should_fail_ = should_fail; | 274 this.get_sensor_should_fail_ = should_fail; |
(...skipping 24 matching lines...) Expand all Loading... |
294 }); | 299 }); |
295 | 300 |
296 return Promise.resolve({ | 301 return Promise.resolve({ |
297 mockSensorProvider: mockSensorProvider, | 302 mockSensorProvider: mockSensorProvider, |
298 }); | 303 }); |
299 }); | 304 }); |
300 } | 305 } |
301 | 306 |
302 function sensor_test(func, name, properties) { | 307 function sensor_test(func, name, properties) { |
303 mojo_test(mojo => sensor_mocks(mojo).then(sensor => { | 308 mojo_test(mojo => sensor_mocks(mojo).then(sensor => { |
304 let result = Promise.resolve(func(sensor)); | 309 // Clean up and reset mock sensor stubs asynchronously, so that the blink |
305 let cleanUp = () => { sensor.mockSensorProvider.reset(); }; | 310 // side closes its proxies and notifies JS sensor objects before new test is |
306 return result.then(cleanUp, cleanUp); | 311 // started. |
| 312 let onSuccess = () => { |
| 313 sensor.mockSensorProvider.reset(); |
| 314 return new Promise((resolve, reject) => { setTimeout(resolve, 0); }); |
| 315 }; |
| 316 |
| 317 let onFailure = () => { |
| 318 sensor.mockSensorProvider.reset(); |
| 319 return new Promise((resolve, reject) => { setTimeout(reject, 0); }); |
| 320 }; |
| 321 |
| 322 return Promise.resolve(func(sensor)).then(onSuccess, onFailure); |
307 }), name, properties); | 323 }), name, properties); |
308 } | 324 } |
OLD | NEW |