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 c5a0829d700e3c6dbbc6df053ba4ccb50b6f3667..94458f1d6a492ed8eb516af27c04e47e6fa60e77 100644 |
--- a/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html |
+++ b/third_party/WebKit/LayoutTests/sensor/ambient-light-sensor.html |
@@ -185,8 +185,8 @@ sensor_test(sensor => { |
} |
}; |
- ambientLightSensor.onchange = e => { |
- assert_equals(e.reading.illuminance, kDefaultReadingValue); |
+ ambientLightSensor.onchange = () => { |
+ assert_equals(ambientLightSensor.reading.illuminance, kDefaultReadingValue); |
ambientLightSensor.stop(); |
}; |
@@ -214,8 +214,8 @@ sensor_test(sensor => { |
} |
} |
- ambientLightSensor.onchange = e => { |
- assert_equals(e.reading.illuminance, kDefaultReadingValue); |
+ ambientLightSensor.onchange = () => { |
+ assert_equals(ambientLightSensor.reading.illuminance, kDefaultReadingValue); |
ambientLightSensor.stop(); |
} |
ambientLightSensor.onerror = reject; |
@@ -235,8 +235,8 @@ sensor_test(sensor => { |
}) |
.then((mockSensor) => { |
return new Promise((resolve, reject) => { |
- ambientLightSensor.onchange = e => { |
- if (e.reading.illuminance == kDefaultReadingValue) { |
+ ambientLightSensor.onchange = () => { |
+ if (ambientLightSensor.reading.illuminance == kDefaultReadingValue) { |
resolve(mockSensor); |
} |
} |
@@ -268,4 +268,53 @@ 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 = () => { |
+ // 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); |
+ |
+ // 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> |