From: Pierre Joye Date: Wed, 21 Dec 2005 03:58:59 +0000 (+0000) Subject: - MFH: add tests, ~70% coverage X-Git-Tag: php-5.1.2RC1~22 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f90214347e2ac0571c3766587de76265023eb489;p=php - MFH: add tests, ~70% coverage --- diff --git a/ext/xmlreader/tests/001.phpt b/ext/xmlreader/tests/001.phpt new file mode 100644 index 0000000000..ce9ade9618 --- /dev/null +++ b/ext/xmlreader/tests/001.phpt @@ -0,0 +1,29 @@ +--TEST-- +XMLReader: libxml2 XML Reader, string data +--SKIPIF-- + +--FILE-- + +'; + +$reader = new XMLReader(); +$reader->XML($xmlstring); + +// Only go through +while ($reader->read()) { + echo $reader->name."\n"; +} +$xmlstring = ''; +$reader = new XMLReader(); +$reader->XML($xmlstring); +?> +===DONE=== +--EXPECTF-- +books +books + +Warning: XMLReader::XML(): Empty string supplied as input in %s on line %d +===DONE=== diff --git a/ext/xmlreader/tests/002.phpt b/ext/xmlreader/tests/002.phpt new file mode 100644 index 0000000000..e04c6e8cd2 --- /dev/null +++ b/ext/xmlreader/tests/002.phpt @@ -0,0 +1,39 @@ +--TEST-- +XMLReader: libxml2 XML Reader, file data +--SKIPIF-- + +--FILE-- + +'; +file_put_contents($filename, $xmlstring); + +$reader = new XMLReader(); +if ($reader->open('')) exit(); + +$reader = new XMLReader(); +if (!$reader->open($filename)) { + $reader->close(); + exit(); +} + +// Only go through +while ($reader->read()) { + echo $reader->name."\n"; +} +unlink($filename); +touch($filename); +$reader = new XMLReader(); +$reader->open($filename); +unlink($filename); + +?> +===DONE=== +--EXPECTF-- + +Warning: XMLReader::open(): Empty string supplied as input in %s on line %d +books +books +===DONE=== diff --git a/ext/xmlreader/tests/003.phpt b/ext/xmlreader/tests/003.phpt new file mode 100644 index 0000000000..3e32c7a193 --- /dev/null +++ b/ext/xmlreader/tests/003.phpt @@ -0,0 +1,83 @@ +--TEST-- +XMLReader: libxml2 XML Reader, attributes test +--SKIPIF-- + +--FILE-- + +book1'; +file_put_contents($filename, $xmlstring); + +$reader = new XMLReader(); +if (!$reader->open($filename)) { + exit(); +} + +// Only go through +while ($reader->read()) { + if ($reader->nodeType != XMLREADER::END_ELEMENT) { + if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) { + $attr = $reader->moveToFirstAttribute(); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute($reader->name) == $reader->value) { + echo "1st attr (num) failed\n"; + } + + + $attr = $reader->moveToNextAttribute(); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute($reader->name) == $reader->value) { + echo "2nd attr (idx) failed\n"; + } + + // Named attribute + $attr = $reader->moveToAttribute('num'); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute('num') == $reader->value) { + echo "attr num failed\n"; + } + + $attr = $reader->moveToAttribute('idx'); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttribute('idx') == $reader->value) { + echo "attr idx failed\n"; + } + + // Numeric positions of attributes + $attr = $reader->moveToAttributeNo(0); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + if ($reader->getAttributeNo(0) == $reader->value) { + echo "attr 0 failed\n"; + } + + $attr = $reader->moveToAttributeNo(1); + echo $reader->name . ": "; + echo $reader->value . "\n"; + + } + } +} +unlink($filename); +?> +===DONE=== +--EXPECT-- +num: 1 +idx: 2 +num: 1 +idx: 2 +num: 1 +idx: 2 +===DONE=== diff --git a/ext/xmlreader/tests/004.phpt b/ext/xmlreader/tests/004.phpt new file mode 100644 index 0000000000..77c9777ba9 --- /dev/null +++ b/ext/xmlreader/tests/004.phpt @@ -0,0 +1,43 @@ +--TEST-- +XMLReader: libxml2 XML Reader, attributes test +--SKIPIF-- + +--FILE-- + +book1'; +file_put_contents($filename, $xmlstring); + +$reader = new XMLReader(); +if (!$reader->open($filename)) { + exit(); +} + +while ($reader->read()) { + if ($reader->nodeType != XMLREADER::END_ELEMENT) { + echo $reader->name."\n"; + if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) { + $attr = $reader->moveToFirstAttribute(); + while ($attr) { + echo " Attribute Name: ".$reader->name."\n"; + echo " Attribute Value: ".$reader->value."\n"; + $attr = $reader->moveToNextAttribute(); + } + } + } +} +unlink($filename); +?> +===DONE=== +--EXPECT-- +books +book + Attribute Name: num + Attribute Value: 1 + Attribute Name: idx + Attribute Value: 2 +#text +===DONE=== diff --git a/ext/xmlreader/tests/005.phpt b/ext/xmlreader/tests/005.phpt new file mode 100644 index 0000000000..e6fd02c9aa --- /dev/null +++ b/ext/xmlreader/tests/005.phpt @@ -0,0 +1,37 @@ +--TEST-- +XMLReader: libxml2 XML Reader, parser property set/get +--SKIPIF-- + +--FILE-- + +'; + +$reader = new XMLReader(); + +$reader->XML($xmlstring); + + +$a = $reader->setParserProperty(XMLReader::LOADDTD, false); +$b = $reader->getParserProperty(XMLReader::LOADDTD); + +if (!$a && !$b) { + echo "ok\n"; +} + +$a = $reader->setParserProperty(XMLReader::SUBST_ENTITIES, true); +$b = $reader->getParserProperty(XMLReader::SUBST_ENTITIES); + +if ($a && $b) { + echo "ok\n"; +} +// Only go through +while ($reader->read()); +$reader->close(); +?> +===DONE=== +--EXPECT-- +ok +===DONE=== diff --git a/ext/xmlreader/tests/006.phpt b/ext/xmlreader/tests/006.phpt new file mode 100644 index 0000000000..ce9bb451af --- /dev/null +++ b/ext/xmlreader/tests/006.phpt @@ -0,0 +1,36 @@ +--TEST-- +XMLReader: libxml2 XML Reader, moveToElement +--SKIPIF-- + +--FILE-- + +'; + +$reader = new XMLReader(); + +$reader->XML($xmlstring); + +// 2 read to get on the 2nd node +$reader->read(); +$reader->read(); + +if ($reader->nodeType != XMLREADER::END_ELEMENT) { + if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) { + $attr = $reader->moveToFirstAttribute(); + if ($reader->moveToElement()) { + if ($reader->name == 'book') { + echo "ok\n"; + } + } + } +} + +$reader->close(); +?> +===DONE=== +--EXPECT-- +ok +===DONE=== diff --git a/ext/xmlreader/tests/007.phpt b/ext/xmlreader/tests/007.phpt new file mode 100644 index 0000000000..842f25e5f6 --- /dev/null +++ b/ext/xmlreader/tests/007.phpt @@ -0,0 +1,57 @@ +--TEST-- +XMLReader: libxml2 XML Reader, setRelaxNGSchema +--SKIPIF-- + +--FILE-- +hello'; +$relaxngfile = dirname(__FILE__) . '/relaxNG.rng'; +$file = dirname(__FILE__) . '/__007.xml'; +file_put_contents($file, $xmlstring); + +$reader = new XMLReader(); +$reader->open($file); + +if ($reader->setRelaxNGSchema($relaxngfile)) { + while ($reader->read()); +} +if ($reader->isValid()) { + print "file relaxNG: ok\n"; +} else { + print "file relaxNG: failed\n"; +} +$reader->close(); +unlink($file); + + +$reader = new XMLReader(); +$reader->XML($xmlstring); + +if ($reader->setRelaxNGSchema($relaxngfile)) { + while ($reader->read()); +} +if ($reader->isValid()) { + print "string relaxNG: ok\n"; +} else { + print "string relaxNG: failed\n"; +} + +$reader->close(); + +$reader = new XMLReader(); +$reader->XML($xmlstring); + +if ($reader->setRelaxNGSchema('')) { + echo 'failed'; +} +$reader->close(); +?> +===DONE=== +--EXPECTF-- +file relaxNG: ok +string relaxNG: ok + +Warning: XMLReader::setRelaxNGSchema(): Schema data source is required in %s on line %d +===DONE=== diff --git a/ext/xmlreader/tests/008.phpt b/ext/xmlreader/tests/008.phpt new file mode 100644 index 0000000000..afd1f7cec3 --- /dev/null +++ b/ext/xmlreader/tests/008.phpt @@ -0,0 +1,70 @@ +--TEST-- +XMLReader: libxml2 XML Reader, DTD +--SKIPIF-- + +--FILE-- + + + + +Move Title 1 +Location 1 + + + +Move Title 2 + +Location 2 + + +'; + +$dtdfile = dirname(__FILE__) . '/dtdexample.dtd'; +$file = dirname(__FILE__) . '/__008.xml'; +file_put_contents($file, $xmlstring); + + +$reader = new XMLReader(); +$reader->open($file); +$reader->setParserProperty(XMLREADER::LOADDTD, TRUE); +$reader->setParserProperty(XMLREADER::VALIDATE, TRUE); +while($reader->read()); +if ($reader->isValid()) { + echo "file DTD: ok\n"; +} +unlink($file); + +$xmlstring = ' + + + +Move Title 1 +Location 1 + + + +Move Title 2 + +Location 2 + + +'; + +$reader = new XMLReader(); +$reader->XML($xmlstring); + +$reader->setParserProperty(XMLREADER::LOADDTD, TRUE); +$reader->setParserProperty(XMLREADER::VALIDATE, TRUE); +while($reader->read()); +if ($reader->isValid()) { + echo "string DTD: ok\n"; +} +?> +===DONE=== +--EXPECTF-- +file DTD: ok +string DTD: ok +===DONE=== diff --git a/ext/xmlreader/tests/009.phpt b/ext/xmlreader/tests/009.phpt new file mode 100644 index 0000000000..613ef678cb --- /dev/null +++ b/ext/xmlreader/tests/009.phpt @@ -0,0 +1,28 @@ +--TEST-- +XMLReader: libxml2 XML Reader, next +--SKIPIF-- + +--FILE-- + +'; + +$reader = new XMLReader(); +$reader->XML($xmlstring); + +// Only go through +$reader->read(); +$reader->read(); + +$reader->next(); +echo $reader->name; +echo " "; +echo $reader->getAttribute('num'); +echo "\n"; +?> +===DONE=== +--EXPECTF-- +book 2 +===DONE=== diff --git a/ext/xmlreader/tests/010.phpt b/ext/xmlreader/tests/010.phpt new file mode 100644 index 0000000000..a107c7441f --- /dev/null +++ b/ext/xmlreader/tests/010.phpt @@ -0,0 +1,27 @@ +--TEST-- +XMLReader: libxml2 XML Reader, next +--SKIPIF-- + +--FILE-- + +book1'; + +$reader = new XMLReader(); +$reader->XML($xmlstring); + +// Only go through +$reader->read(); +$reader->read(); + +$reader->next(); +echo $reader->name; +echo " "; +echo $reader->getAttributeNs('isbn', 'uri'); +echo "\n"; +?> +===DONE=== +--EXPECTF-- +prefix:books 12isbn +===DONE=== diff --git a/ext/xmlreader/tests/dtdexample.dtd b/ext/xmlreader/tests/dtdexample.dtd new file mode 100644 index 0000000000..ce53f0bc18 --- /dev/null +++ b/ext/xmlreader/tests/dtdexample.dtd @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ext/xmlreader/tests/relaxNG.rng b/ext/xmlreader/tests/relaxNG.rng new file mode 100644 index 0000000000..f4357e04ef --- /dev/null +++ b/ext/xmlreader/tests/relaxNG.rng @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/ext/xmlreader/tests/relaxNG2.rng b/ext/xmlreader/tests/relaxNG2.rng new file mode 100644 index 0000000000..4adae7b151 --- /dev/null +++ b/ext/xmlreader/tests/relaxNG2.rng @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ext/xmlreader/tests/relaxNG3.rng b/ext/xmlreader/tests/relaxNG3.rng new file mode 100644 index 0000000000..73e1eb6165 --- /dev/null +++ b/ext/xmlreader/tests/relaxNG3.rng @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file