1--TEST--
2DOM\Element::setAttributeNode(NS) adopting from another document
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7
8$dom1 = DOM\HTMLDocument::createEmpty();
9$container = $dom1->appendChild($dom1->createElement("container"));
10
11echo "--- Without namespace ---\n";
12
13$dom2 = DOM\HTMLDocument::createEmpty();
14$attr = $dom2->createAttribute("my-attribute");
15$attr->value = "1";
16
17$container->setAttributeNode($attr);
18var_dump($attr->ownerDocument === $dom1);
19
20// Should not cause problems
21unset($dom2);
22unset($attr);
23
24echo "--- With namespace ---\n";
25
26$dom2 = DOM\HTMLDocument::createEmpty();
27$attr2 = $dom2->createAttributeNS("urn:a", "a:my-attribute");
28$attr2->value = "2";
29$dom1->documentElement->setAttributeNode($attr2);
30
31$dom2 = DOM\HTMLDocument::createEmpty();
32$attr3 = $dom2->createAttributeNS("urn:b", "a:my-attribute");
33$attr3->value = "3";
34$dom1->documentElement->setAttributeNode($attr3);
35
36var_dump($attr2->prefix, $attr2->namespaceURI, $attr2->localName);
37var_dump($attr3->prefix, $attr3->namespaceURI, $attr3->localName);
38
39echo "--- Resulting document ---\n";
40
41echo $dom1->saveHTML(), "\n";
42
43?>
44--EXPECT--
45--- Without namespace ---
46bool(true)
47--- With namespace ---
48string(1) "a"
49string(5) "urn:a"
50string(12) "my-attribute"
51string(1) "a"
52string(5) "urn:b"
53string(12) "my-attribute"
54--- Resulting document ---
55<container my-attribute="1" a:my-attribute="2" a:my-attribute="3"></container>
56