rrichards               Thu Dec  8 23:57:20 2005 EDT

  Added files:                 (Branch: PHP_5_1)
    /php-src/ext/xmlwriter/tests        006.phpt 007.phpt 008.phpt 009.phpt 
                                        OO_007.phpt OO_008.phpt OO_009.phpt 

  Modified files:              
    /php-src/ext/xmlwriter      php_xmlwriter.c php_xmlwriter.h 
  Log:
  MFH: enable a few additional functions
  - add tests
  
http://cvs.php.net/diff.php/php-src/ext/xmlwriter/php_xmlwriter.c?r1=1.20.2.4&r2=1.20.2.5&ty=u
Index: php-src/ext/xmlwriter/php_xmlwriter.c
diff -u php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.4 
php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.5
--- php-src/ext/xmlwriter/php_xmlwriter.c:1.20.2.4      Wed Dec  7 00:09:31 2005
+++ php-src/ext/xmlwriter/php_xmlwriter.c       Thu Dec  8 23:57:20 2005
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: php_xmlwriter.c,v 1.20.2.4 2005/12/07 05:09:31 rrichards Exp $ */
+/* $Id: php_xmlwriter.c,v 1.20.2.5 2005/12/09 04:57:20 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -139,6 +139,7 @@
        PHP_FE(xmlwriter_write_attribute,       NULL)
 #if LIBXML_VERSION > 20617
        PHP_FE(xmlwriter_start_attribute_ns,NULL)
+       PHP_FE(xmlwriter_write_attribute_ns,NULL)
 #endif
        PHP_FE(xmlwriter_start_element,         NULL)
        PHP_FE(xmlwriter_end_element,           NULL)
@@ -160,6 +161,12 @@
        PHP_FE(xmlwriter_write_dtd,                     NULL)
        PHP_FE(xmlwriter_start_dtd_element,     NULL)
        PHP_FE(xmlwriter_end_dtd_element,       NULL)
+       PHP_FE(xmlwriter_write_dtd_element,     NULL)
+#if LIBXML_VERSION > 20608
+       PHP_FE(xmlwriter_start_dtd_attlist,     NULL)
+       PHP_FE(xmlwriter_end_dtd_attlist,       NULL)
+       PHP_FE(xmlwriter_write_dtd_attlist,     NULL)
+#endif
        PHP_FE(xmlwriter_output_memory,         NULL)
        PHP_FE(xmlwriter_flush,                         NULL)
        {NULL, NULL, NULL}
@@ -184,6 +191,7 @@
        PHP_ME_MAPPING(writeAttribute,  xmlwriter_write_attribute,      NULL)
 #if LIBXML_VERSION > 20617
        PHP_ME_MAPPING(startAttributeNs,        
xmlwriter_start_attribute_ns,NULL)
+       PHP_ME_MAPPING(writeAttributeNs,        
xmlwriter_write_attribute_ns,NULL)
 #endif
        PHP_ME_MAPPING(startElement,    xmlwriter_start_element,        NULL)
        PHP_ME_MAPPING(endElement,              xmlwriter_end_element,          
NULL)
@@ -205,6 +213,12 @@
        PHP_ME_MAPPING(writeDtd,                xmlwriter_write_dtd,            
NULL)
        PHP_ME_MAPPING(startDtdElement, xmlwriter_start_dtd_element,    NULL)
        PHP_ME_MAPPING(endDtdElement,   xmlwriter_end_dtd_element,      NULL)
+       PHP_ME_MAPPING(writeDtdElement, xmlwriter_write_dtd_element,    NULL)
+#if LIBXML_VERSION > 20608
+       PHP_ME_MAPPING(startDtdAttlist, xmlwriter_start_dtd_attlist,    NULL)
+       PHP_ME_MAPPING(endDtdAttlist,   xmlwriter_end_dtd_attlist,      NULL)
+       PHP_ME_MAPPING(writeDtdAttlist, xmlwriter_write_dtd_attlist,    NULL)
+#endif
        PHP_ME_MAPPING(outputMemory,    xmlwriter_output_memory,        NULL)
        PHP_ME_MAPPING(flush,                   xmlwriter_flush,                
        NULL)
        {NULL, NULL, NULL}
@@ -338,7 +352,7 @@
 /* }}} */
 
 #if LIBXML_VERSION >= 20605
