cvs: php4 /ext/xml/tests 001.phpt 002.phpt 003.phpt 004.phpt 006.phpt inc.ent skipif.php xmltest.xml

From: Date: Wed, 30 Aug 2000 01:58:58 +0000
Subject: cvs: php4 /ext/xml/tests 001.phpt 002.phpt 003.phpt 004.phpt 006.phpt inc.ent skipif.php xmltest.xml
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-1451@lists.php.net to get a copy of this message
ssb Tue Aug 29 18:58:58 2000 EDT Added files: /php4/ext/xml/tests 001.phpt 002.phpt 003.phpt 004.phpt 006.phpt inc.ent skipif.php xmltest.xml Log: * added regression tests for the XML extension Index: php4/ext/xml/tests/001.phpt +++ php4/ext/xml/tests/001.phpt --TEST-- XML parser test, function callbacks --SKIPIF-- <?php include("skipif.inc"); ?> --FILE-- <?php $xml_parser = xml_parser_create(); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); xml_set_processing_instruction_handler($xml_parser, "PIHandler"); xml_set_default_handler($xml_parser, "defaultHandler"); xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler"); if (!($fp = @fopen("xmltest.xml", "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } print "parse complete\n"; xml_parser_free($xml_parser); function startElement($parser, $name, $attribs) { print "\{$name"; if (sizeof($attribs)) { while (list($k, $v) = each($attribs)) { print " $k=\"$v\""; } } print "}"; } function endElement($parser, $name) { print "\{/$name}"; } function characterData($parser, $data) { print "\{CDATA[$data]}"; } function PIHandler($parser, $target, $data) { print "\{PI[$target,$data]}"; } function defaultHandler($parser, $data) { if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") { print "\{ENTREF[$data]}"; } else { print "\{?[$data]}"; } } function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId) { print "\{EXTENTREF[$openEntityNames,$base,$systemId,$publicId]}\n"; return true; } ?> --GET-- --POST-- --EXPECT-- {?[<?xml version="1.0" encoding="ISO-8859-1"?>]}{?[ ]}{?[<!DOCTYPE]}{?[ ]}{?[phptest]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["notfound.dtd"]}{?[ ]}{?[[]}{?[ ]}{?[<!ENTITY]}{?[ ]}{?[%]}{?[ ]}{?[incent]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["inc.ent"]}{?[>]}{?[ ]}{?[%incent;]}{?[ ]}{?[]]}{?[>]}{?[ ]}{ROOT ID="elem1"}{CDATA[ ]}{CDATA[ Plain text.]}{CDATA[ ]}{CDATA[ ]}{ELEM1}{CDATA[ ]}{CDATA[ ]}{?[<!-- comment -->]}{CDATA[ ]}{CDATA[ ]}{ELEM2}{CDATA[ ]}{CDATA[ ]}{?[<![CDATA[]}{CDATA[CDATA block]}{?[]]>]}{CDATA[ ]}{CDATA[ ]}{ELEM3}{CDATA[ ]}{CDATA[ ]}{ENTREF[&included-entity;]}{CDATA[ ]}{CDATA[ ]}{ELEM4}{CDATA[ ]}{CDATA[ ]}{PI[test,processing instruction ]}{CDATA[ ]}{CDATA[ ]}{/ELEM4}{CDATA[ ]}{CDATA[ ]}{/ELEM3}{CDATA[ ]}{CDATA[ ]}{/ELEM2}{CDATA[ ]}{CDATA[ ]}{/ELEM1}{CDATA[ ]}{/ROOT}{?[ ]}parse complete Index: php4/ext/xml/tests/002.phpt +++ php4/ext/xml/tests/002.phpt --TEST-- XML parser test, object tuple callbacks --SKIPIF-- <?php include("skipif.inc"); ?> --FILE-- <?php $xml_parser = xml_parser_create(); $obj = new myclass; xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1); xml_set_element_handler($xml_parser, array($obj,"startElement"), array($obj, "endElement")); xml_set_character_data_handler($xml_parser, array($obj, "characterData")); xml_set_processing_instruction_handler($xml_parser, array($obj, "PIHandler")); xml_set_default_handler($xml_parser, array($obj, "defaultHandler")); xml_set_external_entity_ref_handler($xml_parser, array($obj, "externalEntityRefHandler")); if (!($fp = @fopen("xmltest.xml", "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } print "parse complete\n"; xml_parser_free($xml_parser); class myclass { function startElement($parser, $name, $attribs) { print "\{$name"; if (sizeof($attribs)) { while (list($k, $v) = each($attribs)) { print " $k=\"$v\""; } } print "}"; } function endElement($parser, $name) { print "\{/$name}"; } function characterData($parser, $data) { print "\{CDATA[$data]}"; } function PIHandler($parser, $target, $data) { print "\{PI[$target,$data]}"; } function defaultHandler($parser, $data) { if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") { print "\{ENTREF[$data]}"; } else { print "\{?[$data]}"; } } function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId) { print "\{EXTENTREF[$openEntityNames,$base,$systemId,$publicId]}\n"; return true; } } ?> --GET-- --POST-- --EXPECT-- {?[<?xml version="1.0" encoding="ISO-8859-1"?>]}{?[ ]}{?[<!DOCTYPE]}{?[ ]}{?[phptest]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["notfound.dtd"]}{?[ ]}{?[[]}{?[ ]}{?[<!ENTITY]}{?[ ]}{?[%]}{?[ ]}{?[incent]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["inc.ent"]}{?[>]}{?[ ]}{?[%incent;]}{?[ ]}{?[]]}{?[>]}{?[ ]}{ROOT ID="elem1"}{CDATA[ ]}{CDATA[ Plain text.]}{CDATA[ ]}{CDATA[ ]}{ELEM1}{CDATA[ ]}{CDATA[ ]}{?[<!-- comment -->]}{CDATA[ ]}{CDATA[ ]}{ELEM2}{CDATA[ ]}{CDATA[ ]}{?[<![CDATA[]}{CDATA[CDATA block]}{?[]]>]}{CDATA[ ]}{CDATA[ ]}{ELEM3}{CDATA[ ]}{CDATA[ ]}{ENTREF[&included-entity;]}{CDATA[ ]}{CDATA[ ]}{ELEM4}{CDATA[ ]}{CDATA[ ]}{PI[test,processing instruction ]}{CDATA[ ]}{CDATA[ ]}{/ELEM4}{CDATA[ ]}{CDATA[ ]}{/ELEM3}{CDATA[ ]}{CDATA[ ]}{/ELEM2}{CDATA[ ]}{CDATA[ ]}{/ELEM1}{CDATA[ ]}{/ROOT}{?[ ]}parse complete Index: php4/ext/xml/tests/003.phpt +++ php4/ext/xml/tests/003.phpt --TEST-- XML parser test, xml_set_object callbacks --SKIPIF-- <?php include("skipif.inc"); ?> --FILE-- <?php $xml_parser = xml_parser_create(); $obj = new myclass; xml_set_object($xml_parser, &$obj); xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1); xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); xml_set_processing_instruction_handler($xml_parser, "PIHandler"); xml_set_default_handler($xml_parser, "defaultHandler"); xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler"); if (!($fp = @fopen("xmltest.xml", "r"))) { die("could not open XML input"); } while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser, $data, feof($fp))) { die(sprintf("XML error: %s at line %d\n", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } print "parse complete\n"; xml_parser_free($xml_parser); class myclass { function startElement($parser, $name, $attribs) { print "\{$name"; if (sizeof($attribs)) { while (list($k, $v) = each($attribs)) { print " $k=\"$v\""; } } print "}"; } function endElement($parser, $name) { print "\{/$name}"; } function characterData($parser, $data) { print "\{CDATA[$data]}"; } function PIHandler($parser, $target, $data) { print "\{PI[$target,$data]}"; } function defaultHandler($parser, $data) { if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") { print "\{ENTREF[$data]}"; } else { print "\{?[$data]}"; } } function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId, $publicId) { print "\{EXTENTREF[$openEntityNames,$base,$systemId,$publicId]}\n"; return true; } } ?> --GET-- --POST-- --EXPECT-- {?[<?xml version="1.0" encoding="ISO-8859-1"?>]}{?[ ]}{?[<!DOCTYPE]}{?[ ]}{?[phptest]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["notfound.dtd"]}{?[ ]}{?[[]}{?[ ]}{?[<!ENTITY]}{?[ ]}{?[%]}{?[ ]}{?[incent]}{?[ ]}{?[SYSTEM]}{?[ ]}{?["inc.ent"]}{?[>]}{?[ ]}{?[%incent;]}{?[ ]}{?[]]}{?[>]}{?[ ]}{ROOT ID="elem1"}{CDATA[ ]}{CDATA[ Plain text.]}{CDATA[ ]}{CDATA[ ]}{ELEM1}{CDATA[ ]}{CDATA[ ]}{?[<!-- comment -->]}{CDATA[ ]}{CDATA[ ]}{ELEM2}{CDATA[ ]}{CDATA[ ]}{?[<![CDATA[]}{CDATA[CDATA block]}{?[]]>]}{CDATA[ ]}{CDATA[ ]}{ELEM3}{CDATA[ ]}{CDATA[ ]}{ENTREF[&included-entity;]}{CDATA[ ]}{CDATA[ ]}{ELEM4}{CDATA[ ]}{CDATA[ ]}{PI[test,processing instruction ]}{CDATA[ ]}{CDATA[ ]}{/ELEM4}{CDATA[ ]}{CDATA[ ]}{/ELEM3}{CDATA[ ]}{CDATA[ ]}{/ELEM2}{CDATA[ ]}{CDATA[ ]}{/ELEM1}{CDATA[ ]}{/ROOT}{?[ ]}parse complete Index: php4/ext/xml/tests/004.phpt +++ php4/ext/xml/tests/004.phpt --TEST-- XML parser case folding test --SKIPIF-- <?php include("skipif.php"); ?> --FILE-- <?php $xp = xml_parser_create(); xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false); xml_set_element_handler($xp, "start_element", "end_element"); $fp = fopen("xmltest.xml", "r"); while ($data = fread($fp, 4096)) { xml_parse($xp, $data, feof($fp)); } xml_parser_free($xp); $xp = xml_parser_create(); xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, true); xml_set_element_handler($xp, "start_element", "end_element"); $fp = fopen("xmltest.xml", "r"); while ($data = fread($fp, 4096)) { xml_parse($xp, $data, feof($fp)); } xml_parser_free($xp); function start_element($xp, $elem, $attribs) { print "<$elem"; if (sizeof($attribs)) { while (list($k, $v) = each($attribs)) { print " $k=\"$v\""; } } print ">\n"; } function end_element($xp, $elem) { print "</$elem>\n"; } ?> --GET-- --POST-- --EXPECT-- <root id="elem1"> <elem1> <elem2> <elem3> <elem4> </elem4> </elem3> </elem2> </elem1> </root> <ROOT ID="elem1"> <ELEM1> <ELEM2> <ELEM3> <ELEM4> </ELEM4> </ELEM3> </ELEM2> </ELEM1> </ROOT> Index: php4/ext/xml/tests/006.phpt +++ php4/ext/xml/tests/006.phpt --TEST-- UTF-8<->ISO Latin 1 encoding/decoding test --SKIPIF-- <?php include("skipif.php"); ?> --FILE-- <?php printf("%s -> %s\n", urlencode("æ"), urlencode(utf8_encode("æ"))); printf("%s <- %s\n", urlencode(utf8_decode(urldecode("%C3%A6"))), "%C3%A6"); ?> --GET-- --POST-- --EXPECT-- %E6 -> %C3%A6 %E6 <- %C3%A6 Index: php4/ext/xml/tests/inc.ent +++ php4/ext/xml/tests/inc.ent <!ENTITY included-entity "This is text included from an entity"> Index: php4/ext/xml/tests/skipif.php +++ php4/ext/xml/tests/skipif.php <?php if (!extension_loaded("xml")) { $dlext = (substr(PHP_OS, 0, 3) == "WIN") ? ".dll" : ".so"; @dl("xml$dlext"); } if (!extension_loaded("xml")) { print "skip\n"; } ?> Index: php4/ext/xml/tests/xmltest.xml +++ php4/ext/xml/tests/xmltest.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE phptest SYSTEM "notfound.dtd" [ <!ENTITY % incent SYSTEM "inc.ent"> %incent; ]> <root id="elem1"> Plain text. <elem1> <!-- comment --> <elem2> <![CDATA[CDATA block]]> <elem3> &included-entity; <elem4> <?test processing instruction ?> </elem4> </elem3> </elem2> </elem1> </root>

« previous php.cvs (#1451) next »