Various tests about radio button group.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Changing the name attribute of a radio button:
PASS $("radio1-1").checked is true
PASS $("radio1-2").checked is true
PASS $("radio1-1").checked is false
PASS $("radio1-2").checked is true
PASS $("radio1-1").checked = true; $("radio1-1").checked is true
PASS $("radio1-2").checked is false

Detach the from from the document tree:
PASS radioButtons[0].checked is true
PASS radioButtons[1].checked is false
PASS radioButtons[1].checked = true; radioButtons[0].checked is false
PASS radioButtons[1].checked is true

Changing the type of an input element to radio:
PASS $("radio1-1").checked is true
PASS $("radio1-1").checked is false
PASS $("text1-2").checked is true

Moving a checked radio button to another form:
PASS $("outside").checked is true
PASS $("inside").checked is true
PASS $("inside2").checked is true
PASS $("outside").checked is true
PASS $("inside").checked is false
PASS $("inside2").checked is true
When a radio in a form is removed, it should not affect Document-level groups:
PASS $("outside").checked is true

Removing an ancestor owner form:
PASS $("radio0-1").checked is true

Changing form attribute
PASS $("radio1-1").checked is true
PASS $("radio1-2").checked is false
PASS $("radio1-3").checked is true
Removing a non-ancestor owner form:
PASS $("radio1-3").checked is true
PASS $("radio1-4").checked is true
(The following test depends on gc(). It might fail on a real browser.)
PASS $("radio1-1").checked is false
PASS $("radio1-3").checked is true

Adding a radio button to an orphan tree:
PASS orphanDiv.getElementsByTagName("input")[0].checked is true
PASS orphanDiv.getElementsByTagName("input")[1].checked is true
Adding the orphan tree to a document:
PASS orphanDiv.getElementsByTagName("input")[0].checked is false
PASS orphanDiv.getElementsByTagName("input")[1].checked is true
Parsing an orphan form:
PASS orphanDiv.getElementsByTagName("input")[0].checked is false
PASS orphanDiv.getElementsByTagName("input")[1].checked is true

Moving a radio button to another Document:
PASS doc.getElementById("radio4-2").checked is false
PASS doc.getElementById("radio4-1").checked is true
PASS doc.getElementById("radio4-1").checked is true

Cloning a radio button:
PASS original.checked is true
PASS clonedRadio.checked is true

PASS successfullyParsed is true

TEST COMPLETE

