| <!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> |