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

