Testing the LayoutNode.insertBefore(newSibling, referenceSibling) method.

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


node.insertBefore(c)
PASS node.children.length === 1 is true
PASS node.children[0] === c is true
PASS retVal === c is true

node.insertBefore(a, c)
PASS node.children.length === 2 is true
PASS node.children[0] === a is true
PASS node.children[1] === c is true

node.insertBefore(b, c)
PASS node.children.length === 3 is true
PASS node.children[0] === a is true
PASS node.children[1] === b is true
PASS node.children[2] === c is true

node.insertBefore(a, c)
PASS node.children.length === 3 is true
PASS node.children[0] === b is true
PASS node.children[1] === c is true
PASS node.children[2] === a is true

Layout was performed
PASS node.element.childElementCount === 3 is true
PASS node.element.firstElementChild === b.element is true
PASS node.element.firstElementChild.nextElementSibling === c.element is true
PASS node.element.lastElementChild === a.element is true
PASS successfullyParsed is true

TEST COMPLETE

