Tests ChildNode.replaceWith((Node or DOMString)...)

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


Test Element.replaceWith((Node or DOMString)...).
Test with no arguments.
PASS parent.childNodes.length is 0

Test with a single element.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0] is d1

Test with a single string.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0].data is 'hello'

Test with a both strings and elements.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0].data is 'hello'
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d1

Test conversion to string
PASS parent.childNodes.length is 3
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0].data is 'null'
PASS parent.childNodes[1] is an instance of Text
PASS parent.childNodes[1].data is 'undefined'
PASS parent.childNodes[2] is an instance of Text
PASS parent.childNodes[2].data is '7'

Test a child without a parent.
PASS child.replaceWith(d1) did not throw exception.

Test replacing with an existing sibling.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is d1
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d2

Test replacing a child with itself.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is child

Test replacing a child with itself and another node.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is child
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d1

Test replacing a child with itself and a sibling.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is d1
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is child


Test Text.replaceWith((Node or DOMString)...).
Test with no arguments.
PASS parent.childNodes.length is 0

Test with a single element.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0] is d1

Test with a single string.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0].data is 'hello'

Test with a both strings and elements.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0].data is 'hello'
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d1

Test conversion to string
PASS parent.childNodes.length is 3
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0].data is 'null'
PASS parent.childNodes[1] is an instance of Text
PASS parent.childNodes[1].data is 'undefined'
PASS parent.childNodes[2] is an instance of Text
PASS parent.childNodes[2].data is '7'

Test a child without a parent.
PASS child.replaceWith(d1) did not throw exception.

Test replacing with an existing sibling.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is d1
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d2

Test replacing a child with itself.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0] is child

Test replacing a child with itself and another node.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0] is child
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d1

Test replacing a child with itself and a sibling.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is d1
PASS parent.childNodes[1] is an instance of Text
PASS parent.childNodes[1] is child


Test Comment.replaceWith((Node or DOMString)...).
Test with no arguments.
PASS parent.childNodes.length is 0

Test with a single element.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0] is d1

Test with a single string.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0].data is 'hello'

Test with a both strings and elements.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0].data is 'hello'
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d1

Test conversion to string
PASS parent.childNodes.length is 3
PASS parent.childNodes[0] is an instance of Text
PASS parent.childNodes[0].data is 'null'
PASS parent.childNodes[1] is an instance of Text
PASS parent.childNodes[1].data is 'undefined'
PASS parent.childNodes[2] is an instance of Text
PASS parent.childNodes[2].data is '7'

Test a child without a parent.
PASS child.replaceWith(d1) did not throw exception.

Test replacing with an existing sibling.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is d1
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d2

Test replacing a child with itself.
PASS parent.childNodes.length is 1
PASS parent.childNodes[0] is an instance of Comment
PASS parent.childNodes[0] is child

Test replacing a child with itself and another node.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Comment
PASS parent.childNodes[0] is child
PASS parent.childNodes[1] is an instance of Element
PASS parent.childNodes[1] is d1

Test replacing a child with itself and a sibling.
PASS parent.childNodes.length is 2
PASS parent.childNodes[0] is an instance of Element
PASS parent.childNodes[0] is d1
PASS parent.childNodes[1] is an instance of Comment
PASS parent.childNodes[1] is child


PASS successfullyParsed is true

TEST COMPLETE

