summaryrefslogtreecommitdiff
path: root/ext/dom/tests
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2005-10-27 23:51:22 +0000
committerRob Richards <rrichards@php.net>2005-10-27 23:51:22 +0000
commit2e8f773eee184bb31c07144b24dfa1c6c625fec4 (patch)
tree43dace14f9b2bd98669e57c776992865213d9333 /ext/dom/tests
parenta9cac89541297bd15af2ce6b0ae9e92b37e3e49b (diff)
downloadphp-git-2e8f773eee184bb31c07144b24dfa1c6c625fec4.tar.gz
MFH: fix crash setting attr from foreign doc (throws exception)
add test
Diffstat (limited to 'ext/dom/tests')
-rw-r--r--ext/dom/tests/dom_set_attr_node.phpt67
1 files changed, 67 insertions, 0 deletions
diff --git a/ext/dom/tests/dom_set_attr_node.phpt b/ext/dom/tests/dom_set_attr_node.phpt
new file mode 100644
index 0000000000..e87a96011c
--- /dev/null
+++ b/ext/dom/tests/dom_set_attr_node.phpt
@@ -0,0 +1,67 @@
+--TEST--
+Test: setAttributeNode()
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+$xml = <<<HERE
+<?xml version="1.0" ?>
+<root a="b" />
+HERE;
+
+$xml2 = <<<HERE
+<?xml version="1.0" ?>
+<doc2 />
+HERE;
+
+$dom = new DOMDocument();
+$dom->loadXML($xml);
+$root = $dom->documentElement;
+$attr = $root->getAttributeNode('a');
+
+$dom2 = new DOMDocument();
+$dom2->loadXML($xml2);
+$root2 = $dom2->documentElement;
+try {
+ $root2->setAttributeNode($attr);
+} catch (domexception $e) {
+ var_dump($e);
+}
+
+?>
+--EXPECTF--
+object(DOMException)#%d (6) {
+ ["message:protected"]=>
+ string(20) "Wrong Document Error"
+ ["string:private"]=>
+ string(0) ""
+ ["file:protected"]=>
+ string(%d) "%sdom_set_attr_node.php"
+ ["line:protected"]=>
+ int(22)
+ ["trace:private"]=>
+ array(1) {
+ [0]=>
+ array(6) {
+ ["file"]=>
+ string(%d) "%sdom_set_attr_node.php"
+ ["line"]=>
+ int(22)
+ ["function"]=>
+ string(16) "setAttributeNode"
+ ["class"]=>
+ string(10) "DOMElement"
+ ["type"]=>
+ string(2) "->"
+ ["args"]=>
+ array(1) {
+ [0]=>
+ object(DOMAttr)#%d (0) {
+ }
+ }
+ }
+ }
+ ["code"]=>
+ int(4)
+} \ No newline at end of file