81 lines
2.2 KiB
HTML
81 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
description('This test aims to check for typeMismatch flag with type=time input fields');
|
|
var i = document.createElement('input');
|
|
i.type = 'time';
|
|
|
|
function check(value, disabled)
|
|
{
|
|
i.value = value;
|
|
i.disabled = !!disabled;
|
|
|
|
if (i.validity.typeMismatch)
|
|
testFailed('"' + value + '" had typeMismatch. This should not happen with sanitization.');
|
|
}
|
|
|
|
function shouldBeValid(value)
|
|
{
|
|
check(value);
|
|
if ((value === '' && i.value === '') || (value !== '' && i.value !== ""))
|
|
testPassed('"' + value + '" is a correct valid time string.');
|
|
else
|
|
testFailed('"' + value + '" is a valid time string that failed to be set on the input.');
|
|
}
|
|
|
|
function shouldBeInvalid(value, disabled)
|
|
{
|
|
check(value, disabled);
|
|
if (i.value === '')
|
|
testPassed('"' + value + '" is an invalid time string and was sanitized' + (disabled ? ' while disabled' : '') + '.');
|
|
else
|
|
testFailed('"' + value + '" is an invalid time string and was not sanitized' + (disabled ? ' while disabled' : '') + '.');
|
|
}
|
|
|
|
// Valid values
|
|
shouldBeValid('');
|
|
shouldBeValid('00:00');
|
|
shouldBeValid('23:59');
|
|
shouldBeValid('23:59:59');
|
|
shouldBeValid('23:59:59.1');
|
|
shouldBeValid('23:59:59.12');
|
|
shouldBeValid('23:59:59.123');
|
|
shouldBeValid('23:59:59.1234567890');
|
|
shouldBeValid('00:00:00.0000000000');
|
|
|
|
// Invalid values
|
|
shouldBeInvalid(' 00:00 ');
|
|
shouldBeInvalid('1:23');
|
|
shouldBeInvalid('011:11');
|
|
shouldBeInvalid('ab:11');
|
|
shouldBeInvalid('-1:11');
|
|
shouldBeInvalid('24:11');
|
|
shouldBeInvalid('11');
|
|
shouldBeInvalid('11-');
|
|
shouldBeInvalid('11:-2');
|
|
shouldBeInvalid('11:60');
|
|
shouldBeInvalid('11:2b');
|
|
shouldBeInvalid('11:ab');
|
|
shouldBeInvalid('11:034');
|
|
shouldBeInvalid('23:45:');
|
|
shouldBeInvalid('23:45:6');
|
|
shouldBeInvalid('23:45:-1');
|
|
shouldBeInvalid('23:45:70');
|
|
shouldBeInvalid('23:45:zz');
|
|
shouldBeInvalid('23:45:06.');
|
|
shouldBeInvalid('23:45:06.abc');
|
|
shouldBeInvalid('23:45:06.789abc');
|
|
|
|
// Disabled
|
|
shouldBeInvalid('invalid', true);
|
|
</script>
|
|
<script src="../../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|