blob: 0c0c4d60fc74c77a318ebd95a8802beb78b2b52a [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../../resources/js-test-pre.js"></script>
<style type="text/css">
input:enabled { color: #000; }
input:disabled { color: #666; }
</style>
<div id="container">
<input id="randomInput">
<fieldset disabled><input id="inputOutsideLegend"></fieldset>
<fieldset disabled><legend><input id="inputInsideFirstLegend"></legend></fieldset>
<fieldset disabled><legend></legend><legend><input id="inputInsideSecondLegend"></legend></fieldset>
<fieldset disabled><legend><legend><input id="inputInsideNestedFirstLegend"></legend></legend></fieldset>
<fieldset disabled><fieldset><legend><input id="inputInsideFirstLegendWithDisabledOuterFieldset"></legend></fieldset></fieldset>
</div>
<script>
description("Additional tests for fieldset element disabling descendent input elements");
function isInputDisabled(input) {
return getComputedStyle(input).color == 'rgb(102, 102, 102)';
}
function isInputDisabledById(id) {
return isInputDisabled(document.getElementById(id));
}
shouldBeTrue('isInputDisabledById("inputOutsideLegend")');
shouldBeFalse('isInputDisabledById("inputInsideFirstLegend")');
shouldBeTrue('isInputDisabledById("inputInsideSecondLegend")');
shouldBeFalse('isInputDisabledById("inputInsideNestedFirstLegend")');
shouldBeTrue('isInputDisabledById("inputInsideFirstLegendWithDisabledOuterFieldset")');
function setDisabledOnAllFieldsets(value) {
var fieldsets = document.querySelectorAll('#container > fieldset, body > fieldset');
for (var i = 0; i < fieldsets.length; i++)
fieldsets[i].disabled = value;
}
debug('');
evalAndLog('setDisabledOnAllFieldsets(false)');
shouldBeFalse('isInputDisabledById("inputOutsideLegend")');
shouldBeFalse('isInputDisabledById("inputInsideFirstLegend")');
shouldBeFalse('isInputDisabledById("inputInsideSecondLegend")');
shouldBeFalse('isInputDisabledById("inputInsideNestedFirstLegend")');
shouldBeFalse('isInputDisabledById("inputInsideFirstLegendWithDisabledOuterFieldset")');
function createIframe() {
var iframe = document.createElement("iframe");
document.getElementById('container').appendChild(iframe);
iframe.contentDocument.head.appendChild(document.querySelector('body style').cloneNode(true));
return iframe.contentDocument;
}
function insertNewFieldsetIntoBody(contentDocument) {
fieldset = contentDocument.createElement("fieldset");
contentDocument.body.appendChild(fieldset);
return fieldset;
}
debug('');
evalAndLog('contentDocument = createIframe();');
evalAndLog('fieldset = contentDocument.createElement("fieldset"); contentDocument.body.appendChild(fieldset);');
shouldBeFalse('input = contentDocument.createElement("input"); fieldset.appendChild(input); isInputDisabled(input)');
shouldBeTrue('fieldset.disabled = true; isInputDisabled(input)');
shouldBeFalse('contentDocument.body.appendChild(input); isInputDisabled(input)');
shouldBeFalse('document.body.appendChild(input); isInputDisabled(input)');
shouldBeTrue('fieldset.appendChild(input); isInputDisabled(input)');
evalAndLog('fieldset2 = document.createElement("fieldset"); fieldset2.disabled = true');
evalAndLog('input2 = document.createElement("input"); fieldset2.appendChild(input2)');
shouldBeTrue('contentDocument.body.appendChild(fieldset2); isInputDisabled(input2)');
shouldBeTrue('document.body.appendChild(fieldset); isInputDisabled(input)');
debug('');
evalAndLog('setDisabledOnAllFieldsets(true)');
shouldBeTrue('isInputDisabledById("inputOutsideLegend")');
shouldBeFalse('isInputDisabledById("inputInsideFirstLegend")');
shouldBeTrue('isInputDisabledById("inputInsideSecondLegend")');
shouldBeFalse('isInputDisabledById("inputInsideNestedFirstLegend")');
shouldBeTrue('isInputDisabledById("inputInsideFirstLegendWithDisabledOuterFieldset")');
document.getElementById('container').style.display = 'none';
</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
</html>