This test examines the order of form associated elements which are classified as 'listed'.

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


- Checks the order of form associated elements.
PASS checkOrder([button, fieldset, input, object, output, select, textarea]) is "OK"

- Checks the order after some elements removed/inserted.
PASS checkOrder([button, fieldset, input, output, select, textarea]) is "OK"
PASS checkOrder([fieldset, input, output, select, textarea]) is "OK"
PASS checkOrder([object, fieldset, input, output, select, textarea]) is "OK"
PASS checkOrder([object, fieldset, input, output, select, textarea, button]) is "OK"

- Checks the order of form associated elements with form attribute.
PASS checkOrder([button, fieldset, input, object, output, select, textarea]) is "OK"

- Checks the order after some elements removed/inserted with form attribute.
PASS checkOrder([button, fieldset, input, output, select, textarea]) is "OK"
PASS checkOrder([fieldset, input, output, select, textarea]) is "OK"
PASS checkOrder([fieldset, input, output, select]) is "OK"
PASS checkOrder([fieldset, input, object, output, select]) is "OK"
PASS checkOrder([textarea, fieldset, input, object, output, select]) is "OK"
PASS checkOrder([textarea, fieldset, input, object, output, select, button]) is "OK"
PASS successfullyParsed is true

TEST COMPLETE
Test



