Changeset 129

Show
Ignore:
Timestamp:
01/20/07 16:06:09 (2 years ago)
Author:
schst
Message:

Added implementation of stubXMLStreamWriter based on ext/xmlwriter,
changed behaviour of stubXMLStreamWriter to not append a trailing newline to the documents

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/xml/stubDomXMLStreamWriter.php

    r97 r129  
    150150            $parent->appendChild($element); 
    151151        } 
    152          
     152 
    153153    } 
    154      
     154 
    155155    /** 
    156156     * Import another stream 
     
    192192     */ 
    193193    public function asXML() { 
    194         return $this->doc->saveXML(); 
     194        return rtrim($this->doc->saveXML()); 
    195195    } 
    196196} 
  • trunk/src/test/php/net/stubbles/xml/XMLTestSuite.php

    r83 r129  
    2222        $this->TestSuite('All XML tests'); 
    2323        $this->addTestFile(dirname(__FILE__) . '/stubDomXMLStreamWriterTestCase.php'); 
     24        $this->addTestFile(dirname(__FILE__) . '/stubLibXmlXMLStreamWriterTestCase.php'); 
    2425        $this->addTestFile(dirname(__FILE__) . '/stubXMLSerializerTestCase.php'); 
    2526    } 
  • trunk/src/test/php/net/stubbles/xml/stubDomXMLStreamWriterTestCase.php

    r98 r129  
    2323    public function testEmptyDocument() { 
    2424        $writer = new stubDomXMLStreamWriter(); 
    25         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n", $writer->asXML()); 
     25        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>', $writer->asXML()); 
    2626    } 
    2727 
     
    3838        $writer->writeEndElement(); 
    3939 
    40         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n<root><foo/><bar/></root>\n" , $writer->asXML()); 
     40        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n<root><foo/><bar/></root>" , $writer->asXML()); 
    4141    } 
    4242 
     
    4848        $writer->writeElement('foo', array('att' => 'value'), 'content'); 
    4949 
    50         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<foo att="value">content</foo>' . "\n" , $writer->asXML()); 
     50        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<foo att="value">content</foo>', $writer->asXML()); 
    5151    } 
    52      
     52 
    5353    /** 
    5454     * Test creating a document with attributes 
     
    6262        $writer->writeEndElement(); 
    6363 
    64         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><foo bar="42"/></root>' . "\n" , $writer->asXML()); 
     64        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><foo bar="42"/></root>', $writer->asXML()); 
    6565    } 
    6666 
     
    7474        $writer->writeEndElement(); 
    7575 
    76         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root>This is text.</root>' . "\n" , $writer->asXML()); 
     76        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root>This is text.</root>', $writer->asXML()); 
    7777    } 
    7878 
     
    8686        $writer->writeEndElement(); 
    8787 
    88         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><![CDATA[This is text.]]></root>' . "\n" , $writer->asXML()); 
     88        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><![CDATA[This is text.]]></root>', $writer->asXML()); 
    8989    } 
    9090 
     
    9898        $writer->writeEndElement(); 
    9999 
    100         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><!--This is a comment.--></root>' . "\n" , $writer->asXML()); 
     100        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><!--This is a comment.--></root>', $writer->asXML()); 
    101101    } 
    102102 
     
    110110        $writer->writeEndElement(); 
    111111 
    112         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><?php phpinfo();?></root>' . "\n" , $writer->asXML()); 
     112        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><?php phpinfo();?></root>', $writer->asXML()); 
    113113    } 
    114114 
     
    122122        $writer->writeEndElement(); 
    123123 
    124         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><foo bar="true"/></root>' . "\n" , $writer->asXML()); 
     124        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><foo bar="true"/></root>', $writer->asXML()); 
    125125    } 
    126126 
     
    142142        $writer->writeEndElement(); 
    143143 
    144         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><foo><bar/></foo></root>' . "\n" , $writer->asXML()); 
     144        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n". '<root><foo><bar/></foo></root>', $writer->asXML()); 
    145145    } 
    146146} 
  • trunk/src/test/php/net/stubbles/xml/stubXMLSerializerTestCase.php

    r98 r129  
    1616 */ 
    1717class XMLSerializerFoo { 
    18      
     18 
    1919    /** 
    2020     * Scalar property 
     
    4848 */ 
    4949class XMLSerializerList { 
    50      
     50 
    5151    /** 
    5252     * Scalar property 
     
    6464 */ 
    6565class XMLSerializerMethods { 
    66      
     66 
    6767    /** 
    6868     * Return a value 
     
    8585class stubXMLSerializerTestCase extends UnitTestCase 
    8686{ 
    87      
     87 
    8888    /** 
    8989     * The XMLSerializer to use 
     
    9292     */ 
    9393    protected $serializer; 
    94      
     94 
    9595    public function setUp() { 
    9696        $this->serializer = new stubXMLSerializer(); 
    9797    } 
    98      
     98 
    9999    /** 
    100100     * Test serializing a null value 
     
    103103        $writer = new stubDomXMLStreamWriter(); 
    104104        $this->serializer->serialize(null, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    105         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><null/></root>' . "\n", $writer->asXML()); 
     105        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><null/></root>', $writer->asXML()); 
    106106    } 
    107107 
     
    112112        $writer = new stubDomXMLStreamWriter(); 
    113113        $this->serializer->serialize('This is a string.', $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    114         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>This is a string.</root>' . "\n", $writer->asXML()); 
     114        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>This is a string.</root>', $writer->asXML()); 
    115115    } 
    116116 
     
    121121        $writer = new stubDomXMLStreamWriter(); 
    122122        $this->serializer->serialize(45, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    123         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>45</root>' . "\n", $writer->asXML()); 
     123        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>45</root>', $writer->asXML()); 
    124124    } 
    125125 
     
    130130        $writer = new stubDomXMLStreamWriter(); 
    131131        $this->serializer->serialize(2.352, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    132         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>2.352</root>' . "\n", $writer->asXML()); 
     132        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>2.352</root>', $writer->asXML()); 
    133133    } 
    134134 
     
    139139        $writer = new stubDomXMLStreamWriter(); 
    140140        $this->serializer->serialize(true, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    141         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>true</root>' . "\n", $writer->asXML()); 
     141        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root>true</root>', $writer->asXML()); 
    142142    } 
    143143 
     
    152152                 ); 
    153153        $this->serializer->serialize($array, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    154         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><one>two</one><three>four</three></root>' . "\n", $writer->asXML()); 
     154        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><one>two</one><three>four</three></root>', $writer->asXML()); 
    155155    } 
    156156 
     
    162162        $array = array('one', 'two', 'three'); 
    163163        $this->serializer->serialize($array, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    164         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><string>one</string><string>two</string><string>three</string></root>' . "\n", $writer->asXML()); 
     164        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><string>one</string><string>two</string><string>three</string></root>', $writer->asXML()); 
    165165    } 
    166166 
     
    175175                 ); 
    176176        $this->serializer->serialize($array, $writer, array(stubXMLSerializer::OPT_ROOT_TAG => 'root')); 
    177         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><one>two</one><three><four>five</four></three></root>' . "\n", $writer->asXML()); 
     177        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<root><one>two</one><three><four>five</four></three></root>', $writer->asXML()); 
    178178    } 
    179179 
     
    185185        $obj = new XMLSerializerFoo(); 
    186186        $this->serializer->serialize($obj, $writer); 
    187         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<foo bar="test"><bar>42</bar></foo>' . "\n", $writer->asXML()); 
     187        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<foo bar="test"><bar>42</bar></foo>', $writer->asXML()); 
    188188    } 
    189189 
     
    196196        $obj->bar = new XMLSerializerFoo(); 
    197197        $this->serializer->serialize($obj, $writer); 
    198         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<foo bar="test"><bar bar="test"><bar>42</bar></bar></foo>' . "\n", $writer->asXML()); 
     198        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<foo bar="test"><bar bar="test"><bar>42</bar></bar></foo>', $writer->asXML()); 
    199199    } 
    200200 
     
    206206        $obj = new XMLSerializerList(); 
    207207        $this->serializer->serialize($obj, $writer); 
    208         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<container><list><item>one</item><item>two</item><item>three</item></list></container>' . "\n", $writer->asXML()); 
     208        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<container><list><item>one</item><item>two</item><item>three</item></list></container>', $writer->asXML()); 
    209209    } 
    210210 
     
    216216        $obj = new XMLSerializerMethods(); 
    217217        $this->serializer->serialize($obj, $writer); 
    218         $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<class method="returned"/>' . "\n", $writer->asXML()); 
     218        $this->assertEqual('<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n" . '<class method="returned"/>', $writer->asXML()); 
    219219    } 
    220220}