| <html> | 
 |   <head> | 
 |     <title>DeviceMotion test</title> | 
 |     <script type="text/javascript"> | 
 |       const expectedInterval = Math.floor(1000 / 60); | 
 |       const kRadiansToDegrees = 180 / Math.PI; | 
 |       let eventTimeoutId; // To be set in start(). | 
 |  | 
 |       function checkMotionEvent(event) { | 
 |         return event.acceleration.x == 1 && | 
 |                event.acceleration.y == 2 && | 
 |                event.acceleration.z == 3 && | 
 |                event.accelerationIncludingGravity.x == 4 && | 
 |                event.accelerationIncludingGravity.y == 5 && | 
 |                event.accelerationIncludingGravity.z == 6 && | 
 |                event.rotationRate.alpha == 7 * kRadiansToDegrees && | 
 |                event.rotationRate.beta == 8 * kRadiansToDegrees && | 
 |                event.rotationRate.gamma == 9 * kRadiansToDegrees && | 
 |                event.interval == expectedInterval; | 
 |       } | 
 |  | 
 |       function onMotion(event) { | 
 |         if (checkMotionEvent(event)) { | 
 |           window.removeEventListener('devicemotion', onMotion); | 
 |           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('devicemotion', onMotion); | 
 |         failOnTimeoutIfNeeded(); | 
 |       } | 
 |     </script> | 
 |   </head> | 
 |   <body onLoad="start()"> | 
 |     <div id="status">FAIL</div> | 
 |   </body> | 
 | </html> |