Browse Source

- add some tests, ~70% now

migration/RELEASE_1_0_0
Pierre Joye 21 years ago
parent
commit
bb2ea6d564
  1. 29
      ext/xmlreader/tests/001.phpt
  2. 39
      ext/xmlreader/tests/002.phpt
  3. 83
      ext/xmlreader/tests/003.phpt
  4. 43
      ext/xmlreader/tests/004.phpt
  5. 37
      ext/xmlreader/tests/005.phpt
  6. 36
      ext/xmlreader/tests/006.phpt
  7. 57
      ext/xmlreader/tests/007.phpt
  8. 70
      ext/xmlreader/tests/008.phpt
  9. 28
      ext/xmlreader/tests/009.phpt
  10. 27
      ext/xmlreader/tests/010.phpt
  11. 8
      ext/xmlreader/tests/dtdexample.dtd
  12. 11
      ext/xmlreader/tests/relaxNG.rng
  13. 23
      ext/xmlreader/tests/relaxNG2.rng
  14. 8
      ext/xmlreader/tests/relaxNG3.rng

29
ext/xmlreader/tests/001.phpt

@ -0,0 +1,29 @@
--TEST--
XMLReader: libxml2 XML Reader, string data
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books></books>';
$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===

39
ext/xmlreader/tests/002.phpt

@ -0,0 +1,39 @@
--TEST--
XMLReader: libxml2 XML Reader, file data
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$filename = dirname(__FILE__) . '/_002.xml';
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books></books>';
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===

83
ext/xmlreader/tests/003.phpt

@ -0,0 +1,83 @@
--TEST--
XMLReader: libxml2 XML Reader, attributes test
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$filename = dirname(__FILE__) . '/_002.xml';
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books><book num="1" idx="2">book1</book></books>';
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===

43
ext/xmlreader/tests/004.phpt

@ -0,0 +1,43 @@
--TEST--
XMLReader: libxml2 XML Reader, attributes test
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$filename = dirname(__FILE__) . '/_002.xml';
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books><book num="1" idx="2">book1</book></books>';
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===

37
ext/xmlreader/tests/005.phpt

@ -0,0 +1,37 @@
--TEST--
XMLReader: libxml2 XML Reader, parser property set/get
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books></books>';
$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===

36
ext/xmlreader/tests/006.phpt

@ -0,0 +1,36 @@
--TEST--
XMLReader: libxml2 XML Reader, moveToElement
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books><book num="1"></book><test /></books>';
$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===

57
ext/xmlreader/tests/007.phpt

@ -0,0 +1,57 @@
--TEST--
XMLReader: libxml2 XML Reader, setRelaxNGSchema
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<TEI.2>hello</TEI.2>';
$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===

70
ext/xmlreader/tests/008.phpt

@ -0,0 +1,70 @@
--TEST--
XMLReader: libxml2 XML Reader, DTD
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE LIST SYSTEM "dtdexample.dtd">
<LIST>
<MOVIE ID="x200338360">
<TITLE>Move Title 1</TITLE>
<ORGTITLE/><LOC>Location 1</LOC>
<INFO/>
</MOVIE>
<MOVIE ID="m200338361">
<TITLE>Move Title 2</TITLE>
<ORGTITLE/>
<LOC>Location 2</LOC>
<INFO/>
</MOVIE>
</LIST>';
$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 = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE LIST SYSTEM "file:///' . dirname(__FILE__). '/dtdexample.dtd">
<LIST>
<MOVIE ID="x200338360">
<TITLE>Move Title 1</TITLE>
<ORGTITLE/><LOC>Location 1</LOC>
<INFO/>
</MOVIE>
<MOVIE ID="m200338361">
<TITLE>Move Title 2</TITLE>
<ORGTITLE/>
<LOC>Location 2</LOC>
<INFO/>
</MOVIE>
</LIST>';
$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===

28
ext/xmlreader/tests/009.phpt

@ -0,0 +1,28 @@
--TEST--
XMLReader: libxml2 XML Reader, next
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<books><book num="1"><test /></book><book num="2" /></books>';
$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===

27
ext/xmlreader/tests/010.phpt

@ -0,0 +1,27 @@
--TEST--
XMLReader: libxml2 XML Reader, next
--SKIPIF--
<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
--FILE--
<?php
/* $Id$ */
$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
<prefix:books xmlns:prefix="uri" isbn="" prefix:isbn="12isbn">book1</prefix:books>';
$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===

8
ext/xmlreader/tests/dtdexample.dtd

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT LIST (MOVIE+)>
<!ELEMENT MOVIE (TITLE, ORGTITLE, LOC, INFO)>
<!ATTLIST MOVIE ID ID #REQUIRED>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT ORGTITLE (#PCDATA)>
<!ELEMENT LOC (#PCDATA)>
<!ELEMENT INFO (#PCDATA)>

11
ext/xmlreader/tests/relaxNG.rng

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<include href="relaxNG2.rng">
<define name="TEI.prose"><ref name="INCLUDE"/></define>
</include>
</grammar>

23
ext/xmlreader/tests/relaxNG2.rng

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:t="http://www.thaiopensource.com/ns/annotations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<start>
<ref name="TEI.2"/>
</start>
<define name="IGNORE">
<notAllowed/>
</define>
<define name="INCLUDE">
<empty/>
</define>
<include href="relaxNG3.rng"/>
<define name="TEI.2">
<element name="TEI.2">
<text/>
</element>
</define>
</grammar>

8
ext/xmlreader/tests/relaxNG3.rng

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:t="http://www.thaiopensource.com/ns/annotations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<define name="TEI.prose" combine="interleave">
<ref name="IGNORE"/>
</define>
</grammar>
Loading…
Cancel
Save