bug36756.phpt 931 B

1234567891011121314151617181920212223242526272829303132333435
  1. --TEST--
  2. Bug #36756 (DOMDocument::removeChild corrupts node)
  3. --SKIPIF--
  4. <?php require_once('skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. /* Node is preserved from removeChild */
  8. $dom = new DOMDocument();
  9. $dom->loadXML('<root><child/></root>');
  10. $xpath = new DOMXpath($dom);
  11. $node = $xpath->query('/root')->item(0);
  12. echo $node->nodeName . "\n";
  13. $dom->removeChild($GLOBALS['dom']->firstChild);
  14. echo "nodeType: " . $node->nodeType . "\n";
  15. /* Node gets destroyed during removeChild */
  16. $dom->loadXML('<root><child/></root>');
  17. $xpath = new DOMXpath($dom);
  18. $node = $xpath->query('//child')->item(0);
  19. echo $node->nodeName . "\n";
  20. $GLOBALS['dom']->removeChild($GLOBALS['dom']->firstChild);
  21. echo "nodeType: " . $node->nodeType . "\n";
  22. ?>
  23. --EXPECTF--
  24. root
  25. nodeType: 1
  26. child
  27. Warning: Couldn't fetch DOMElement. Node no longer exists in %sbug36756.php on line %d
  28. Notice: Undefined property: DOMElement::$nodeType in %sbug36756.php on line %d
  29. nodeType: