summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2016-05-03 19:10:40 +0200
committerAnatol Belski <ab@php.net>2016-05-03 19:10:40 +0200
commit2d0081cebd131991eea11481c6af3c8965e8364f (patch)
tree134aa6f9bb3efe31ec1105dc7c0236409eb44d9a
parent578ba03339800e9e2f8217a3c8c951d4ae095b6b (diff)
parent53511513524d37cf430b4cf3cc61bda44173e441 (diff)
downloadphp-git-2d0081cebd131991eea11481c6af3c8965e8364f.tar.gz
Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6: add test fo rbug 71805
-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===