Testing the LayoutNode.addChild(child[, index]) method.

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


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

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

PASS node.element.childElementCount became 2
PASS node.element.firstElementChild === b.element is true
PASS node.element.lastElementChild === a.element is true
PASS successfullyParsed is true

TEST COMPLETE

