1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
content / test / data / device_sensors / device_orientation_test.html [blame]
<html>
<head>
<title>DeviceOrientation test</title>
<script type="text/javascript">
let eventTimeoutId; // To be set in start().
function checkOrientationEvent(event) {
// Return true iff the orientation is close enough to (1, 2, 3).
return Math.abs(event.alpha - 1) < 0.01 &&
Math.abs(event.beta - 2) < 0.01 &&
Math.abs(event.gamma - 3) < 0.01 &&
event.absolute == false;
}
function onOrientation(event) {
if (checkOrientationEvent(event)) {
window.removeEventListener('deviceorientation', onOrientation);
window.clearTimeout(eventTimeoutId);
pass();
} else {
fail();
}
}
function pass() {
document.getElementById('status').innerHTML = 'PASS';
document.location = '#pass';
}
function fail() {
document.location = '#fail';
}
function failOnTimeoutIfNeeded() {
let params = new URLSearchParams(location.search);
let timeout = Number(params.get("failure_timeout"));
if (timeout > 0)
eventTimeoutId = window.setTimeout(fail, timeout);
}
function start() {
window.addEventListener('deviceorientation', onOrientation);
failOnTimeoutIfNeeded();
}
</script>
</head>
<body onLoad="start()">
<div id="status">FAIL</div>
</body>
</html>