Check if :valid/:invalid CSS pseudo selectors are lively applied for forms

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


Removing and adding required text inputs and modifying their value by a DOM tree mutation:
PASS backgroundOf(form1) is invalidColor
PASS backgroundOf(sub1) is subInvalidColor
PASS form1.removeChild(input1); backgroundOf(form1) is validColor
PASS backgroundOf(sub1) is subValidColor
PASS form1.appendChild(input1); backgroundOf(form1) is invalidColor
PASS backgroundOf(sub1) is subInvalidColor
PASS input1.setAttribute("value", "a"); backgroundOf(form1) is validColor
PASS backgroundOf(sub1) is subValidColor
PASS input2.setAttribute("value", ""); backgroundOf(form1) is invalidColor
PASS backgroundOf(sub1) is subInvalidColor

Disabling and marking inputs readonly by a DOM tree mutation:
PASS backgroundOf(form1) is invalidColor
PASS backgroundOf(sub1) is subInvalidColor
PASS input1.disabled=1; backgroundOf(form1) is validColor
PASS backgroundOf(sub1) is subValidColor
PASS input1.disabled=0; backgroundOf(form1) is invalidColor
PASS backgroundOf(sub1) is subInvalidColor
PASS input1.setAttribute("readonly", "1"); backgroundOf(form1) is validColor
PASS backgroundOf(sub1) is subValidColor

Move element under datalist by a DOM tree mutation:
PASS backgroundOf(form1) is invalidColor
PASS parent.removeChild(input1); backgroundOf(form1) is validColor
PASS dl1.appendChild(input1); backgroundOf(form1) is validColor
PASS parent.appendChild(input1); backgroundOf(form1) is invalidColor

Adding a required text input that is not a direct child of the form:
PASS backgroundOf(form1) is validColor
PASS div1.appendChild(input1); backgroundOf(form1) is invalidColor

Render multiple forms and reassign an invalid input from one to another:
PASS backgroundOf($("form1")) is invalidColor
PASS backgroundOf($("form2")) is validColor
PASS backgroundOf($("form3")) is validColor
PASS backgroundOf($("form1")) is validColor
PASS backgroundOf($("form3")) is invalidColor

Ensure that invalid event was not triggered on style evaluation:
PASS backgroundOf(form1) is invalidColor
PASS val is "0"
PASS form1.checkValidity(); val is "1"

PASS successfullyParsed is true

TEST COMPLETE

