diff options
Diffstat (limited to 'ext/xml/tests/xml_set_notation_decl_handler_basic.phpt')
| -rw-r--r-- | ext/xml/tests/xml_set_notation_decl_handler_basic.phpt | 102 | 
1 files changed, 102 insertions, 0 deletions
diff --git a/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt b/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt new file mode 100644 index 0000000..6616681 --- /dev/null +++ b/ext/xml/tests/xml_set_notation_decl_handler_basic.phpt @@ -0,0 +1,102 @@ +--TEST-- +Test xml_set_notation_decl_handler function : basic  +--SKIPIF-- +<?php  +if (!extension_loaded("xml")) { +	print "skip - XML extension not loaded";  +}	  +?> +--FILE-- +<?php +/* Prototype  : proto bool xml_set_notation_decl_handler  ( resource $parser  , callback $handler  ) + * Description: Sets the notation declaration handler function for the XML parser. + * Source code: ext/xml/xml.c + * Alias to functions:  + */ + +class XML_Parser +{ + +    function unparsed_entity_decl_handler($parser, $entity_name, $base, $system_ID, $public_ID, $notation_name) +  	{ +  		echo "unparsed_entity_decl_handler called\n"; + 		echo "...Entity name=" . $entity_name . "\n"; + 		echo "...Base=" . $base . "\n"; + 		echo "...System ID=" . $system_ID . "\n"; + 		echo "...Public ID=" . $public_ID . "\n"; + 		echo "...Notation name=" . $notation_name . "\n"; +  	} +  	 +  	function notation_decl_handler($parser, $name, $base, $system_ID,$public_ID) +  	{ +  		echo "notation_decl_handler called\n";  + 		echo "...Name=" . $name . "\n"; + 		echo "...Base=" . $base . "\n"; + 		echo "...System ID=" . $system_ID . "\n"; + 		echo "...Public ID=" . $public_ID . "\n"; +  	} +     +    function parse($data) +    { +        $parser = xml_parser_create(); +        xml_set_object($parser, $this); +        xml_set_notation_decl_handler($parser, "notation_decl_handler"); +        xml_set_unparsed_entity_decl_handler($parser, "unparsed_entity_decl_handler"); +        xml_parse($parser, $data, true); +        xml_parser_free($parser); +    } +} + +$xml = <<<HERE +<?xml version="1.0"?> +<!DOCTYPE dates [ +    <!NOTATION USDATE SYSTEM "http://www.schema.net/usdate.not"> +    <!NOTATION AUSDATE SYSTEM "http://www.schema.net/ausdate.not"> +    <!NOTATION ISODATE SYSTEM "http://www.schema.net/isodate.not"> +    <!ENTITY testUS  SYSTEM "test_usdate.xml" NDATA USDATE> +	<!ENTITY testAUS SYSTEM "test_ausdate.xml" NDATA AUSDATE> +	<!ENTITY testISO SYSTEM "test_isodate_xml" NDATA ISODATE>]> +]> +HERE; + +echo "Simple test of xml_set_notation_decl_handler(() function\n";  +$p1 = new Xml_Parser(); +$p1->parse($xml);  +echo "Done\n";  +?> +--EXPECT-- +Simple test of xml_set_notation_decl_handler(() function +notation_decl_handler called +...Name=USDATE +...Base= +...System ID=http://www.schema.net/usdate.not +...Public ID= +notation_decl_handler called +...Name=AUSDATE +...Base= +...System ID=http://www.schema.net/ausdate.not +...Public ID= +notation_decl_handler called +...Name=ISODATE +...Base= +...System ID=http://www.schema.net/isodate.not +...Public ID= +unparsed_entity_decl_handler called +...Entity name=testUS +...Base= +...System ID=test_usdate.xml +...Public ID= +...Notation name=USDATE +unparsed_entity_decl_handler called +...Entity name=testAUS +...Base= +...System ID=test_ausdate.xml +...Public ID= +...Notation name=AUSDATE +unparsed_entity_decl_handler called +...Entity name=testISO +...Base= +...System ID=test_isodate_xml +...Public ID= +...Notation name=ISODATE +Done  | 
