blob: 152881024b1d4b3ed6e8048edeabe224dd42b8cc [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test.js"></script>
<script>
description('Tests to check that devicemotion events are not fired when the page is not visible.');
window.jsTestIsAsync = true;
function succeedAndFinish()
{
testPassed("Received a devicemotion event");
finishJSTest();
}
function testWithPageVisible()
{
testPassed("Did not receive a devicemotion event");
window.removeEventListener('devicemotion', failAndFinish);
if (window.testRunner)
testRunner.setPageVisibility("visible");
debug("* Page is visible");
window.addEventListener('devicemotion', succeedAndFinish);
}
function failAndFinish()
{
testFailed('Should not have received a devicemotion event while the page was hidden');
finishJSTest();
}
function testWithPageHidden()
{
testPassed("Received a devicemotion event");
window.removeEventListener('devicemotion', deviceMotionListener);
if (window.testRunner)
testRunner.setPageVisibility("hidden");
debug("* Page is hidden");
window.addEventListener('devicemotion', failAndFinish);
setTimeout(testWithPageVisible, 100);
}
function deviceMotionListener(event) {
setTimeout(testWithPageHidden, 0);
}
if (window.testRunner)
testRunner.setMockDeviceMotion(true, 0, true, 0, true, 0,
true, 0, true, 0, true, 0,
true, 0, true, 0, true, 0,
0);
debug("* Page is visible");
window.addEventListener('devicemotion', deviceMotionListener);
</script>
</body>
</html>