blob: ab87c7230e3debd6101009177777f2fbd8743f42 [file] [log] [blame]
<!DOCTYPE html>
<body>
<script src="../../../resources/js-test.js"></script>
<script>
function createMonthInput(min, max, value) {
var input = document.createElement('input');
input.type = 'month';
if (min)
input.min = min;
if (max)
input.max = max;
if (value)
input.value = value;
return input;
}
// FIXME: Rename this function and the test file.
function isReadOnlyField(input, pseudo) {
var node = internals.shadowRoot(input).querySelector('*[pseudo="' + pseudo + '"]');
if (!node)
testFailed('Requested node is missing.');
return node && node.hasAttribute('disabled');
}
var pseudoMonth = '-webkit-datetime-edit-month-field';
var pseudoYear = '-webkit-datetime-edit-year-field';
description('Sub-fields in input[type=month] should be read-only in some cases. This requires window.internals.');
debug('createMonthInput argument order: min, max, value');
debug('');
debug('Year field:');
shouldBeFalse('isReadOnlyField(createMonthInput("", "", ""), pseudoYear)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-12", "", ""), pseudoYear)');
shouldBeFalse('isReadOnlyField(createMonthInput("", "2012-12", ""), pseudoYear)');
shouldBeFalse('isReadOnlyField(createMonthInput("", "", "2012-12"), pseudoYear)');
shouldBeTrue('isReadOnlyField(createMonthInput("2012-01", "2012-12", ""), pseudoYear)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-01", "2013-12", ""), pseudoYear)');
shouldBeTrue('isReadOnlyField(createMonthInput("2012-01", "2012-12", "2012-05"), pseudoYear)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-01", "2012-12", "2013-01"), pseudoYear)');
debug('Month field:');
debug('We should not make all the fields readonly by min/max, so day field is always editable.');
shouldBeFalse('isReadOnlyField(createMonthInput("", "", ""), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-12", "", ""), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("", "2012-12", ""), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("", "", "2012-12"), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-12", "2012-12", ""), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-11", "2013-12", ""), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-12", "2013-12", ""), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-12", "2012-12", "2012-12"), pseudoMonth)');
shouldBeFalse('isReadOnlyField(createMonthInput("2012-12", "2012-12", "2012-11"), pseudoMonth)');
</script>
</body>