diff options
Diffstat (limited to 'ext/xmlwriter/tests')
34 files changed, 1029 insertions, 0 deletions
diff --git a/ext/xmlwriter/tests/001.phpt b/ext/xmlwriter/tests/001.phpt new file mode 100644 index 0000000..a9349d2 --- /dev/null +++ b/ext/xmlwriter/tests/001.phpt @@ -0,0 +1,25 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, file buffer, flush +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = xmlwriter_open_uri($doc_dest); +xmlwriter_start_document($xw, '1.0', 'UTF-8'); +xmlwriter_start_element($xw, "tag1"); +xmlwriter_end_document($xw); + +// Force to write and empty the buffer +$output_bytes = xmlwriter_flush($xw, true); +echo file_get_contents($doc_dest); +unset($xw); +unlink('001.xml'); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<tag1/> +===DONE=== diff --git a/ext/xmlwriter/tests/002.phpt b/ext/xmlwriter/tests/002.phpt new file mode 100644 index 0000000..f2537a4 --- /dev/null +++ b/ext/xmlwriter/tests/002.phpt @@ -0,0 +1,22 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, membuffer, flush +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = xmlwriter_open_memory($doc_dest); +xmlwriter_start_document($xw, '1.0', 'UTF-8'); +xmlwriter_start_element($xw, "tag1"); +xmlwriter_end_document($xw); + +// Force to write and empty the buffer +echo xmlwriter_flush($xw, true); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<tag1/> +===DONE=== diff --git a/ext/xmlwriter/tests/003.phpt b/ext/xmlwriter/tests/003.phpt new file mode 100644 index 0000000..5415797 --- /dev/null +++ b/ext/xmlwriter/tests/003.phpt @@ -0,0 +1,35 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, membuffer, flush, attribute +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = xmlwriter_open_memory($doc_dest); +xmlwriter_start_document($xw, '1.0', 'UTF-8'); +xmlwriter_start_element($xw, "tag1"); + + +$res = xmlwriter_start_attribute($xw, 'attr1'); +xmlwriter_text($xw, "attr1_value"); +xmlwriter_end_attribute($xw); + +xmlwriter_write_attribute($xw, "att2", "att2_value"); +xmlwriter_text($xw, "Test text for tag1"); +$res = xmlwriter_start_element($xw, 'tag2'); +if ($res < 1) { + echo "StartElement context validation failed\n"; + exit(); +} +xmlwriter_end_document($xw); + +// Force to write and empty the buffer +echo xmlwriter_flush($xw, true); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<tag1 attr1="attr1_value" att2="att2_value">Test text for tag1<tag2/></tag1> +===DONE=== diff --git a/ext/xmlwriter/tests/004.phpt b/ext/xmlwriter/tests/004.phpt new file mode 100644 index 0000000..2d3e858 --- /dev/null +++ b/ext/xmlwriter/tests/004.phpt @@ -0,0 +1,36 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, file buffer, flush +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = xmlwriter_open_uri($doc_dest); +xmlwriter_start_document($xw, '1.0', 'UTF-8'); +xmlwriter_start_element($xw, "tag1"); + +xmlwriter_start_pi($xw, "PHP"); +xmlwriter_text($xw, 'echo $a;'); +xmlwriter_end_pi($xw); +xmlwriter_end_document($xw); + +// Force to write and empty the buffer +$output_bytes = xmlwriter_flush($xw, true); +$md5_out = md5_file($doc_dest); +$md5_res = md5('<?xml version="1.0" encoding="UTF-8"?> +<tag1><?PHP echo $a;?></tag1> +'); +unset($xw); +unlink('001.xml'); +if ($md5_out != $md5_res) { + echo "failed: $md5_res != $md5_out\n"; +} else { + echo "ok.\n"; +} +?> +===DONE=== +--EXPECT-- +ok. +===DONE=== diff --git a/ext/xmlwriter/tests/005.phpt b/ext/xmlwriter/tests/005.phpt new file mode 100644 index 0000000..ab933c6 --- /dev/null +++ b/ext/xmlwriter/tests/005.phpt @@ -0,0 +1,33 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, comments +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); +?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = xmlwriter_open_uri($doc_dest); +xmlwriter_start_document($xw, '1.0', 'UTF-8'); +xmlwriter_start_element($xw, "tag1"); + +xmlwriter_start_comment($xw); +xmlwriter_text($xw, 'comment'); +xmlwriter_end_comment($xw); +xmlwriter_write_comment($xw, "comment #2"); +xmlwriter_end_document($xw); + +// Force to write and empty the buffer +$output_bytes = xmlwriter_flush($xw, true); +echo file_get_contents($doc_dest); +unset($xw); +unlink('001.xml'); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<tag1><!--comment--><!--comment #2--></tag1> +===DONE=== diff --git a/ext/xmlwriter/tests/006.phpt b/ext/xmlwriter/tests/006.phpt new file mode 100644 index 0000000..48eb299 --- /dev/null +++ b/ext/xmlwriter/tests/006.phpt @@ -0,0 +1,26 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, startDTD/writeElementNS +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = xmlwriter_open_uri($doc_dest); +xmlwriter_start_dtd($xw, 'foo', NULL, 'urn:bar'); +xmlwriter_end_dtd($xw); +xmlwriter_start_element($xw, 'foo'); +xmlwriter_write_element_ns($xw, 'foo', 'bar', 'urn:foo', 'dummy content'); +xmlwriter_end_element($xw); + +// Force to write and empty the buffer +$output_bytes = xmlwriter_flush($xw, true); +echo file_get_contents($doc_dest); +unset($xw); +unlink('001.xml'); +?> +--EXPECT-- +<!DOCTYPE foo SYSTEM "urn:bar"><foo><foo:bar xmlns:foo="urn:foo">dummy content</foo:bar></foo> diff --git a/ext/xmlwriter/tests/007.phpt b/ext/xmlwriter/tests/007.phpt new file mode 100644 index 0000000..47965c7 --- /dev/null +++ b/ext/xmlwriter/tests/007.phpt @@ -0,0 +1,38 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, Elements & Attributes +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +if (LIBXML_VERSION < 20629) die("skip: libxml2 2.6.29+ required"); +?> +--FILE-- +<?php +/* $Id$ */ + +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, TRUE); +xmlwriter_set_indent_string($xw, ' '); +xmlwriter_start_document($xw, '1.0', "UTF-8"); +xmlwriter_start_element($xw, 'root'); +xmlwriter_start_element_ns($xw, 'ns1', 'child1', 'urn:ns1'); +xmlwriter_start_attribute_ns($xw, 'ns1', 'att1', 'urn:ns1'); +xmlwriter_text($xw, 'a&b'); +xmlwriter_end_attribute($xw); +xmlwriter_write_attribute($xw, 'att2', "double\" single'"); +xmlwriter_start_attribute_ns($xw, 'ns1', 'att2', 'urn:ns1'); +xmlwriter_text($xw, "<>\"'&"); +xmlwriter_end_attribute($xw); +xmlwriter_write_element($xw, 'chars', "special characters: <>\"'&"); +xmlwriter_end_element($xw); +xmlwriter_end_document($xw); +// Force to write and empty the buffer +$output = xmlwriter_flush($xw, true); +print $output; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<root> + <ns1:child1 ns1:att1="a&b" att2="double" single'" ns1:att2="<>"'&" xmlns:ns1="urn:ns1"> + <chars>special characters: <>"'&</chars> + </ns1:child1> +</root> diff --git a/ext/xmlwriter/tests/008.phpt b/ext/xmlwriter/tests/008.phpt new file mode 100644 index 0000000..88768b1 --- /dev/null +++ b/ext/xmlwriter/tests/008.phpt @@ -0,0 +1,40 @@ +--TEST-- +XMLWriter: libxml2 XML Writer DTD Element & Attlist +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php +/* $Id$ */ + +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, TRUE); +xmlwriter_start_document($xw, NULL, "UTF-8"); +xmlwriter_start_dtd_entity($xw, "ent", false); +xmlwriter_text($xw, "val"); +xmlwriter_end_dtd_entity($xw); +xmlwriter_write_dtd_entity($xw, "ent2", "val2"); +xmlwriter_write_dtd_element($xw, 'sxe', '(elem1+, elem11, elem22*)'); +xmlwriter_write_dtd_attlist($xw, 'sxe', 'id CDATA #implied'); +xmlwriter_start_dtd_element($xw, 'elem1'); +xmlwriter_text($xw, 'elem2*'); +xmlwriter_end_dtd_element($xw); +xmlwriter_start_dtd_attlist($xw, 'elem1'); +xmlwriter_text($xw, "attr1 CDATA #required\n"); +xmlwriter_text($xw, 'attr2 CDATA #implied'); +xmlwriter_end_dtd_attlist($xw); +xmlwriter_end_document($xw); +// Force to write and empty the buffer +$output = xmlwriter_flush($xw, true); +print $output; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<!ENTITY ent "val"> +<!ENTITY ent2 "val2"> +<!ELEMENT sxe (elem1+, elem11, elem22*)> +<!ATTLIST sxe id CDATA #implied> +<!ELEMENT elem1 elem2*> +<!ATTLIST elem1 attr1 CDATA #required +attr2 CDATA #implied> diff --git a/ext/xmlwriter/tests/009.phpt b/ext/xmlwriter/tests/009.phpt new file mode 100644 index 0000000..002916f --- /dev/null +++ b/ext/xmlwriter/tests/009.phpt @@ -0,0 +1,45 @@ +--TEST-- +XMLWriter: PI, Comment, CDATA +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); +?> +--FILE-- +<?php +/* $Id$ */ +/* +Libxml 2.6.24 and up adds a new line after a processing instruction (PI) +*/ +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, TRUE); +xmlwriter_start_document($xw, NULL, "UTF-8"); +xmlwriter_start_element($xw, 'root'); +xmlwriter_write_attribute($xw, 'id', 'elem1'); +xmlwriter_start_element($xw, 'elem1'); +xmlwriter_write_attribute($xw, 'attr1', 'first'); +xmlwriter_write_comment($xw, 'start PI'); +xmlwriter_start_element($xw, 'pi'); +xmlwriter_write_pi($xw, 'php', 'echo "hello world"; '); +xmlwriter_end_element($xw); +xmlwriter_start_element($xw, 'cdata'); +xmlwriter_start_cdata($xw); +xmlwriter_text($xw, '<>&"'); +xmlwriter_end_cdata($xw); +xmlwriter_end_element($xw); +xmlwriter_end_element($xw); +xmlwriter_end_element($xw); +xmlwriter_end_document($xw); +// Force to write and empty the buffer +$output = xmlwriter_flush($xw, true); +print $output; +?> +--EXPECTF-- +<?xml version="1.0" encoding="UTF-8"?> +<root id="elem1"> + <elem1 attr1="first"> + <!--start PI--> + <pi><?php echo "hello world"; ?>%w</pi> + <cdata><![CDATA[<>&"]]></cdata> + </elem1> +</root> diff --git a/ext/xmlwriter/tests/010.phpt b/ext/xmlwriter/tests/010.phpt new file mode 100644 index 0000000..9f066a7 --- /dev/null +++ b/ext/xmlwriter/tests/010.phpt @@ -0,0 +1,45 @@ +--TEST-- +xmlwriter_start/end_attribute() +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php + +$file = dirname(__FILE__).'/010.tmp'; + +$xw = xmlwriter_open_uri($file); + +var_dump(xmlwriter_start_element($xw, "tag")); +var_dump(xmlwriter_start_attribute($xw, "attr")); +var_dump(xmlwriter_end_attribute($xw)); +var_dump(xmlwriter_start_attribute($xw, "-1")); +var_dump(xmlwriter_end_attribute($xw)); +var_dump(xmlwriter_start_attribute($xw, "\"")); +var_dump(xmlwriter_end_attribute($xw)); +var_dump(xmlwriter_end_element($xw)); + +unset($xw); + +var_dump(file_get_contents($file)); + +@unlink($file); + +echo "Done\n"; +?> +--EXPECTF-- +bool(true) +bool(true) +bool(true) + +Warning: xmlwriter_start_attribute(): Invalid Attribute Name in %s on line %d +bool(false) +bool(false) + +Warning: xmlwriter_start_attribute(): Invalid Attribute Name in %s on line %d +bool(false) +bool(false) +bool(true) +string(14) "<tag attr=""/>" +Done diff --git a/ext/xmlwriter/tests/OO_001.phpt b/ext/xmlwriter/tests/OO_001.phpt new file mode 100644 index 0000000..be448b9 --- /dev/null +++ b/ext/xmlwriter/tests/OO_001.phpt @@ -0,0 +1,26 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, file buffer, flush +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = new XMLWriter(); +$xw->openUri($doc_dest); +$xw->startDocument('1.0', 'UTF-8', 'standalonearg'); +$xw->startElement("tag1"); +$xw->endDocument(); + +// Force to write and empty the buffer +$output_bytes = $xw->flush(true); +echo file_get_contents($doc_dest); +unset($xw); +unlink('001.xml'); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8" standalone="standalonearg"?> +<tag1/> +===DONE=== diff --git a/ext/xmlwriter/tests/OO_002.phpt b/ext/xmlwriter/tests/OO_002.phpt new file mode 100644 index 0000000..ec605f5 --- /dev/null +++ b/ext/xmlwriter/tests/OO_002.phpt @@ -0,0 +1,22 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, membuffer, flush +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->startDocument('1.0', 'UTF-8', 'standalone'); +$xw->startElement("tag1"); +$xw->endDocument(); + +// Force to write and empty the buffer +echo $xw->flush(true); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8" standalone="standalone"?> +<tag1/> +===DONE=== diff --git a/ext/xmlwriter/tests/OO_003.phpt b/ext/xmlwriter/tests/OO_003.phpt new file mode 100644 index 0000000..7fb4791 --- /dev/null +++ b/ext/xmlwriter/tests/OO_003.phpt @@ -0,0 +1,37 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, membuffer, flush, text, attribute +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->startDocument('1.0', 'UTF-8'); +$xw->startElement("tag1"); + +$res = $xw->startAttribute('attr1'); +$xw->text("attr1_value"); +$xw->endAttribute(); + +$res = $xw->startAttribute('attr2'); +$xw->text("attr2_value"); +$xw->endAttribute(); + +$xw->text("Test text for tag1"); +$res = $xw->startElement('tag2'); +if ($res < 1) { + echo "StartElement context validation failed\n"; + exit(); +} +$xw->endDocument(); + +// Force to write and empty the buffer +echo $xw->flush(true); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<tag1 attr1="attr1_value" attr2="attr2_value">Test text for tag1<tag2/></tag1> +===DONE=== diff --git a/ext/xmlwriter/tests/OO_004.phpt b/ext/xmlwriter/tests/OO_004.phpt new file mode 100644 index 0000000..08b423c --- /dev/null +++ b/ext/xmlwriter/tests/OO_004.phpt @@ -0,0 +1,37 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, file buffer, flush +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = new XMLWriter(); +$xw->openUri($doc_dest); +$xw->startDocument('1.0', 'UTF-8'); +$xw->startElement("tag1"); + +$xw->startPi("PHP"); +$xw->text('echo $a;'); +$xw->endPi(); +$xw->endDocument(); + +// Force to write and empty the buffer +$xw->flush(true); +$md5_out = md5_file($doc_dest); +$md5_res = md5('<?xml version="1.0" encoding="UTF-8"?> +<tag1><?PHP echo $a;?></tag1> +'); +unset($xw); +unlink('001.xml'); +if ($md5_out != $md5_res) { + echo "failed: $md5_res != $md5_out\n"; +} else { + echo "ok.\n"; +} +?> +===DONE=== +--EXPECT-- +ok. +===DONE=== diff --git a/ext/xmlwriter/tests/OO_005.phpt b/ext/xmlwriter/tests/OO_005.phpt new file mode 100644 index 0000000..2c6d2f4 --- /dev/null +++ b/ext/xmlwriter/tests/OO_005.phpt @@ -0,0 +1,33 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, comments +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ required"); +?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = new XMLWriter(); +$xw->openUri($doc_dest); +$xw->startDocument('1.0', 'UTF-8'); +$xw->startElement("tag1"); +$xw->startComment(); +$xw->text('comment'); +$xw->endComment(); +$xw->writeComment("comment #2"); +$xw->endDocument(); + +// Force to write and empty the buffer +$output_bytes = $xw->flush(true); +echo file_get_contents($doc_dest); +unset($xw); +unlink('001.xml'); +?> +===DONE=== +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<tag1><!--comment--><!--comment #2--></tag1> +===DONE=== diff --git a/ext/xmlwriter/tests/OO_006.phpt b/ext/xmlwriter/tests/OO_006.phpt new file mode 100644 index 0000000..465a725 --- /dev/null +++ b/ext/xmlwriter/tests/OO_006.phpt @@ -0,0 +1,27 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, startDTD/writeElementNS +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php +/* $Id$ */ + +$doc_dest = '001.xml'; +$xw = new XMLWriter(); +$xw->openUri($doc_dest); +$xw->startDtd('foo', NULL, 'urn:bar'); +$xw->endDtd(); +$xw->startElement('foo'); +$xw->writeElementNS('foo', 'bar', 'urn:foo', 'dummy content'); +$xw->endElement(); + +// Force to write and empty the buffer +$output_bytes = $xw->flush(true); +echo file_get_contents($doc_dest); +unset($xw); +unlink('001.xml'); +?> +--EXPECT-- +<!DOCTYPE foo SYSTEM "urn:bar"><foo><foo:bar xmlns:foo="urn:foo">dummy content</foo:bar></foo> diff --git a/ext/xmlwriter/tests/OO_007.phpt b/ext/xmlwriter/tests/OO_007.phpt new file mode 100644 index 0000000..257a5cd --- /dev/null +++ b/ext/xmlwriter/tests/OO_007.phpt @@ -0,0 +1,39 @@ +--TEST-- +XMLWriter: libxml2 XML Writer, Elements & Attributes +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +if (LIBXML_VERSION < 20629) die("skip: libxml2 2.6.29+ required"); +?> +--FILE-- +<?php +/* $Id$ */ + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->setIndent(TRUE); +$xw->setIndentString(' '); +$xw->startDocument('1.0', "UTF-8"); +$xw->startElement('root'); +$xw->startElementNS('ns1', 'child1', 'urn:ns1'); +$xw->startAttributeNS('ns1', 'att1', 'urn:ns1'); +$xw->text('a&b'); +$xw->endAttribute(); +$xw->writeAttribute('att2', "double\" single'"); +$xw->startAttributeNS('ns1', 'att2', 'urn:ns1'); +$xw->text("<>\"'&"); +$xw->endAttribute(); +$xw->writeElement('chars', "special characters: <>\"'&"); +$xw->endElement(); +$xw->endDocument(); +// Force to write and empty the buffer +$output = $xw->flush(true); +print $output; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<root> + <ns1:child1 ns1:att1="a&b" att2="double" single'" ns1:att2="<>"'&" xmlns:ns1="urn:ns1"> + <chars>special characters: <>"'&</chars> + </ns1:child1> +</root> diff --git a/ext/xmlwriter/tests/OO_008.phpt b/ext/xmlwriter/tests/OO_008.phpt new file mode 100644 index 0000000..fe127ce --- /dev/null +++ b/ext/xmlwriter/tests/OO_008.phpt @@ -0,0 +1,35 @@ +--TEST-- +XMLWriter: libxml2 XML Writer DTD Element & Attlist +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php +/* $Id$ */ + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->setIndent(TRUE); +$xw->startDocument(NULL, "UTF-8"); +$xw->writeDtdElement('sxe', '(elem1+, elem11, elem22*)'); +$xw->writeDtdAttlist('sxe', 'id CDATA #implied'); +$xw->startDtdElement('elem1'); +$xw->text('elem2*'); +$xw->endDtdElement(); +$xw->startDtdAttlist('elem1'); +$xw->text("attr1 CDATA #required\n"); +$xw->text('attr2 CDATA #implied'); +$xw->endDtdAttlist(); +$xw->endDocument(); +// Force to write and empty the buffer +$output = $xw->flush(true); +print $output; +?> +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<!ELEMENT sxe (elem1+, elem11, elem22*)> +<!ATTLIST sxe id CDATA #implied> +<!ELEMENT elem1 elem2*> +<!ATTLIST elem1 attr1 CDATA #required +attr2 CDATA #implied> diff --git a/ext/xmlwriter/tests/OO_009.phpt b/ext/xmlwriter/tests/OO_009.phpt new file mode 100644 index 0000000..c874f3e --- /dev/null +++ b/ext/xmlwriter/tests/OO_009.phpt @@ -0,0 +1,45 @@ +--TEST-- +XMLWriter: PI, Comment, CDATA +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php +/* $Id$ */ +/* +Libxml 2.6.24 and up adds a new line after a processing instruction (PI) +*/ +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->setIndent(TRUE); +$xw->startDocument("1.0", "UTF-8"); +$xw->startElement('root'); +$xw->writeAttribute('id', 'elem1'); +$xw->startElement('elem1'); +$xw->writeAttribute('attr1', 'first'); +$xw->writeComment('start PI'); +$xw->startElement('pi'); +$xw->writePi('php', 'echo "hello world"; '); +$xw->endElement(); +$xw->startElement('cdata'); +$xw->startCdata(); +$xw->text('<>&"'); +$xw->endCdata(); +$xw->endElement(); +$xw->endElement(); +$xw->endElement(); +$xw->endDocument(); +// Force to write and empty the buffer +$output = $xw->flush(true); +print $output; +?> +--EXPECTF-- +<?xml version="1.0" encoding="UTF-8"?> +<root id="elem1"> + <elem1 attr1="first"> + <!--start PI--> + <pi><?php echo "hello world"; ?>%w</pi> + <cdata><![CDATA[<>&"]]></cdata> + </elem1> +</root> diff --git a/ext/xmlwriter/tests/bug39504.phpt b/ext/xmlwriter/tests/bug39504.phpt new file mode 100644 index 0000000..af97f81 --- /dev/null +++ b/ext/xmlwriter/tests/bug39504.phpt @@ -0,0 +1,36 @@ +--TEST-- +Bug #39504 (xmlwriter_write_dtd_entity() creates Attlist tag, not enity) +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php + +$xw = xmlwriter_open_memory(); +xmlwriter_start_document($xw, NULL, "UTF-8"); +xmlwriter_start_dtd($xw, "root"); +xmlwriter_write_dtd_entity($xw, "ent2", "val2"); +xmlwriter_end_dtd($xw); +xmlwriter_start_element($xw, "root"); +xmlwriter_end_document($xw); +print xmlwriter_flush($xw, true); +print "\n"; + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->startDocument(NULL, "UTF-8"); +$xw->startDtd("root"); +$xw->writeDtdEntity("c", NULL, 0, "-//W3C//TEXT copyright//EN", "http://www.w3.org/xmlspec/copyright.xml"); +$xw->endDtd(); +$xw->startElement("root"); +$xw->endDocument(); +print $xw->flush(true); + +?> +--EXPECTF-- +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE root [<!ENTITY ent2 "val2">]><root/> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE root [<!ENTITY c PUBLIC "-//W3C//TEXT copyright//EN" "http://www.w3.org/xmlspec/copyright.xml">]><root/> diff --git a/ext/xmlwriter/tests/bug41287.phpt b/ext/xmlwriter/tests/bug41287.phpt new file mode 100644 index 0000000..0612b21 --- /dev/null +++ b/ext/xmlwriter/tests/bug41287.phpt @@ -0,0 +1,47 @@ +--TEST-- +Bug #41287 (Namespace functions don't allow xmlns defintion to be optional) +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php + +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, true); +xmlwriter_start_document($xw); +xmlwriter_start_element_ns($xw, 'test', 'test', 'urn:x-test:'); +xmlwriter_write_element_ns($xw, 'test', 'foo', null, ''); +xmlwriter_write_element_ns($xw, null, 'bar', 'urn:x-test:', ''); +xmlwriter_write_element_ns($xw, null, 'bar', '', ''); +xmlwriter_end_element($xw); +xmlwriter_end_document($xw); +print xmlwriter_flush($xw, true); +print "\n"; + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->setIndent(true); +$xw->startDocument(); +$xw->startElementNS('test', 'test', 'urn:x-test:'); +$xw->writeElementNS('test', 'foo', null, ''); +$xw->writeElementNS(null, 'bar', 'urn:x-test:', ''); +$xw->writeElementNS(null, 'bar', '', ''); +$xw->endElement(); +$xw->endDocument(); +print $xw->flush(true); +?> +--EXPECTF-- +<?xml version="1.0"?> +<test:test xmlns:test="urn:x-test:"> + <test:foo></test:foo> + <bar xmlns="urn:x-test:"></bar> + <bar xmlns=""></bar> +</test:test> + +<?xml version="1.0"?> +<test:test xmlns:test="urn:x-test:"> + <test:foo></test:foo> + <bar xmlns="urn:x-test:"></bar> + <bar xmlns=""></bar> +</test:test> diff --git a/ext/xmlwriter/tests/bug41326.phpt b/ext/xmlwriter/tests/bug41326.phpt new file mode 100644 index 0000000..c69cab1 --- /dev/null +++ b/ext/xmlwriter/tests/bug41326.phpt @@ -0,0 +1,56 @@ +--TEST-- +Bug #41287 (Writing empty tags with Xmlwriter::WriteElement[ns]) +--SKIPIF-- +<?php +if (!extension_loaded("xmlwriter")) die("skip"); +?> +--FILE-- +<?php +$xml = new XmlWriter(); +$xml->openMemory(); +$xml->setIndent(true); +$xml->startDocument(); +$xml->startElement('test'); +$xml->writeElement('foo', null); +$xml->writeElement('foo2', ""); +$xml->writeElement('foo3'); +$xml->startElement('bar'); +$xml->endElement('bar'); +$xml->endElement(); +$xml->endElement(); +print $xml->flush(true); + +print "\n"; + +$xw = new XMLWriter(); +$xw->openMemory(); +$xw->setIndent(true); +$xw->startDocument(); +$xw->startElementNS('test', 'test', 'urn:x-test:'); +$xw->writeElementNS('test', 'foo', null, ''); +$xw->writeElementNS(null, 'bar', 'urn:x-test:', ''); +$xw->writeElementNS(null, 'bar', 'urn:x-test:', NULL); +$xw->writeElementNS(null, 'bar', 'urn:x-test:'); +$xw->writeElementNS(null, 'bar', '', ''); +$xw->endElement(); +$xw->endDocument(); +print $xw->flush(true); +?> +--EXPECTF-- +Warning: XMLWriter::endElement() expects exactly 0 parameters, 1 given in %s on line %d +<?xml version="1.0"?> +<test> + <foo/> + <foo2></foo2> + <foo3/> + <bar/> +</test> + +<?xml version="1.0"?> +<test:test xmlns:test="urn:x-test:"> + <test:foo></test:foo> + <bar xmlns="urn:x-test:"></bar> + <bar xmlns="urn:x-test:"/> + <bar xmlns="urn:x-test:"/> + <bar xmlns=""></bar> +</test:test> diff --git a/ext/xmlwriter/tests/bug48204.phpt b/ext/xmlwriter/tests/bug48204.phpt new file mode 100644 index 0000000..638512b --- /dev/null +++ b/ext/xmlwriter/tests/bug48204.phpt @@ -0,0 +1,17 @@ +--TEST-- +xmlwriter_open_uri with PHP_MAXPATHLEN + 1 +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +$path = str_repeat('a', PHP_MAXPATHLEN + 1); +var_dump(xmlwriter_open_uri('file:///' . $path)); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECTF-- + +Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d +bool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_open_uri_error_001.phpt b/ext/xmlwriter/tests/xmlwriter_open_uri_error_001.phpt new file mode 100644 index 0000000..fb7602b --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_open_uri_error_001.phpt @@ -0,0 +1,16 @@ +--TEST-- +xmlwriter_open_uri with empty string as parameter +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +var_dump(xmlwriter_open_uri('')); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECTF-- + +Warning: xmlwriter_open_uri(): Empty string as source in %s on line %d +bool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_open_uri_error_002.phpt b/ext/xmlwriter/tests/xmlwriter_open_uri_error_002.phpt new file mode 100644 index 0000000..9cd33f7 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_open_uri_error_002.phpt @@ -0,0 +1,16 @@ +--TEST-- +xmlwriter_open_uri without parameter +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +var_dump(xmlwriter_open_uri()); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECTF-- + +Warning: xmlwriter_open_uri() expects exactly %d parameter, %d given in %s on line %d +NULL diff --git a/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt b/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt new file mode 100644 index 0000000..0e56d89 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_open_uri_error_003.phpt @@ -0,0 +1,16 @@ +--TEST-- +xmlwriter_open_uri with non existing file +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +var_dump(xmlwriter_open_uri('foo/bar.tmp')); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECTF-- + +Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d +bool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt b/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt new file mode 100644 index 0000000..6970c0e --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_open_uri_error_004.phpt @@ -0,0 +1,16 @@ +--TEST-- +xmlwriter_open_uri with file:/// +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +var_dump(xmlwriter_open_uri('file:///')); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECTF-- + +Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d +bool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt b/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt new file mode 100644 index 0000000..9d08716 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_open_uri_error_005.phpt @@ -0,0 +1,16 @@ +--TEST-- +xmlwriter_open_uri with file://localhost/ +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +var_dump(xmlwriter_open_uri('file://localhost/')); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECTF-- + +Warning: xmlwriter_open_uri(): Unable to resolve file path in %s on line %d +bool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_set_indent_string_basic_001.phpt b/ext/xmlwriter/tests/xmlwriter_set_indent_string_basic_001.phpt new file mode 100644 index 0000000..8c3e7d9 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_set_indent_string_basic_001.phpt @@ -0,0 +1,24 @@ +--TEST-- +xmlwriter_set_indent_string passing xmlwriter resource +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +$temp_filename = dirname(__FILE__)."/xmlwriter_set_indent_string.tmp"; + $fp = fopen($temp_filename, "w"); + fwrite ($fp, "Hi"); + fclose($fp); +$resource = xmlwriter_open_uri($temp_filename); +var_dump(xmlwriter_set_indent_string($resource, ' ')); +?> +--CLEAN-- +<?php +$temp_filename = dirname(__FILE__)."/xmlwriter_set_indent_string.tmp"; +unlink($temp_filename); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +Theo van der Zee +#Test Fest Utrecht 09-05-2009 +--EXPECT-- +bool(true) diff --git a/ext/xmlwriter/tests/xmlwriter_set_indent_string_error_001.phpt b/ext/xmlwriter/tests/xmlwriter_set_indent_string_error_001.phpt new file mode 100644 index 0000000..5bb9ef8 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_set_indent_string_error_001.phpt @@ -0,0 +1,24 @@ +--TEST-- +xmlwriter_set_indent_string with missing param(s) +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +$temp_filename = dirname(__FILE__)."/xmlwriter_set_indent_string_error.tmp"; + $fp = fopen($temp_filename, "w"); + fwrite ($fp, "Hi"); + fclose($fp); +$resource = xmlwriter_open_uri($temp_filename); +var_dump(xmlwriter_set_indent_string($resource)); +?> +--CLEAN-- +<?php +$temp_filename = dirname(__FILE__)."/xmlwriter_set_indent_string_error.tmp"; +unlink($temp_filename); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +--EXPECTF-- + +Warning: xmlwriter_set_indent_string() expects exactly %d parameters, %d given in %s on line %d +NULL diff --git a/ext/xmlwriter/tests/xmlwriter_write_attribute_ns_basic_001.phpt b/ext/xmlwriter/tests/xmlwriter_write_attribute_ns_basic_001.phpt new file mode 100644 index 0000000..f248049 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_write_attribute_ns_basic_001.phpt @@ -0,0 +1,28 @@ +--TEST-- +xmlwriter_write_attribute_ns basic function tests +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, TRUE); +xmlwriter_start_document($xw, NULL, "UTF-8"); +xmlwriter_start_element($xw, 'root'); +xmlwriter_write_attribute_ns($xw, 'prefix', 'id', 'http://www.php.net/uri', 'elem1'); +xmlwriter_start_element($xw, 'elem1'); +xmlwriter_write_attribute($xw, 'attr1', 'first'); +xmlwriter_end_element($xw); +xmlwriter_full_end_element($xw); +xmlwriter_end_document($xw); + +$output = xmlwriter_flush($xw, true); +print $output; +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +--EXPECT-- +<?xml version="1.0" encoding="UTF-8"?> +<root prefix:id="elem1" xmlns:prefix="http://www.php.net/uri"> + <elem1 attr1="first"/> +</root> + diff --git a/ext/xmlwriter/tests/xmlwriter_write_attribute_ns_error_001.phpt b/ext/xmlwriter/tests/xmlwriter_write_attribute_ns_error_001.phpt new file mode 100644 index 0000000..7f1cd0c --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_write_attribute_ns_error_001.phpt @@ -0,0 +1,34 @@ +--TEST-- +xmlwriter_write_attribute_ns with missing param +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +$xw = xmlwriter_open_memory(); +xmlwriter_set_indent($xw, TRUE); +xmlwriter_start_document($xw, NULL, "UTF-8"); +xmlwriter_start_element($xw, 'root'); +xmlwriter_write_attribute_ns($xw, 'prefix', '', 'http://www.php.net/uri'); +xmlwriter_start_element($xw, 'elem1'); +xmlwriter_write_attribute($xw, 'attr1', 'first'); +xmlwriter_end_element($xw); +xmlwriter_full_end_element($xw); +xmlwriter_end_document($xw); + +$output = xmlwriter_flush($xw, true); +print $output; + +// write attribute_ns without start_element first +$xw = xmlwriter_open_memory(); +var_dump(xmlwriter_write_attribute_ns($xw, 'prefix', 'id', 'http://www.php.net/uri', 'elem1')); +print xmlwriter_output_memory($xw); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +--EXPECTF-- + +Warning: xmlwriter_write_attribute_ns() expects exactly %d parameters, %d given in %s on line %d +<?xml version="1.0" encoding="UTF-8"?> +<root> + <elem1 attr1="first"/> +</root>%wbool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_write_dtd_basic_001.phpt b/ext/xmlwriter/tests/xmlwriter_write_dtd_basic_001.phpt new file mode 100644 index 0000000..af3dce6 --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_write_dtd_basic_001.phpt @@ -0,0 +1,22 @@ +--TEST-- +xmlwriter_write_dtd basic function tests +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php + +$xmlwriter = xmlwriter_open_memory(); +var_dump(xmlwriter_write_dtd($xmlwriter, 'bla1', 'bla2', 'bla3', 'bla4')); +$output = xmlwriter_flush($xmlwriter, true); +print $output . PHP_EOL; + +var_dump(xmlwriter_write_dtd($xmlwriter, '', '', '')); +$output = xmlwriter_flush($xmlwriter, true); +print $output; +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +--EXPECT-- +bool(true) +<!DOCTYPE bla1 PUBLIC "bla2" "bla3" [bla4]> +bool(false) diff --git a/ext/xmlwriter/tests/xmlwriter_write_dtd_error_001.phpt b/ext/xmlwriter/tests/xmlwriter_write_dtd_error_001.phpt new file mode 100644 index 0000000..69a6a7f --- /dev/null +++ b/ext/xmlwriter/tests/xmlwriter_write_dtd_error_001.phpt @@ -0,0 +1,15 @@ +--TEST-- +xmlwriter_write_dtd with missing param(s) +--SKIPIF-- +<?php if (!extension_loaded("xmlwriter")) print "skip"; ?> +--FILE-- +<?php +$xmlwriter = xmlwriter_open_memory(); +var_dump(xmlwriter_write_dtd($xmlwriter)); +?> +--CREDITS-- +Koen Kuipers koenk82@gmail.com +--EXPECTF-- + +Warning: xmlwriter_write_dtd() expects at least %d parameters, %d given in %s on line %d +NULL |