Index: third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html |
diff --git a/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html b/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html |
index 29d94cdbb2038c92ef6c8693c3776fd6805f08d0..96f31398f4005e8be1812beceef88b206a65cd03 100644 |
--- a/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html |
+++ b/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html |
@@ -184,7 +184,7 @@ sensor_test(sensor => { |
}; |
ambientLightSensor.onchange = e => { |
shalamov
2016/11/04 13:06:53
If event doesn't have associated reading, maybe yo
Mikhail
2016/11/04 13:20:47
Done.
|
- assert_equals(e.reading.illuminance, kDefaultReadingValue); |
+ assert_equals(ambientLightSensor.reading.illuminance, kDefaultReadingValue); |
ambientLightSensor.stop(); |
}; |
@@ -213,7 +213,7 @@ sensor_test(sensor => { |
} |
ambientLightSensor.onchange = e => { |
- assert_equals(e.reading.illuminance, kDefaultReadingValue); |
+ assert_equals(ambientLightSensor.reading.illuminance, kDefaultReadingValue); |
ambientLightSensor.stop(); |
} |
ambientLightSensor.onerror = reject; |
@@ -234,7 +234,7 @@ sensor_test(sensor => { |
.then((mockSensor) => { |
return new Promise((resolve, reject) => { |
ambientLightSensor.onchange = e => { |
- if (e.reading.illuminance == kDefaultReadingValue) { |
+ if (ambientLightSensor.reading.illuminance == kDefaultReadingValue) { |
resolve(mockSensor); |
} |
} |
@@ -266,4 +266,54 @@ sensor_test(sensor => { |
}, 'Test that sensor receives suspend / resume notifications when page' |
+' visibility changes.'); |
+ |
+sensor_test(sensor => { |
+ let sensor1 = new AmbientLightSensor({frequency: 60}); |
+ sensor1.start(); |
+ |
+ let sensor2 = new AmbientLightSensor({frequency: 20}); |
+ sensor2.start(); |
+ let testPromise = sensor.mockSensorProvider.getCreatedSensor() |
+ .then(mockSensor => { |
+ return mockSensor.setUpdateSensorReadingFunction(update_sensor_reading); |
+ }) |
+ .then((mockSensor) => { |
+ return new Promise((resolve, reject) => { |
+ sensor1.onstatechange = event => { |
+ if (sensor1.state === 'idle') { |
+ resolve(mockSensor); |
+ } |
+ }; |
+ |
+ sensor1.onchange = e => { |
+ // Reading value is correct. |
+ assert_equals(sensor1.reading.illuminance, kDefaultReadingValue); |
+ |
+ // Both sensors share the same reading instance. |
+ let reading = sensor1.reading; |
+ assert_equals(reading, sensor2.reading); |
+ |
+ // After first sensor stops its reading is null, reading for second |
+ // sensor sensor remains. |
+ sensor1.stop(); |
+ assert_equals(sensor1.reading, null); |
+ assert_equals(sensor2.reading.illuminance, kDefaultReadingValue); |
+ |
+ sensor2.stop(); |
+ assert_equals(sensor2.reading, null); |
+ reject(); |
+ |
+ // Cached reading remains. |
+ assert_equals(reading.illuminance, kDefaultReadingValue); |
+ }; |
+ |
+ sensor1.onerror = reject; |
+ sensor2.onerror = reject; |
+ }); |
+ }) |
+ .then(mockSensor => { return mockSensor.removeConfigurationCalled(); }); |
+ |
+ return testPromise; |
+}, 'Test that sensor reading is correct.'); |
+ |
</script> |