-/* {{{ proto bool xmlwriter_set_indent(resource xmlwriter, bool)
+/* {{{ proto bool xmlwriter_set_indent(resource xmlwriter, bool indent)
 Toggle indentation on/off - returns FALSE on error */
 PHP_FUNCTION(xmlwriter_set_indent)
 {
@@ -628,6 +642,7 @@
 }
 /* }}} */
 
+#if LIBXML_VERSION > 20617
 /* {{{ proto bool xmlwriter_write_attribute_ns(resource xmlwriter, string 
prefix, string name, string uri, string content)
 Write full namespaced attribute - returns FALSE on error */
 PHP_FUNCTION(xmlwriter_write_attribute_ns)
@@ -671,6 +686,7 @@
        RETURN_FALSE;
 }
 /* }}} */
+#endif
 
 /* {{{ proto bool xmlwriter_start_element(resource xmlwriter, string name)
 Create start element tag - returns FALSE on error */
@@ -1364,7 +1380,7 @@
        zval *this = getThis();
 
        if (this) {
-               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", 
&name, &name_len) == FAILURE) {
+               if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", 
&name, &name_len, &content, &content_len) == FAILURE) {
                        return;
                }
                XMLWRITER_FROM_OBJECT(intern, this);
@@ -1393,6 +1409,7 @@
 }
 /* }}} */
 
+#if LIBXML_VERSION > 20608
 /* {{{ proto bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name)
 Create start DTD AttList - returns FALSE on error */
 PHP_FUNCTION(xmlwriter_start_dtd_attlist)
@@ -1583,6 +1600,7 @@
        RETURN_FALSE;
 }
 /* }}} */
+#endif
 
 /* {{{ proto resource xmlwriter_open_uri(resource xmlwriter, string source)
 Create new xmlwriter using source uri for output */
http://cvs.php.net/diff.php/php-src/ext/xmlwriter/php_xmlwriter.h?r1=1.10.2.3&r2=1.10.2.4&ty=u
Index: php-src/ext/xmlwriter/php_xmlwriter.h
diff -u php-src/ext/xmlwriter/php_xmlwriter.h:1.10.2.3 
php-src/ext/xmlwriter/php_xmlwriter.h:1.10.2.4
--- php-src/ext/xmlwriter/php_xmlwriter.h:1.10.2.3      Sat Dec  3 18:20:07 2005
+++ php-src/ext/xmlwriter/php_xmlwriter.h       Thu Dec  8 23:57:20 2005
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: php_xmlwriter.h,v 1.10.2.3 2005/12/03 23:20:07 tony2001 Exp $ */
+/* $Id: php_xmlwriter.h,v 1.10.2.4 2005/12/09 04:57:20 rrichards Exp $ */
 
 #ifndef PHP_XMLWRITER_H
 #define PHP_XMLWRITER_H
@@ -63,9 +63,9 @@
 #endif
 PHP_FUNCTION(xmlwriter_start_attribute);
 PHP_FUNCTION(xmlwriter_end_attribute);
-PHP_FUNCTION(xmlwriter_start_attribute_ns);
 PHP_FUNCTION(xmlwriter_write_attribute);
 #if LIBXML_VERSION > 20617
+PHP_FUNCTION(xmlwriter_start_attribute_ns);
 PHP_FUNCTION(xmlwriter_write_attribute_ns);
 #endif
 PHP_FUNCTION(xmlwriter_start_element);
@@ -92,6 +92,12 @@
 PHP_FUNCTION(xmlwriter_write_dtd);
 PHP_FUNCTION(xmlwriter_start_dtd_element);
 PHP_FUNCTION(xmlwriter_end_dtd_element);
+PHP_FUNCTION(xmlwriter_write_dtd_element);
+#if LIBXML_VERSION > 20608
+PHP_FUNCTION(xmlwriter_start_dtd_attlist);
+PHP_FUNCTION(xmlwriter_end_dtd_attlist);
+PHP_FUNCTION(xmlwriter_write_dtd_attlist);
+#endif
 PHP_FUNCTION(xmlwriter_open_uri);
 PHP_FUNCTION(xmlwriter_open_memory);
 PHP_FUNCTION(xmlwriter_output_memory);

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/006.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/006.phpt
+++ php-src/ext/xmlwriter/tests/006.phpt
--TEST--
XMLWriter: libxml2 XML Writer, startDTD/writeElementNS 
--SKIPIF--
<?php 
if (!extension_loaded("xmlwriter")) die("skip"); 
if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ 
required");
?>
--FILE--
<?php 
/* $Id: 006.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$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>

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/007.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/007.phpt
+++ php-src/ext/xmlwriter/tests/007.phpt
--TEST--
XMLWriter: libxml2 XML Writer, Elements & Attributes 
--SKIPIF--
<?php 
if (!extension_loaded("xmlwriter")) die("skip"); 
if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ 
required");
?>
--FILE--
<?php 
/* $Id: 007.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$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 xmlns:ns1="urn:ns1" ns1:att1="a&amp;b" xmlns:ns1="urn:ns1" 
att2="double&quot; single'" ns1:att2="&lt;&gt;&quot;'&amp;" xmlns:ns1="urn:ns1">
      <chars>special characters: &lt;&gt;&quot;'&amp;</chars>
   </ns1:child1>
</root>

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/008.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/008.phpt
+++ php-src/ext/xmlwriter/tests/008.phpt
--TEST--
XMLWriter: libxml2 XML Writer DTD Element & Attlist
--SKIPIF--
<?php 
if (!extension_loaded("xmlwriter")) die("skip"); 
if (!function_exists("xmlwriter_start_comment")) die("skip: libxml2 2.6.7+ 
required");
?>
--FILE--
<?php 
/* $Id: 008.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$xw = xmlwriter_open_memory();
xmlwriter_set_indent($xw, TRUE);
xmlwriter_start_document($xw, NULL, "UTF-8");
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"?>
<!ELEMENT sxe (elem1+, elem11, elem22*)>
<!ATTLIST sxe id     CDATA  #implied>
<!ELEMENT elem1 elem2*>
<!ATTLIST elem1 attr1  CDATA  #required
attr2  CDATA  #implied>

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/009.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/009.phpt
+++ php-src/ext/xmlwriter/tests/009.phpt
--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: 009.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$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_end_element($xw);
xmlwriter_text($xw, '<>&"');
xmlwriter_end_cdata($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;
?>
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
<root id="elem1">
 <elem1 attr1="first">
  <!--start PI-->
  <pi><?php echo "hello world"; ?></pi>
  <cdata><![CDATA[<>&"]]></cdata>
 </elem1>
</root>

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/OO_007.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/OO_007.phpt
+++ php-src/ext/xmlwriter/tests/OO_007.phpt
--TEST--
XMLWriter: libxml2 XML Writer, Elements & Attributes 
--SKIPIF--
<?php 
if (!extension_loaded("xmlwriter")) die("skip"); 
if (!function_exists("$xw->start_comment")) die("skip: libxml2 2.6.7+ 
required");
?>
--FILE--
<?php 
/* $Id: OO_007.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$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 xmlns:ns1="urn:ns1" ns1:att1="a&amp;b" xmlns:ns1="urn:ns1" 
att2="double&quot; single'" ns1:att2="&lt;&gt;&quot;'&amp;" xmlns:ns1="urn:ns1">
      <chars>special characters: &lt;&gt;&quot;'&amp;</chars>
   </ns1:child1>
</root>

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/OO_008.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/OO_008.phpt
+++ php-src/ext/xmlwriter/tests/OO_008.phpt
--TEST--
XMLWriter: libxml2 XML Writer DTD Element & Attlist
--SKIPIF--
<?php 
if (!extension_loaded("xmlwriter")) die("skip"); 
if (!function_exists("$xw->start_comment")) die("skip: libxml2 2.6.7+ 
required");
?>
--FILE--
<?php 
/* $Id: OO_008.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$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>

http://cvs.php.net/co.php/php-src/ext/xmlwriter/tests/OO_009.phpt?r=1.1&p=1
Index: php-src/ext/xmlwriter/tests/OO_009.phpt
+++ php-src/ext/xmlwriter/tests/OO_009.phpt
--TEST--
XMLWriter: PI, Comment, CDATA
--SKIPIF--
<?php 
if (!extension_loaded("xmlwriter")) die("skip"); 
if (!function_exists("$xw->start_comment")) die("skip: libxml2 2.6.7+ 
required");
?>
--FILE--
<?php 
/* $Id: OO_009.phpt,v 1.1 2005/12/09 04:56:21 rrichards Exp $ */

$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->endElement();
$xw->text('<>&"');
$xw->endCdata();
$xw->endElement();
$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 id="elem1">
 <elem1 attr1="first">
  <!--start PI-->
  <pi><?php echo "hello world"; ?></pi>
  <cdata><![CDATA[<>&"]]></cdata>
 </elem1>
</root>

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to