mirror of
https://github.com/servo/servo.git
synced 2025-08-14 01:45:33 +01:00
Update web-platform-tests to revision 8a2ceb5f18911302b7a5c1cd2791f4ab50ad4326
This commit is contained in:
parent
462c272380
commit
1f531f66ea
5377 changed files with 174916 additions and 84369 deletions
|
@ -1,5 +1,6 @@
|
|||
@zqzhang
|
||||
@dontcallmedom
|
||||
@tobie
|
||||
@riju
|
||||
@Honry
|
||||
@alexshalamov
|
||||
@pozdnyakov
|
||||
|
|
|
@ -0,0 +1,103 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>OrientationSensor Test</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="help" href="https://w3c.github.io/orientation-sensor/">
|
||||
<link rel="help" href="https://w3c.github.io/sensors/">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/generic-sensor/generic-sensor-tests.js"></script>
|
||||
<div id="log"></div>
|
||||
|
||||
<script>
|
||||
|
||||
//IEEE 754: single precision retricts to 7 decimal digits
|
||||
const float_precision = 1e-7;
|
||||
|
||||
function create_matrix(quat) {
|
||||
let X = quat[0];
|
||||
let Y = quat[1];
|
||||
let Z = quat[2];
|
||||
let W = quat[3];
|
||||
let mat = new Array(
|
||||
1-2*Y*Y-2*Z*Z, 2*X*Y-2*Z*W, 2*X*Z+2*Y*W, 0,
|
||||
2*X*Y+2*Z*W, 1-2*X*X-2*Z*Z, 2*Y*Z-2*X*W, 0,
|
||||
2*X*Z-2*Y*W, 2*Y*Z+2*W*X, 1-2*X*X-2*Y*Y, 0,
|
||||
0, 0, 0, 1
|
||||
);
|
||||
return mat;
|
||||
}
|
||||
|
||||
function checkQuaternion(t, sensorType) {
|
||||
let sensor = new sensorType();
|
||||
sensor.onreading = t.step_func_done(() => {
|
||||
assert_equals(sensor.quaternion.length, 4);
|
||||
assert_true(sensor.quaternion instanceof Array);
|
||||
sensor.stop();
|
||||
});
|
||||
sensor.onerror = t.step_func_done(unreached);
|
||||
sensor.start();
|
||||
};
|
||||
|
||||
function checkPopulateMatrix(t, sensorType) {
|
||||
let sensor = new sensorType();
|
||||
sensor.onerror = t.step_func_done(unreached);
|
||||
|
||||
//Throws with insufficient buffer space.
|
||||
assert_throws({ name: 'TypeError' }, () => sensor.populateMatrix(new Float32Array(15)));
|
||||
|
||||
//Throws if no orientation data available.
|
||||
assert_throws({ name: 'NotReadableError' }, () => sensor.populateMatrix(new Float32Array(16)));
|
||||
|
||||
if (window.SharedArrayBuffer) {
|
||||
// Throws if passed SharedArrayBuffer view.
|
||||
assert_throws({ name: 'TypeError' }, () => sensor.populateMatrix(new Float32Array(new SharedArrayBuffer(16))));
|
||||
}
|
||||
|
||||
sensor.onreading = t.step_func_done(() => {
|
||||
let quat = sensor.quaternion;
|
||||
let mat_expect = create_matrix(quat);
|
||||
|
||||
// Works for all supported types.
|
||||
let mat_32 = new Float32Array(16);
|
||||
sensor.populateMatrix(mat_32);
|
||||
assert_array_approx_equals(mat_32, mat_expect, float_precision);
|
||||
|
||||
let mat_64 = new Float64Array(16);
|
||||
sensor.populateMatrix(mat_64);
|
||||
assert_array_equals(mat_64, mat_expect);
|
||||
|
||||
let mat_dom = new DOMMatrix();
|
||||
sensor.populateMatrix(mat_dom);
|
||||
assert_array_equals(mat_dom.toFloat64Array(), mat_expect);
|
||||
|
||||
// Sets every matrix element.
|
||||
mat_64.fill(123);
|
||||
sensor.populateMatrix(mat_64);
|
||||
assert_array_equals(mat_64, mat_expect);
|
||||
|
||||
sensor.stop();
|
||||
});
|
||||
sensor.start();
|
||||
}
|
||||
|
||||
async_test(t => {
|
||||
checkQuaternion(t, AbsoluteOrientationSensor);
|
||||
}, "Test AbsoluteOrientationSensor.quaternion return a four-element FrozenArray.");
|
||||
|
||||
async_test(t => {
|
||||
checkQuaternion(t, RelativeOrientationSensor);
|
||||
}, "Test RelativeOrientationSensor.quaternion return a four-element FrozenArray.");
|
||||
|
||||
async_test(t => {
|
||||
checkPopulateMatrix(t, AbsoluteOrientationSensor);
|
||||
}, "Test AbsoluteOrientationSensor.populateMatrix() method works correctly.");
|
||||
|
||||
async_test(t => {
|
||||
checkPopulateMatrix(t, RelativeOrientationSensor);
|
||||
}, "Test RelativeOrientationSensor.populateMatrix() method works correctly.");
|
||||
|
||||
runGenericSensorTests(AbsoluteOrientationSensor);
|
||||
runGenericSensorTests(RelativeOrientationSensor);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,21 @@
|
|||
<meta charset="utf-8">
|
||||
<title>AbsoluteOrientationSensor Test: insecure context</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="help" href="https://w3c.github.io/orientation-sensor/">
|
||||
<link rel="help" href="https://w3c.github.io/sensors/">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/generic-sensor/generic-sensor-tests.js"></script>
|
||||
<div id="log"></div>
|
||||
<h2>Note:</h2>
|
||||
<ol>
|
||||
<li>
|
||||
Run test in an insecure context, e.g. http://example.com/.
|
||||
</li>
|
||||
</ol>
|
||||
<script>
|
||||
|
||||
runGenericSensorInsecureContext(AbsoluteOrientationSensor);
|
||||
runGenericSensorInsecureContext(RelativeOrientationSensor);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>AbsoluteOrientationSensor Test: onerror</title>
|
||||
<link rel="author" title="Intel" href="http://www.intel.com">
|
||||
<link rel="help" href="https://w3c.github.io/orientation-sensor/">
|
||||
<link rel="help" href="https://w3c.github.io/sensors/">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/generic-sensor/generic-sensor-tests.js"></script>
|
||||
<div id="log"></div>
|
||||
<h2>Precondition</h2>
|
||||
<ol>
|
||||
<li>
|
||||
Disable the motion sensors which the underlying physical sensors include Accelerometer, Magnetometer, and (when present) Gyroscope or run test on a device without the motion sensors.
|
||||
</li>
|
||||
</ol>
|
||||
<script>
|
||||
|
||||
runGenericSensorOnerror(AbsoluteOrientationSensor);
|
||||
runGenericSensorOnerror(RelativeOrientationSensor);
|
||||
|
||||
</script>
|
|
@ -8,82 +8,59 @@
|
|||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/WebIDLParser.js"></script>
|
||||
<script src="/resources/idlharness.js"></script>
|
||||
<style>
|
||||
pre {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<div id="log"></div>
|
||||
|
||||
<pre id="idl">
|
||||
interface Event {
|
||||
};
|
||||
|
||||
interface Error {
|
||||
};
|
||||
|
||||
dictionary EventInit {
|
||||
};
|
||||
|
||||
<script id="idl" type="text/plain">
|
||||
interface EventTarget {
|
||||
};
|
||||
|
||||
interface EventHandler {
|
||||
};
|
||||
</pre>
|
||||
</script>
|
||||
|
||||
<pre id="generic-idl">
|
||||
[SecureContext]
|
||||
<script id="orientation-idl" type="text/plain">
|
||||
// The interface of Sensor is defined in
|
||||
// https://www.w3.org/TR/generic-sensor/#idl-index
|
||||
[SecureContext, Exposed=Window]
|
||||
interface Sensor : EventTarget {
|
||||
readonly attribute boolean activated;
|
||||
readonly attribute DOMHighResTimeStamp? timestamp;
|
||||
void start();
|
||||
void stop();
|
||||
attribute EventHandler onchange;
|
||||
attribute EventHandler onreading;
|
||||
attribute EventHandler onactivate;
|
||||
attribute EventHandler onerror;
|
||||
};
|
||||
|
||||
dictionary SensorOptions {
|
||||
double? frequency;
|
||||
};
|
||||
|
||||
[SecureContext, Constructor(DOMString type, SensorErrorEventInit errorEventInitDict)]
|
||||
interface SensorErrorEvent : Event {
|
||||
readonly attribute Error error;
|
||||
};
|
||||
|
||||
dictionary SensorErrorEventInit : EventInit {
|
||||
required Error error;
|
||||
};
|
||||
</pre>
|
||||
|
||||
<pre id="orientation-idl">
|
||||
typedef (Float32Array or Float64Array or DOMMatrix) RotationMatrixType;
|
||||
|
||||
[Exposed=Window]
|
||||
interface OrientationSensor : Sensor {
|
||||
readonly attribute FrozenArray<double>? quaternion;
|
||||
void populateMatrix(RotationMatrixType targetMatrix);
|
||||
};
|
||||
|
||||
[Constructor(optional SensorOptions sensorOptions)]
|
||||
[Constructor(optional SensorOptions sensorOptions), Exposed=Window]
|
||||
interface AbsoluteOrientationSensor : OrientationSensor {
|
||||
};
|
||||
</pre>
|
||||
|
||||
[Constructor(optional SensorOptions sensorOptions), Exposed=Window]
|
||||
interface RelativeOrientationSensor : OrientationSensor {
|
||||
};
|
||||
</script>
|
||||
|
||||
<script>
|
||||
|
||||
(() => {
|
||||
"use strict";
|
||||
let idl_array = new IdlArray();
|
||||
idl_array.add_untested_idls(document.getElementById('idl').textContent);
|
||||
idl_array.add_untested_idls(document.getElementById('generic-idl').textContent);
|
||||
idl_array.add_idls(document.getElementById('orientation-idl').textContent);
|
||||
|
||||
idl_array.add_objects({
|
||||
AbsoluteOrientationSensor: ['new AbsoluteOrientationSensor();']
|
||||
AbsoluteOrientationSensor: ['new AbsoluteOrientationSensor();'],
|
||||
RelativeOrientationSensor: ['new RelativeOrientationSensor();']
|
||||
});
|
||||
|
||||
idl_array.test();
|
||||
})();
|
||||
|
||||
</script>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue