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

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


node.insertAfter(a)
PASS node.children.length === 1 is true
PASS node.children[0] === a is true
PASS retVal === a is true

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

node.insertAfter(b, a)
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.insertAfter(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

