summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/xmlreader/tests/XMLReaderBad_bug71805.xml7
-rw-r--r--ext/xmlreader/tests/XMLReaderGood_bug71805.xml7
-rw-r--r--ext/xmlreader/tests/bug71805.phpt39
3 files changed, 53 insertions, 0 deletions
diff --git a/ext/xmlreader/tests/XMLReaderBad_bug71805.xml b/ext/xmlreader/tests/XMLReaderBad_bug71805.xml
new file mode 100644
index 0000000000..68ee25ddb8
--- /dev/null
+++ b/ext/xmlreader/tests/XMLReaderBad_bug71805.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<records>
+
+<record><aaa><bbbb><ccc><![CDATA[XXX Xxxxxxxxxxxx]]></ccc><ddd><![CDATA[XXX Xx]]></ddd></bbbb><eee><![CDATA[Xxxxx xxxxxxx: xxxx://xxx.xxx.xx.xx/xxxx?xxxxXx=0xx000x0-000x-0xx0-x000-x0000xx0xx00
+Xxxxxxxxxxxx xx Xxxxxxxxxxxx Xxxxxxxxx xx Xxxxxxxxx Xxxxxxxxxxxx Xxxxxxxxxxx Xxxxxxxxxxxx (XXX Xxxxxxxxxxxx), xxxxxxxxx xxxxxxx xx Xxx Xxxxxxxxxx Xxxxxxxxxx Xxx.]]></eee></aaa><fff><bbbb><ggg><![CDATA[Xxxxxxxxx Xxxxxxxxxxxxxxx Xxxxxxxxxx xx Xxxxxxxxxxxx]]></ggg><ccc><![CDATA[XXX Xxxxxxxxxxxx]]></ccc></bbbb><hhh><![CDATA[Xx xxxxx, xx xxxxxxxxxxx XXX Xxxxxxxxxxxx x xxxxxcé x’xxxxxxxx xxx x’Xxxxxxléx léxxxxxxxxx xx xx xxxxxxxx xx xx Xxxxxxxxxx Xxxxxxxxxx Xxx (xxx xxx xx xxxxxxxxxx xxxxxxxxx). Xxxxx xxx xréxxxx xxx xxxxxx xxx déxxxxxxxx XXX Xxxxxxxxxxxx xx xxxx xx’xxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxréxxxxxxtéx xx xxxxxxx xxx XX, xxx XXX xx xxx XXX xx xx xxxxxxxx xx xxxxx x’xxxxxxxx xx xxxxx xx xxxxxxxxx xxxxxxxxxxxxx xxréé (XXX). (Xxxxxxxxéx XXX - Xxx 0000)]]></hhh></fff></record>
+
+</records> \ No newline at end of file
diff --git a/ext/xmlreader/tests/XMLReaderGood_bug71805.xml b/ext/xmlreader/tests/XMLReaderGood_bug71805.xml
new file mode 100644
index 0000000000..9a59e0c978
--- /dev/null
+++ b/ext/xmlreader/tests/XMLReaderGood_bug71805.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<records>
+
+<record><aaa><bbbb><ddd><![CDATA[XXX Xx]]></ddd></bbbb><eee><![CDATA[Xxxxx xxxxxxx: xxxx://xxx.xxx.xx.xx/xxxx?xxxxXx=0xx000x0-000x-0xx0-x000-x0000xx0xx00
+Xxxxxxxxxxxx xx Xxxxxxxxxxxx Xxxxxxxxx xx Xxxxxxxxx Xxxxxxxxxxxx Xxxxxxxxxxx Xxxxxxxxxxxx (XXX Xxxxxxxxxxxx), xxxxxxxxx xxxxxxx xx Xxx Xxxxxxxxxx Xxxxxxxxxx Xxx.]]></eee></aaa><fff><bbbb><ggg><![CDATA[Xxxxxxxxx Xxxxxxxxxxxxxxx Xxxxxxxxxx xx Xxxxxxxxxxxx]]></ggg><ccc><![CDATA[XXX Xxxxxxxxxxxx]]></ccc></bbbb><hhh><![CDATA[Xx xxxxx, xx xxxxxxxxxxx XXX Xxxxxxxxxxxx x xxxxxcé x’xxxxxxxx xxx x’Xxxxxxléx léxxxxxxxxx xx xx xxxxxxxx xx xx Xxxxxxxxxx Xxxxxxxxxx Xxx (xxx xxx xx xxxxxxxxxx xxxxxxxxx). Xxxxx xxx xréxxxx xxx xxxxxx xxx déxxxxxxxx XXX Xxxxxxxxxxxx xx xxxx xx’xxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxréxxxxxxtéx xx xxxxxxx xxx XX, xxx XXX xx xxx XXX xx xx xxxxxxxx xx xxxxx x’xxxxxxxx xx xxxxx xx xxxxxxxxx xxxxxxxxxxxxx xxréé (XXX). (Xxxxxxxxéx XXX - Xxx 0000)]]></hhh></fff></record>
+
+</records> \ No newline at end of file
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===