| Index: third_party/WebKit/LayoutTests/sensor/absolute-orientation-sensor.html
|
| diff --git a/third_party/WebKit/LayoutTests/sensor/absolute-orientation-sensor.html b/third_party/WebKit/LayoutTests/sensor/absolute-orientation-sensor.html
|
| index 3667924b7e35499b362a0bd1bfc71f9bf50b3569..c11f7252b2ec09b874125f76d455bc5a943ced07 100644
|
| --- a/third_party/WebKit/LayoutTests/sensor/absolute-orientation-sensor.html
|
| +++ b/third_party/WebKit/LayoutTests/sensor/absolute-orientation-sensor.html
|
| @@ -16,6 +16,7 @@ const kRotationMatrix = [1, 0, 0, 0,
|
| 0, -1, 0, 0,
|
| 0, 0, -1, 0,
|
| 0, 0, 0, 1];
|
| +const kRotationDOMMatrix = new DOMMatrix(kRotationMatrix);
|
|
|
| function update_sensor_reading(buffer, expects_modified_reading, readsCount) {
|
| buffer[1] = window.performance.now();
|
| @@ -33,11 +34,56 @@ function verify_sensor_reading(sensor, should_be_null) {
|
| sensor.quaternion.toString() != kQuaternion.toString())
|
| return false;
|
|
|
| - let rotationMatrix = new Float32Array(16);
|
| - sensor.populateMatrix(rotationMatrix);
|
| - return rotationMatrix.toString() == kRotationMatrix.toString();
|
| + return true;
|
| }
|
|
|
| runGenericSensorTests(AbsoluteOrientationSensor, update_sensor_reading, verify_sensor_reading);
|
|
|
| +sensor_test(sensor => {
|
| + let sensorObject = new AbsoluteOrientationSensor();
|
| +
|
| + // Throws with insufficient buffer space.
|
| + assert_throws({ name: 'TypeError' }, () => sensorObject.populateMatrix(new Float32Array(15)));
|
| +
|
| + // Throws at wrong sensor state.
|
| + assert_throws({ name: 'InvalidStateError' }, () => sensorObject.populateMatrix(new Float32Array(16)));
|
| +
|
| + sensorObject.start();
|
| +
|
| + return sensor.mockSensorProvider.getCreatedSensor()
|
| + .then(mockSensor => {
|
| + return mockSensor.setUpdateSensorReadingFunction(update_sensor_reading);
|
| + })
|
| + .then(mockSensor => {
|
| + return new Promise((resolve, reject) => {
|
| + let wrapper = new CallbackWrapper(() => {
|
| + // Works for all supported types.
|
| + let rotationMatrix32 = new Float32Array(16);
|
| + sensorObject.populateMatrix(rotationMatrix32);
|
| + assert_array_equals(rotationMatrix32, kRotationMatrix);
|
| +
|
| + let rotationMatrix64 = new Float64Array(16);
|
| + sensorObject.populateMatrix(rotationMatrix64);
|
| + assert_array_equals(rotationMatrix64, kRotationMatrix);
|
| +
|
| + let rotationDOMMatrix = new DOMMatrix();
|
| + sensorObject.populateMatrix(rotationDOMMatrix);
|
| + assert_array_equals(rotationDOMMatrix, kRotationDOMMatrix);
|
| +
|
| + // Sets every matrix element.
|
| + rotationMatrix64.fill(123);
|
| + sensorObject.populateMatrix(rotationMatrix64);
|
| + assert_array_equals(rotationMatrix64, kRotationMatrix);
|
| +
|
| + sensorObject.stop();
|
| + resolve(mockSensor);
|
| + }, reject);
|
| +
|
| + sensorObject.onchange = wrapper.callback;
|
| + sensorObject.onerror = reject;
|
| + });
|
| + })
|
| + .then(mockSensor => { return mockSensor.removeConfigurationCalled(); });
|
| +}, 'Test AbsoluteOrientationSensor.populateMatrix() method works correctly.');
|
| +
|
| </script>
|
|
|