blob: e79d93cd5673011027328d7c864c80daa316ba41 [file] [log] [blame]
<!DOCTYPE html>
<h4 id="test"></h4>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../resources/user-gesture-utils.js"></script>
<script src="vibration-utils.js"></script>
<script>
'use strict';
// Simulates a user click for vibrate to be allowed.
var element = document.getElementById("test");
simulateUserClick(element.offsetLeft + 2, element.offsetTop + 2);
test(() => {
// Initially the page is hidden and no vibration can be started.
testRunner.setPageVisibility('hidden');
assert_false(navigator.vibrate(1001));
assert_array_equals(internals.pendingVibrationPattern(navigator), []);
assert_false(internals.isVibrating(navigator));
// Once the page is visible a vibration can be started.
testRunner.setPageVisibility('visible');
assert_true(navigator.vibrate(1002));
assert_array_equals(internals.pendingVibrationPattern(navigator), [1002]);
assert_true(internals.isVibrating(navigator));
// When the page is hidden again the vibration is cancelled.
testRunner.setPageVisibility('hidden');
assert_array_equals(internals.pendingVibrationPattern(navigator), []);
assert_false(internals.isVibrating(navigator));
}, 'Vibration should not start and it should cancel when the page is hidden.');
</script>