summaryrefslogtreecommitdiff
path: root/ext/xmlreader/tests/bug71805.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/xmlreader/tests/bug71805.phpt')
-rw-r--r--ext/xmlreader/tests/bug71805.phpt39
1 files changed, 39 insertions, 0 deletions
diff --git a/ext/xmlreader/tests/bug71805.phpt b/ext/xmlreader/tests/bug71805.phpt
new file mode 100644
index 0000000000..3d1713ace5
--- /dev/null
+++ b/ext/xmlreader/tests/bug71805.phpt
@@ -0,0 +1,39 @@
+--TEST--
+XMLReader: Bug #71805 XML files can generate UTF-8 error even if they are UTF-8
+--SKIPIF--
+<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
+--FILE--
+<?php
+
+TestXML(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'XMLReaderGood_bug71805.xml');
+TestXML(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'XMLReaderBad_bug71805.xml');
+
+function TestXML($file) {
+ $XR = new XMLReader;
+ $XR->open($file, null, LIBXML_NOBLANKS);
+
+ while (($lastRead = $XR->read()) && ($XR->name !== 'records'));
+ while (($lastRead = $XR->read()) && ($XR->name !== 'record'));
+ while ($lastRead) {
+ $xml = $XR->readOuterXML();
+ if ($xml === '') {
+ $err = '';
+ if ($e = libxml_get_last_error()) { $err = $e->message.' (line: '.$e->line.')'; }
+ $XR->close();
+ echo $file.' : Problem with file'.($err ? ' — '.$err : '').'.';
+ echo "\n";
+ return;
+ }
+ while (($lastRead = $XR->next()) && ($XR->name !== 'record'));
+ }
+ $XR->close();
+ echo $file.' : Good!';
+ echo "\n";
+ return;
+}
+?>
+===DONE===
+--EXPECTF--
+%sXMLReaderGood_bug71805.xml : Good!
+%sXMLReaderBad_bug71805.xml : Good!
+===DONE===