summaryrefslogtreecommitdiff
path: root/ext/xmlreader/tests
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2006-05-10 12:04:46 +0000
committerRob Richards <rrichards@php.net>2006-05-10 12:04:46 +0000
commitaa38b5572e667a2224a799e7f5d291aa13028a59 (patch)
treedc6bde41664c0836da85674276ea593ffb815b30 /ext/xmlreader/tests
parentac97b77ed9b3ec175cb8150f6dbb2709666df2ff (diff)
downloadphp-git-aa38b5572e667a2224a799e7f5d291aa13028a59.tar.gz
Synch with HEAD
add readInnerXML, readOuterXML, readString, and setSchema functionality allow parser options to be passed when loading reader optimization: use xmlTextReader const functions for string properties add test
Diffstat (limited to 'ext/xmlreader/tests')
-rwxr-xr-xext/xmlreader/tests/013.phpt52
-rwxr-xr-xext/xmlreader/tests/013.xsd10
2 files changed, 62 insertions, 0 deletions
diff --git a/ext/xmlreader/tests/013.phpt b/ext/xmlreader/tests/013.phpt
new file mode 100755
index 0000000000..f9dcdeeec7
--- /dev/null
+++ b/ext/xmlreader/tests/013.phpt
@@ -0,0 +1,52 @@
+--TEST--
+XMLReader: Schema validation
+--SKIPIF--
+<?php if (!extension_loaded('xmlreader')) die('skip');?>
+<?php if (!method_exists('XMLReader','setSchema')) die('skip XMLReader::setSchema() not supported');?>
+--FILE--
+<?php
+/* $Id$ */
+
+$xml =<<<EOF
+<?xml version="1.0" encoding="UTF-8" ?>
+<items>
+ <item>123</item>
+ <item>456</item>
+</items>
+EOF;
+
+$reader = new XMLReader();
+$reader->XML($xml);
+$reader->setSchema(dirname(__FILE__) . '/013.xsd');
+while($reader->read()) {
+ if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'item') {
+ $reader->read();
+ var_dump($reader->value);
+ }
+}
+$reader->close();
+
+?>
+===FAIL===
+<?php
+
+$xml =<<<EOF
+<?xml version="1.0" encoding="UTF-8" ?>
+<foo/>
+EOF;
+
+$reader = new XMLReader();
+$reader->XML($xml);
+$reader->setSchema(dirname(__FILE__) . '/013.xsd');
+while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
+$reader->close();
+
+?>
+===DONE===
+--EXPECTF--
+string(3) "123"
+string(3) "456"
+===FAIL===
+
+Warning: XMLReader::read(): Element 'foo': %s
+===DONE===
diff --git a/ext/xmlreader/tests/013.xsd b/ext/xmlreader/tests/013.xsd
new file mode 100755
index 0000000000..50b000b6fc
--- /dev/null
+++ b/ext/xmlreader/tests/013.xsd
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="items">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="item" type="xsd:integer" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>