diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100644 index 0000000..022f6c2 --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,96 @@ +simpleXML = simplexml_load_string(' + + + PHP: Behind the Parser + + + Ms. Coder + Onlivia Actora + + + Mr. Coder + El ActÓr + + + + So, this language. It\'s like, a programming language. + Or is it a scripting language? All is revealed in this + thrilling horror spoof of a documentary. + + + PHP solves all my web problems + + 7 + 5 + + + '); + + $this->simpleXML_default_NS = simplexml_load_string(' + + + PHP: Behind the Parser + + + Ms. Coder + Onlivia Actora + + + Mr. Coder + El ActÓr + + + + So, this language. It\'s like, a programming language. + Or is it a scripting language? All is revealed in this + thrilling horror spoof of a documentary. + + + PHP solves all my web problems + + 7 + 5 + + + '); + + $this->simpleXML_named_NS = simplexml_load_string(' + + + PHP: Behind the Parser + + + Ms. Coder + Onlivia Actora + + + Mr. Coder + El ActÓr + + + + So, this language. It\'s like, a programming language. + Or is it a scripting language? All is revealed in this + thrilling horror spoof of a documentary. + + + PHP solves all my web problems + + 7 + 5 + + + '); + } +} + +?> diff --git a/tests/simplexml_dump_Test.php b/tests/simplexml_dump_Test.php new file mode 100644 index 0000000..506fea8 --- /dev/null +++ b/tests/simplexml_dump_Test.php @@ -0,0 +1,131 @@ +expected = "SimpleXML object (1 item) +[ + Element { + Name: 'movies' + String Content: ' + + ' + Content in Default Namespace + Children: 1 - 1 'movie' + Attributes: 0 + } +] +"; + + $this->expected_default_NS = "SimpleXML object (1 item) +[ + Element { + Namespace: 'https://github.com/IMSoP/simplexml_debug' + (Default Namespace) + Name: 'movies' + String Content: ' + + ' + Content in Default Namespace + Namespace URI: 'https://github.com/IMSoP/simplexml_debug' + Children: 1 - 1 'movie' + Attributes: 0 + } +] +"; + + $this->expected_named_NS = "SimpleXML object (1 item) +[ + Element { + Name: 'movies' + String Content: ' + + ' + Content in Namespace test + Namespace URI: 'https://github.com/IMSoP/simplexml_debug' + Children: 1 - 1 'movie' + Attributes: 0 + } +] +"; + + parent::setUp(); + } + + public function testDump() + { + ob_start(); + simplexml_dump($this->simpleXML); + $return = ob_get_contents(); + ob_end_clean(); + + $this->assertEquals($this->expected, $return); + } + + public function testDumpReturn() + { + $return = simplexml_dump($this->simpleXML, true); + $this->assertEquals($this->expected, $return); + } + + public function testDumpWithDefaultNS() + { + $return = simplexml_dump($this->simpleXML_default_NS, true); + $this->assertEquals($this->expected_default_NS, $return); + } + + public function testDumpWithNamedNS() + { + $return = simplexml_dump($this->simpleXML_named_NS, true); + $this->assertEquals($this->expected_named_NS, $return); + } + + public function testDumpAttributeWithNamedNS() + { + $xml = ''; + $sxml = simplexml_load_string($xml); + + $return = simplexml_dump($sxml->children('ns', true)->child->attributes('ns'), true); + + $expected = "SimpleXML object (1 item) +[ + Attribute { + Namespace: 'ns' + Namespace Alias: 'ns' + Name: 'foo' + Value: 'bar' + } +] +"; + + $this->assertEquals($expected, $return); + } + + public function testDumpMultipleAttributes() + { + $xml = ''; + $sxml = simplexml_load_string($xml); + + $return = simplexml_dump($sxml->child, true); + + $expected = "SimpleXML object (1 item) +[ + Element { + Namespace: 'ns' + Namespace Alias: 'ns' + Name: 'child' + String Content: '' + Content in Namespace ns + Namespace URI: 'ns' + Children: 0 + Attributes: 3 - 'one', 'two', 'three' + } +] +"; + + $this->assertEquals($expected, $return); + } +} + +?> diff --git a/tests/simplexml_tree_Test.php b/tests/simplexml_tree_Test.php new file mode 100644 index 0000000..786a8ad --- /dev/null +++ b/tests/simplexml_tree_Test.php @@ -0,0 +1,149 @@ +expected = "SimpleXML object (1 item) +[0] // + ->movie[0] + ->title[0] + ->characters[0] + ->character[0] + ->name[0] + ->actor[0] + ->character[1] + ->name[0] + ->actor[0] + ->plot[0] + ->great-lines[0] + ->line[0] + ->rating[0] + ['type'] + ->rating[1] + ['type'] +"; + + $this->expected_default_NS = "SimpleXML object (1 item) +[0] // + ->movie[0] + ->title[0] + ->characters[0] + ->character[0] + ->name[0] + ->actor[0] + ->character[1] + ->name[0] + ->actor[0] + ->plot[0] + ->great-lines[0] + ->line[0] + ->rating[0] + ['type'] + ->rating[1] + ['type'] +"; + + $this->expected_named_NS = "SimpleXML object (1 item) +[0] // + ->children('test', true) + ->movie[0] + ->title[0] + ->characters[0] + ->character[0] + ->name[0] + ->actor[0] + ->character[1] + ->name[0] + ->actor[0] + ->plot[0] + ->great-lines[0] + ->line[0] + ->rating[0] + ->attributes('', true) + ->type + ->rating[1] + ->attributes('', true) + ->type +"; + + parent::setUp(); + } + + public function testTree() + { + ob_start(); + simplexml_tree($this->simpleXML); + $return = ob_get_contents(); + ob_end_clean(); + + $this->assertEquals($this->expected, $return); + } + + public function testTreeIncludeStringContent() + { + ob_start(); + simplexml_tree($this->simpleXML, true); + $return = ob_get_contents(); + ob_end_clean(); + + $expected = "SimpleXML object (1 item) +[0] // + (string) '' (9 chars) + ->movie[0] + (string) '' (41 chars) + ->title[0] + (string) 'PHP: Behind the...' (22 chars) + ->characters[0] + (string) '' (20 chars) + ->character[0] + (string) '' (23 chars) + ->name[0] + (string) 'Ms. Coder' (9 chars) + ->actor[0] + (string) 'Onlivia Actora' (14 chars) + ->character[1] + (string) '' (23 chars) + ->name[0] + (string) 'Mr. Coder' (9 chars) + ->actor[0] + (string) 'El ActÓr' (9 chars) + ->plot[0] + (string) 'So, this langua...' (174 chars) + ->great-lines[0] + (string) '' (13 chars) + ->line[0] + (string) 'PHP solves all ...' (30 chars) + ->rating[0] + (string) '7' (1 chars) + ['type'] + (string) 'thumbs' (6 chars) + ->rating[1] + (string) '5' (1 chars) + ['type'] + (string) 'stars' (5 chars) +"; + + $this->assertEquals($expected, $return); + } + + public function testTreeReturn() + { + $return = simplexml_tree($this->simpleXML, false, true); + $this->assertEquals($this->expected, $return); + } + + public function testTreeWithDefaultNS() + { + $return = simplexml_tree($this->simpleXML_default_NS, false, true); + $this->assertEquals($this->expected_default_NS, $return); + } + + public function testTreeWithNamedNS() + { + $return = simplexml_tree($this->simpleXML_named_NS, false, true); + $this->assertEquals($this->expected_named_NS, $return); + } +} + +?>