Annotation of embedaddon/php/ext/dom/tests/DOMNode_replaceChild_basic.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Replacing a child node
! 3: --SKIPIF--
! 4: <?php require_once('skipif.inc'); ?>
! 5: --CREDITS--
! 6: Matt Raines <matt@raines.me.uk>
! 7: #London TestFest 2008
! 8: --FILE--
! 9: <?php
! 10: $document = new DOMDocument();
! 11: $document->loadXML('<?xml version="1.0" encoding="utf-8"?>
! 12: <root><foo><bar/><baz/></foo><spam><eggs/><eggs/></spam></root>');
! 13:
! 14: // Replaces the child node oldChild with newChild in the list of children, and
! 15: // returns the oldChild node.
! 16: $parent = $document->getElementsByTagName('foo')->item(0);
! 17: $new_child = $document->createElement('qux');
! 18: $old_child = $parent->replaceChild($new_child, $parent->firstChild);
! 19: echo "New child replaces old child:\n" . $document->saveXML();
! 20: echo "Old child is returned:\n" . $old_child->tagName . "\n";
! 21:
! 22: // If the newChild is already in the tree, it is first removed.
! 23: $parent = $document->getElementsByTagName('spam')->item(0);
! 24: $parent->replaceChild($new_child, $parent->firstChild);
! 25: echo "Existing child is removed from tree:\n" . $document->saveXML();
! 26:
! 27: // Children are inserted in the correct order.
! 28: $new_child = $document->getElementsByTagName('spam')->item(0);
! 29: $parent = $document->getElementsByTagName('foo')->item(0);
! 30: $parent->replaceChild($new_child, $parent->firstChild);
! 31: echo "Children are inserted in order:\n" . $document->saveXML();
! 32: ?>
! 33: --EXPECT--
! 34: New child replaces old child:
! 35: <?xml version="1.0" encoding="utf-8"?>
! 36: <root><foo><qux/><baz/></foo><spam><eggs/><eggs/></spam></root>
! 37: Old child is returned:
! 38: bar
! 39: Existing child is removed from tree:
! 40: <?xml version="1.0" encoding="utf-8"?>
! 41: <root><foo><baz/></foo><spam><qux/><eggs/></spam></root>
! 42: Children are inserted in order:
! 43: <?xml version="1.0" encoding="utf-8"?>
! 44: <root><foo><spam><qux/><eggs/></spam></foo></root>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>