blob: 28f5d1227a9a2060841f873b891de5fe45d7ff03 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>
description('Check stepMismatch results for type=time.');
var input = document.createElement('input');
document.body.appendChild(input);
function stepMismatchFor(value, step, min, disabled) {
input.min = min;
input.step = step;
input.value = value;
input.disabled = !!disabled;
return input.validity.stepMismatch;
}
input.type = 'time';
debug('Empty values');
shouldBeFalse('stepMismatchFor("", null, null)');
shouldBeFalse('stepMismatchFor("", "2", "12:34:56")');
debug('Normal step values');
shouldBeFalse('stepMismatchFor("12:34:55", "1", "12:34:56")');
shouldBeTrue('stepMismatchFor("12:34:55.001", "1", "12:34:56")');
shouldBeFalse('stepMismatchFor("12:34:56.001", "0.001", "12:34:56")');
shouldBeTrue('stepMismatchFor("12:34:55", "0.333", "12:34:56")');
shouldBeFalse('stepMismatchFor("12:34:55.001", "0.333", "12:34:56")');
shouldBeFalse('stepMismatchFor("12:34", "86400", "12:34")');
shouldBeTrue('stepMismatchFor("23:59:59.998", "86399.999", "00:00")');
shouldBeFalse('stepMismatchFor("23:59:59.999", "86399.999", "00:00")');
debug('Implicit step base');
shouldBeFalse('stepMismatchFor("12:34", "120", null)');
shouldBeTrue('stepMismatchFor("12:35", "120", null)');
debug('Small step values');
shouldBeFalse('stepMismatchFor("12:34:55.001", "0.0003", "12:34.55.000")');
shouldBeTrue('stepMismatchFor("12:34:55.001", "0.0019", "12:34.55.000")');
shouldBeFalse('stepMismatchFor("12:34:55.004", "0.0019", "12:34.55.000")');
debug('Invalid or no step values');
shouldBeFalse('stepMismatchFor("12:34", null, "12:34")');
shouldBeTrue('stepMismatchFor("12:34:56", null, "12:34")');
shouldBeFalse('stepMismatchFor("12:34", "-1", "12:34")');
shouldBeFalse('stepMismatchFor("12:34", "foo", "12:34")');
debug('Special step value');
shouldBeFalse('stepMismatchFor("12:35", "any", "12:34")');
debug('Disabled');
shouldBeTrue('stepMismatchFor("12:34:55.001", "1", "12:34:56", true)');
debug('');
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>