diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/Xml/TXmlDocumentTest.php | 58 | ||||
-rw-r--r-- | tests/unit/Xml/TXmlElementListTest.php | 21 | ||||
-rw-r--r-- | tests/unit/Xml/data/test.xml | 8 |
3 files changed, 78 insertions, 9 deletions
diff --git a/tests/unit/Xml/TXmlDocumentTest.php b/tests/unit/Xml/TXmlDocumentTest.php index b47f735d..8766b231 100644 --- a/tests/unit/Xml/TXmlDocumentTest.php +++ b/tests/unit/Xml/TXmlDocumentTest.php @@ -9,27 +9,73 @@ Prado::using('System.Xml.TXmlDocument'); class TXmlDocumentTest extends PHPUnit_Framework_TestCase { public function testConstruct() { - throw new PHPUnit_Framework_IncompleteTestError(); + $xmldoc=new TXmlDocument ('1.0', 'utf-8'); + self::assertEquals('1.0', $xmldoc->getVersion()); + self::assertEquals('utf-8', $xmldoc->getEncoding()); } public function testSetVersion() { - throw new PHPUnit_Framework_IncompleteTestError(); + $xmldoc=new TXmlDocument ('1.0', 'utf-8'); + self::assertEquals('1.0', $xmldoc->getVersion()); + $xmldoc->setVersion('2.0'); + self::assertEquals('2.0', $xmldoc->getVersion()); } public function testSetEncoding() { - throw new PHPUnit_Framework_IncompleteTestError(); + $xmldoc=new TXmlDocument ('1.0', 'utf-8'); + self::assertEquals('utf-8', $xmldoc->getEncoding()); + $xmldoc->setEncoding('iso8859-1'); + self::assertEquals('iso8859-1', $xmldoc->getEncoding()); } public function testLoadFromFile() { - throw new PHPUnit_Framework_IncompleteTestError(); + $file=dirname(__FILE__).'/data/test.xml'; + $xmldoc=new TXmlDocument(); + try { + $xmldoc->loadFromFile('unexistentXmlFile.xml'); + self::fail('Expected TIOException not thrown'); + } catch (TIOException $e) {} + + self::assertTrue($xmldoc->loadFromFile($file)); + self::assertEquals('1.0', $xmldoc->getVersion()); + self::assertEquals('UTF-8',$xmldoc->getEncoding()); } public function testLoadFromString() { - throw new PHPUnit_Framework_IncompleteTestError(); + $xmlStr='<?xml version="1.0" encoding="UTF-8"?><rootNode><node id="node1" param="attribute1"/><node id="node2" param="attribute2"/></rootNode>'; + $xmldoc=new TXmlDocument(); + self::assertTrue($xmldoc->loadFromString($xmlStr)); + self::assertEquals('1.0', $xmldoc->getVersion()); + self::assertEquals('UTF-8',$xmldoc->getEncoding()); } public function testSaveToString() { - throw new PHPUnit_Framework_IncompleteTestError(); + $xmldoc=new TXmlDocument('1.0','utf-8'); + $xmldoc->setTagName('root'); + $node=new TXmlElement('node'); + $node->setAttribute('param','attribute1'); + $xmldoc->getElements()->add($node); + $xmlString=$xmldoc->saveToString(); + // test magic method + $magicString=(string)$xmldoc; + self::assertEquals($magicString,$xmlString); + // Result string should be : + $resultString="<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <node param=\"attribute1\"\n</root>"; + self::assertEquals($xmlString, $magicString); + + } + + public function testSaveToFile() { + $file=dirname(__FILE__).'/data/tmp.xml'; + if (!is_writable(dirname($file))) self::markTestSkipped(dirname($file).' must be writable for this test'); + $xmldoc=new TXmlDocument('1.0','utf-8'); + $xmldoc->setTagName('root'); + $node=new TXmlElement('node'); + $node->setAttribute('param','attribute1'); + $xmldoc->getElements()->add($node); + $xmldoc->saveToFile($file); + self::assertTrue(is_file($file)); + if (is_file($file)) unlink ($file); } } ?> diff --git a/tests/unit/Xml/TXmlElementListTest.php b/tests/unit/Xml/TXmlElementListTest.php index 95906c1f..91e09267 100644 --- a/tests/unit/Xml/TXmlElementListTest.php +++ b/tests/unit/Xml/TXmlElementListTest.php @@ -9,15 +9,30 @@ Prado::using('System.Xml.TXmlDocument'); class TXmlElementListTest extends PHPUnit_Framework_TestCase { public function testConstruct() { - throw new PHPUnit_Framework_IncompleteTestError(); + $element=new TXmlElement('tag'); + $list=new TXmlElementList($element); + self::assertEquals($element,self::getAttribute($list, '_o')); } public function testInsertAt() { - throw new PHPUnit_Framework_IncompleteTestError(); + $element=new TXmlElement('tag'); + $list=new TXmlElementList($element); + try { + $list->insertAt(0,'ABadElement'); + self::fail('Expected TInvalidDataTypeException not thrown'); + } catch (TInvalidDataTypeException $e) {} + $newElement=new TXmlElement('newTag'); + $list->insertAt(0,$newElement); + self::assertEquals($newElement,$list->itemAt(0)); + } public function testRemoveAt() { - throw new PHPUnit_Framework_IncompleteTestError(); + $element=new TXmlElement('tag'); + $list=new TXmlElementList($element); + $newElement=new TXmlElement('newTag'); + $list->insertAt(0,$newElement); + self::assertEquals($newElement,$list->removeAt(0)); } } ?> diff --git a/tests/unit/Xml/data/test.xml b/tests/unit/Xml/data/test.xml new file mode 100644 index 00000000..0cd2f58c --- /dev/null +++ b/tests/unit/Xml/data/test.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<rootNode attr1="test1"> + <node id="node1" attr1="attribute1" attr2="attribute2" attr3="attribute3"/> + <node id="node2"> + <attr name="attribute1">Value1</attr> + <attr name="attribute2">Value2</attr> + </node> +</rootNode>
\ No newline at end of file |