89 lines
3.8 KiB
HTML
89 lines
3.8 KiB
HTML
<!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>
|