]> granicus.if.org Git - php/commitdiff
Test xml_error_string() and xml_get_error_code()
authorSymeon Charalabides <symeon@systasis.com>
Sat, 25 Apr 2020 00:04:35 +0000 (01:04 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 27 Apr 2020 09:56:58 +0000 (11:56 +0200)
Closes GH-5456.

ext/xml/tests/xml_error_string_basic.phpt [new file with mode: 0644]

diff --git a/ext/xml/tests/xml_error_string_basic.phpt b/ext/xml/tests/xml_error_string_basic.phpt
new file mode 100644 (file)
index 0000000..e72fa68
--- /dev/null
@@ -0,0 +1,38 @@
+--TEST--
+xml_error_string() - Basic test on 5 error codes
+--SKIPIF--
+<?php
+if (!extension_loaded('xml')) {
+    exit('Skip - XML extension not loaded');
+}
+?>
+--FILE--
+<?php
+$xmls = array(
+    '<?xml version="1.0"?><element>',
+    '<?xml>',
+    '<?xml version="dummy">',
+    '<?xml?>',
+    '<?xml version="1.0"?><elem></element>',
+);
+
+foreach ($xmls as $xml) {
+    $xml_parser = xml_parser_create();
+    if (!xml_parse($xml_parser, $xml, true)) {
+        var_dump(xml_get_error_code($xml_parser));
+        var_dump(xml_error_string(xml_get_error_code($xml_parser)));
+    }
+    xml_parser_free($xml_parser);
+}
+?>
+--EXPECT--
+int(5)
+string(20) "Invalid document end"
+int(47)
+string(35) "Processing Instruction not finished"
+int(57)
+string(28) "XML declaration not finished"
+int(64)
+string(17) "Reserved XML Name"
+int(76)
+string(14) "Mismatched tag"