зеркало из https://github.com/mozilla/gecko-dev.git
110 строки
4.1 KiB
HTML
110 строки
4.1 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=885359
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 885359</title>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=885359">Mozilla Bug 343444</a>
|
|
<p id="display"></p>
|
|
<form>
|
|
<input type="radio" id='radio1'/><br/>
|
|
|
|
<input type="radio" id="g1radio1" name="group1"/>
|
|
<input type="radio" id="g1radio2" name="group1"/></br>
|
|
<input type="radio" id="g1radio3" name="group1"/></br>
|
|
|
|
<input type="radio" id="g2radio1" name="group2"/>
|
|
<input type="radio" id="g2radio2" name="group2" checked/></br>
|
|
</form>
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
var radio1 = document.getElementById("radio1");
|
|
var g1radio1 = document.getElementById("g1radio1");
|
|
var g1radio2 = document.getElementById("g1radio2");
|
|
var g1radio3 = document.getElementById("g1radio3");
|
|
var g2radio1 = document.getElementById("g2radio1");
|
|
var g2radio2 = document.getElementById("g2radio2");
|
|
|
|
SimpleTest.waitForFocus(function() {
|
|
test();
|
|
SimpleTest.finish();
|
|
});
|
|
|
|
function verifyIndeterminateState(aElement, aIsIndeterminate, aMessage) {
|
|
is(aElement.mozMatchesSelector(':indeterminate'), aIsIndeterminate, aMessage);
|
|
}
|
|
|
|
function test() {
|
|
// Initial State.
|
|
verifyIndeterminateState(radio1, true,
|
|
"Unchecked radio in its own group (no name attribute)");
|
|
verifyIndeterminateState(g1radio1, true, "No selected radio in its group");
|
|
verifyIndeterminateState(g1radio2, true, "No selected radio in its group");
|
|
verifyIndeterminateState(g1radio3, true, "No selected radio in its group");
|
|
verifyIndeterminateState(g2radio1, false, "Selected radio in its group");
|
|
verifyIndeterminateState(g2radio2, false, "Selected radio in its group");
|
|
|
|
// Selecting radio buttion.
|
|
g1radio1.checked = true;
|
|
verifyIndeterminateState(g1radio1, false,
|
|
"Selecting a radio should affect all radios in the group");
|
|
verifyIndeterminateState(g1radio2, false,
|
|
"Selecting a radio should affect all radios in the group");
|
|
verifyIndeterminateState(g1radio3, false,
|
|
"Selecting a radio should affect all radios in the group");
|
|
|
|
// Changing the selected radio button.
|
|
g1radio3.checked = true;
|
|
verifyIndeterminateState(g1radio1, false,
|
|
"Selecting a radio should affect all radios in the group");
|
|
verifyIndeterminateState(g1radio2, false,
|
|
"Selecting a radio should affect all radios in the group");
|
|
verifyIndeterminateState(g1radio3, false,
|
|
"Selecting a radio should affect all radios in the group");
|
|
|
|
// Deselecting radio button.
|
|
g2radio2.checked = false;
|
|
verifyIndeterminateState(g2radio1, true,
|
|
"Deselecting a radio should affect all radios in the group");
|
|
verifyIndeterminateState(g2radio2, true,
|
|
"Deselecting a radio should affect all radios in the group");
|
|
|
|
// Move a selected radio button to another group.
|
|
g1radio3.name = "group2";
|
|
|
|
// The radios' state in the original group becomes indeterminated.
|
|
verifyIndeterminateState(g1radio1, true,
|
|
"Removing a radio from a group should affect all radios in the group");
|
|
verifyIndeterminateState(g1radio2, true,
|
|
"Removing a radio from a group should affect all radios in the group");
|
|
|
|
// The radios' state in the new group becomes determinated.
|
|
verifyIndeterminateState(g1radio3, false,
|
|
"Adding a radio from a group should affect all radios in the group");
|
|
verifyIndeterminateState(g2radio1, false,
|
|
"Adding a radio from a group should affect all radios in the group");
|
|
verifyIndeterminateState(g2radio2, false,
|
|
"Adding a radio from a group should affect all radios in the group");
|
|
|
|
// Change input type to 'text'.
|
|
g1radio3.type = "text";
|
|
verifyIndeterminateState(g1radio3, false,
|
|
"Input type text does not have an indeterminate state");
|
|
verifyIndeterminateState(g2radio1, true,
|
|
"Changing input type should affect all radios in the group");
|
|
verifyIndeterminateState(g2radio2, true,
|
|
"Changing input type should affect all radios in the group");
|
|
}
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|
|
|