summaryrefslogtreecommitdiff
path: root/ext/dom/tests
diff options
context:
space:
mode:
Diffstat (limited to 'ext/dom/tests')
-rw-r--r--ext/dom/tests/bug36756.phpt2
-rw-r--r--ext/dom/tests/bug38474.phpt7
-rw-r--r--ext/dom/tests/bug43364.phpt40
3 files changed, 47 insertions, 2 deletions
diff --git a/ext/dom/tests/bug36756.phpt b/ext/dom/tests/bug36756.phpt
index af7488d3f..4e47b86e4 100644
--- a/ext/dom/tests/bug36756.phpt
+++ b/ext/dom/tests/bug36756.phpt
@@ -31,5 +31,5 @@ child
Warning: Couldn't fetch DOMElement. Node no longer exists in %sbug36756.php on line %d
-Notice: Undefined property: DOMElement::$nodeType in %sbug36756.php on line %d
+Notice: Undefined property: DOMElement::$nodeType in %sbug36756.php on line %d
nodeType:
diff --git a/ext/dom/tests/bug38474.phpt b/ext/dom/tests/bug38474.phpt
index 7febd22d3..5c1c1abd1 100644
--- a/ext/dom/tests/bug38474.phpt
+++ b/ext/dom/tests/bug38474.phpt
@@ -1,7 +1,12 @@
--TEST--
Bug #38474 (getAttribute select attribute by order, even when prefixed) (OK to fail with libxml2 < 2.6.2x)
--SKIPIF--
-<?php require_once('skipif.inc'); ?>
+<?php
+require_once('skipif.inc');
+if (version_compare(LIBXML_DOTTED_VERSION, "2.6.20", "<")) {
+ print "skip libxml version " . LIBXML_DOTTED_VERSION;
+}
+?>
--FILE--
<?php
$xml = '<node xmlns:pre="http://foo.com/tr/pre"
diff --git a/ext/dom/tests/bug43364.phpt b/ext/dom/tests/bug43364.phpt
new file mode 100644
index 000000000..0df581b7a
--- /dev/null
+++ b/ext/dom/tests/bug43364.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Bug #43364 (recursive xincludes don't remove internal xml nodes properly)
+--FILE--
+<?php
+function loopElements($nodes)
+{
+ $count = 0;
+ foreach($nodes as $node) {
+ if($node instanceof DOMElement) {
+ $count++;
+ if($node->childNodes->length > 0) {
+ $count += loopElements($node->childNodes);
+ }
+ }
+ }
+ return $count;
+}
+
+$xml = <<<DOC
+<?xml version="1.0" encoding="UTF-8"?>
+<root xmlns:xi="http://www.w3.org/2001/XInclude">
+ <a>
+ <a_child1>ac1</a_child1>
+ <a_child2>ac2</a_child2>
+ </a>
+ <b><xi:include xpointer="xpointer(/root/a)" /></b>
+ <c><xi:include xpointer="xpointer(/root/b)" /></c>
+</root>
+DOC;
+
+$doc = new DomDocument();
+$doc->loadXml($xml);
+$doc->xinclude();
+
+$count = loopElements(array($doc->documentElement));
+
+var_dump($count);
+?>
+--EXPECT--
+int(13)