From fdb122f2da9e36dd41243a69e8ea9eec20ad3a1d Mon Sep 17 00:00:00 2001 From: tof <> Date: Wed, 27 Jun 2007 11:51:32 +0000 Subject: Add unit test for TXmlDocument and TXmlElementList --- tests/unit/Xml/TXmlDocumentTest.php | 58 ++++++++++++++++++++++++++++++---- tests/unit/Xml/TXmlElementListTest.php | 21 ++++++++++-- tests/unit/Xml/data/test.xml | 8 +++++ 3 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 tests/unit/Xml/data/test.xml (limited to 'tests') 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=''; + $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="\n\n "; + 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 @@ + + + + + Value1 + Value2 + + \ No newline at end of file -- cgit v1.2.3