1--TEST--
2Test reading Element::$innerHTML on XML documents - error cases
3--EXTENSIONS--
4dom
5--FILE--
6<?php
7
8$dom = DOM\XMLDocument::createEmpty();
9
10function createContainer() {
11    global $dom;
12    $element = $dom->createElement("container");
13    return $element;
14}
15
16function test($container) {
17    try {
18        var_dump($container->innerHTML);
19    } catch (DOMException $e) {
20        echo $e->getMessage(), "\n";
21    }
22}
23
24$container = createContainer();
25$container->append("Hello, \x01 world!");
26test($container);
27
28$container = createContainer();
29$container->append($dom->createComment('Hello -- world'));
30test($container);
31
32$container = createContainer();
33$container->append($dom->createComment('Hello world-'));
34test($container);
35
36$container = createContainer();
37$container->append($dom->createComment('Hello world-'));
38test($container);
39
40$container = createContainer();
41$container->append($dom->createComment("\x01"));
42test($container);
43
44$container = createContainer();
45$legacy = new DOMDocument;
46$container->append($dom->importLegacyNode($legacy->createProcessingInstruction('foo:bar', '?>')));
47test($container);
48
49$container = createContainer();
50$legacy = new DOMDocument;
51$container->append($dom->importLegacyNode($legacy->createProcessingInstruction('foo', '?>')));
52test($container);
53
54$container = createContainer();
55$legacy = new DOMDocument;
56$container->append($dom->importLegacyNode($legacy->createProcessingInstruction('xml', '')));
57test($container);
58
59$container = createContainer();
60$legacy = new DOMDocument;
61$container->append($dom->importLegacyNode($legacy->createProcessingInstruction('foo', "\x01")));
62test($container);
63
64$container = createContainer();
65$container->append($dom->createElement("with:colon"));
66test($container);
67
68$container = createContainer();
69$container->append($dom->createElementNS("http://www.w3.org/2000/xmlns/", "xmlns:colon"));
70test($container);
71
72$container = createContainer();
73$element = $container->appendChild(createContainer());
74$element->setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:x", "http://www.w3.org/2000/xmlns/");
75test($container);
76
77$container = createContainer();
78$element = $container->appendChild(createContainer());
79$element->setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:x", "");
80test($container);
81
82$container = createContainer();
83$element = $container->appendChild(createContainer());
84$element->setAttribute("with:colon", "value");
85test($container);
86
87$container = createContainer();
88$element = $container->appendChild(createContainer());
89$element->setAttribute("xmlns", "value");
90test($container);
91
92?>
93--EXPECT--
94The resulting XML serialization is not well-formed
95The resulting XML serialization is not well-formed
96The resulting XML serialization is not well-formed
97The resulting XML serialization is not well-formed
98The resulting XML serialization is not well-formed
99The resulting XML serialization is not well-formed
100The resulting XML serialization is not well-formed
101The resulting XML serialization is not well-formed
102The resulting XML serialization is not well-formed
103The resulting XML serialization is not well-formed
104The resulting XML serialization is not well-formed
105The resulting XML serialization is not well-formed
106The resulting XML serialization is not well-formed
107The resulting XML serialization is not well-formed
108The resulting XML serialization is not well-formed
109