Tests for how durations are handled in the Vibration API.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS navigator.vibrate([]) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), []) is true
PASS internals.isVibrating(navigator) is false
PASS navigator.vibrate(0) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), []) is true
PASS internals.isVibrating(navigator) is false
PASS navigator.vibrate([0]) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), []) is true
PASS internals.isVibrating(navigator) is false
PASS navigator.vibrate(10000) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), [10000]) is true
PASS internals.isVibrating(navigator) is true
PASS navigator.vibrate(10001) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), [10000]) is true
PASS internals.isVibrating(navigator) is true
PASS navigator.vibrate([10001, 10001, 10001]) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), [10000, 10000, 10000]) is true
PASS internals.isVibrating(navigator) is true
PASS navigator.vibrate(-1) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), []) is true
PASS internals.isVibrating(navigator) is false
PASS navigator.vibrate([-1, -1, -1]) is true
PASS areArraysEqual(internals.pendingVibrationPattern(navigator), [10000, 10000, 10000]) is true
PASS internals.isVibrating(navigator) is true
PASS successfullyParsed is true

TEST COMPLETE

