Chromium Code Reviews| Index: LayoutTests/vibration/vibration-durations.html |
| diff --git a/LayoutTests/vibration/vibration-durations.html b/LayoutTests/vibration/vibration-durations.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0399b4deba12dfcc9cb9d8fe40217a24cbf4c50d |
| --- /dev/null |
| +++ b/LayoutTests/vibration/vibration-durations.html |
| @@ -0,0 +1,63 @@ |
| +<html> |
| +<head> |
| +<script src="../fast/js/resources/js-test-pre.js"></script> |
| +<script src="vibration-utils.js"></script> |
| +</head> |
| +<body> |
| +<script> |
| +description('Tests for how durations are handled in the Vibration API.'); |
| + |
| +// Empty pattern is empty. Does not start a vibration. |
| +shouldBeTrue("navigator.vibrate([])"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [])"); |
| +shouldBeFalse("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// An empty pattern is stored internally for a single 0. |
| +shouldBeTrue("navigator.vibrate(0)"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [])"); |
| +shouldBeFalse("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// An empty pattern is stored internally for a single 0. |
| +shouldBeTrue("navigator.vibrate([0])"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [])"); |
| +shouldBeFalse("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// The maximum vibration duration. |
| +shouldBeTrue("navigator.vibrate(10000)"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [10000])"); |
| +shouldBeTrue("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// Overly long vibrations are truncated to the maximum duration. |
| +shouldBeTrue("navigator.vibrate(10001)"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [10000])"); |
| +shouldBeTrue("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// All values in the sequence are truncated. |
| +shouldBeTrue("navigator.vibrate([10001, 10001, 10001])"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [10000, 10000, 10000])"); |
| +shouldBeTrue("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// A negative integer is clamped to 0. This becomes an empty pattern. |
| +shouldBeTrue("navigator.vibrate(-1)"); |
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [])"); |
| +shouldBeFalse("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +// WebIDL cannot clamp values in sequences yet, so -1 first overflows to a huge |
| +// number, then it is truncated to the maximum duration. |
| +// All values in the sequence overflow and truncate in the same way. |
| +shouldBeTrue("navigator.vibrate([-1, -1, -1])"); |
|
Peter Beverloo
2013/10/24 17:46:59
You could use stronger language here to indicate t
Michael van Ouwerkerk
2013/10/25 10:26:39
Done.
|
| +shouldBeTrue("areArraysEqual(internals.getVibrationPattern(document), [10000, 10000, 10000])"); |
| +shouldBeTrue("internals.isVibrating(document)"); |
| +stopVibration(); |
| + |
| +</script> |
| +<script src="../fast/js/resources/js-test-post.js"></script> |
| +</body> |
| +</html> |