diff options
author | Anatol Belski <ab@php.net> | 2016-05-03 19:11:15 +0200 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2016-05-03 19:11:15 +0200 |
commit | ee551106bc11d6ac2eb277b810c9b8bb90e318bc (patch) | |
tree | 04979191760aa4ca75431aadddaad065d8ef3c5b /ext | |
parent | 09b8550f59d9d44993c6bfe09405da5e3cabe313 (diff) | |
parent | 2d0081cebd131991eea11481c6af3c8965e8364f (diff) | |
download | php-git-ee551106bc11d6ac2eb277b810c9b8bb90e318bc.tar.gz |
Merge branch 'PHP-7.0'
* PHP-7.0:
add test fo rbug 71805
Diffstat (limited to 'ext')
-rw-r--r-- | ext/xmlreader/tests/XMLReaderBad_bug71805.xml | 7 | ||||
-rw-r--r-- | ext/xmlreader/tests/XMLReaderGood_bug71805.xml | 7 | ||||
-rw-r--r-- | ext/xmlreader/tests/bug71805.phpt | 39 |
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=== |