<!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=datetime input fields');
var i = document.createElement('input');
i.type = 'datetime';

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 datetime string.');
    else
        testFailed('"' + value + '" is a valid datetime string that failed to be set on the input.');
}

function shouldBeInvalid(value, disabled)
{
    check(value, disabled);
    if (i.value === '')
        testPassed('"' + value + '" is an invalid datetime string and was sanitized' + (disabled ? ' while disabled' : '') + '.');
    else
        testFailed('"' + value + '" is an invalid datetime string and was not sanitized' + (disabled ? ' while disabled' : '') + '.');
}

// Valid values
shouldBeValid('');
shouldBeValid('2009-09-07T16:49Z');
shouldBeValid('2009-09-07T16:49:31Z');
shouldBeValid('2009-09-07T16:49:31.1Z');
shouldBeValid('2009-09-07T16:49:31.12Z');
shouldBeValid('2009-09-07T16:49:31.123Z');
shouldBeValid('2009-09-07T16:49:31.1234567890Z');
shouldBeValid('275760-09-12T23:59:59.999Z');
shouldBeValid('275760-09-13T00:00:00.000Z');
shouldBeValid('0001-01-01T00:00:00.000Z');
shouldBeValid('0001-01-01T00:00:00.000+00:00');
shouldBeValid('0001-01-01T01:30+01:30');
shouldBeValid('0001-01-01T00:00-01:00');

// Invalid values
shouldBeInvalid(' 2009-09-07T16:49Z ');
shouldBeInvalid('2009-09-07T16:49z');
shouldBeInvalid('2009-09-07t16:49Z');
shouldBeInvalid('2009-09-07T16:49');
shouldBeInvalid('2009/09/07T16:49Z');
shouldBeInvalid('a');
shouldBeInvalid('-1-09-07T16:49Z');
shouldBeInvalid('2009-09-07T16:49+23');
shouldBeInvalid('2009-09-07T16:49+23:');
shouldBeInvalid('2009-09-07T16:49+24:00');
shouldBeInvalid('2009-09-07T16:49+23:60');
shouldBeInvalid('2009-09-07T16:49-23');
shouldBeInvalid('2009-09-07T16:49-23:');
shouldBeInvalid('2009-09-07T16:49-24:00');
shouldBeInvalid('2009-09-07T16:49-23:60');
shouldBeInvalid('0000-12-31T23:59:59Z');
shouldBeInvalid('2147483647-12-31T23:59-00:01');
shouldBeInvalid('2147483648-01-01T00:00:00Z');
shouldBeInvalid('0001-01-01T00:00+01:00');

// Disabled
shouldBeInvalid('invalid', true);
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>
