From 1a3a674ee64e8174c54d5e33a3cee1f7125f35a7 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Tue, 26 May 2015 18:32:08 +0200 Subject: [PATCH] added failing tests for bug #62639, bug #67116, bug #69169 and bug #69491 --- ext/simplexml/tests/bug62639.phpt | 63 +++++++++++++++++++++ ext/simplexml/tests/bug67116.phpt | 93 +++++++++++++++++++++++++++++++ ext/simplexml/tests/bug69169.phpt | 70 +++++++++++++++++++++++ ext/simplexml/tests/bug69491.phpt | 20 +++++++ 4 files changed, 246 insertions(+) create mode 100644 ext/simplexml/tests/bug62639.phpt create mode 100644 ext/simplexml/tests/bug67116.phpt create mode 100644 ext/simplexml/tests/bug69169.phpt create mode 100644 ext/simplexml/tests/bug69491.phpt diff --git a/ext/simplexml/tests/bug62639.phpt b/ext/simplexml/tests/bug62639.phpt new file mode 100644 index 0000000000..4a4e157b76 --- /dev/null +++ b/ext/simplexml/tests/bug62639.phpt @@ -0,0 +1,63 @@ +--TEST-- +Bug #62639 (XML structure broken) +--SKIPIF-- + +--FILE-- + + + + + Some Value + + + +XML; + +$a1 = new A($xml1); + +foreach ($a1->b->c->children() as $key => $value) { + var_dump($value); +} + +$xml2 = << + + + Some Value + + +XML; + +$a2 = new A($xml2); + +foreach ($a2->b->c->children() as $key => $value) { + var_dump($value); +}?> +--EXPECT-- +object(A)#2 (2) { + ["@attributes"]=> + array(1) { + ["attr"]=> + string(9) "Some Attr" + } + [0]=> + string(10) "Some Value" +} +object(A)#3 (2) { + ["@attributes"]=> + array(1) { + ["attr"]=> + string(9) "Some Attr" + } + [0]=> + string(10) "Some Value" +} \ No newline at end of file diff --git a/ext/simplexml/tests/bug67116.phpt b/ext/simplexml/tests/bug67116.phpt new file mode 100644 index 0000000000..774e43c99b --- /dev/null +++ b/ext/simplexml/tests/bug67116.phpt @@ -0,0 +1,93 @@ +--TEST-- +Bug #67116 (Inconsistent parsing of Nodes w/o linefeed) +--SKIPIF-- + +--FILE-- + + + + b + + b + + + + + + +XML; +$sxe = simplexml_load_string($xml); +print_r($sxe); + +?> +--EXPECT-- +SimpleXMLElement Object +( + [bs] => SimpleXMLElement Object + ( + [b] => b + ) + + [cs] => SimpleXMLElement Object + ( + [c] => b + ) + + [ds] => SimpleXMLElement Object + ( + [d] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [id] => d + ) + + ) + + ) + + [es] => SimpleXMLElement Object + ( + [e] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [id] => e + ) + + ) + + ) + + [fs] => SimpleXMLElement Object + ( + [f] => Array + ( + [0] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [id] => f + ) + + ) + + [1] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [id] => f + ) + + ) + + ) + + ) + +) diff --git a/ext/simplexml/tests/bug69169.phpt b/ext/simplexml/tests/bug69169.phpt new file mode 100644 index 0000000000..08cf299290 --- /dev/null +++ b/ext/simplexml/tests/bug69169.phpt @@ -0,0 +1,70 @@ +--TEST-- +Bug #69169 (simplexml_load_string parse wrongly when xml given in one row) +--SKIPIF-- + +--FILE-- + + + + + + + + +'; +$b = str_replace(array("\n", "\r", "\t"), "", $a); +$simple_xml = simplexml_load_string($b); +print_r($simple_xml); +?> +--EXPECT-- +SimpleXMLElement Object +( + [@attributes] => Array + ( + [a] => b + ) + + [row] => Array + ( + [0] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [b] => y + ) + + [item] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [s] => t + ) + + ) + + ) + + [1] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [p] => c + ) + + [item] => SimpleXMLElement Object + ( + [@attributes] => Array + ( + [y] => n + ) + + ) + + ) + + ) + +) diff --git a/ext/simplexml/tests/bug69491.phpt b/ext/simplexml/tests/bug69491.phpt new file mode 100644 index 0000000000..b48a40bf95 --- /dev/null +++ b/ext/simplexml/tests/bug69491.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #69491 (simplexml doesn't correctly parse empty nodes on same line as another node) +--SKIPIF-- + +--FILE-- + + +'));?> +--EXPECT-- +object(SimpleXMLElement)#1 (1) { + ["b"]=> + object(SimpleXMLElement)#2 (1) { + ["c"]=> + object(SimpleXMLElement)#3 (0) { + } + } +} -- 2.40.0