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
FAIL dl1.appendChild(input1); backgroundOf(form1) should be rgb(0, 255, 0). Was rgb(255, 0, 0).
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
Some tests failed.

TEST COMPLETE

