summaryrefslogtreecommitdiff
path: root/ext/dom/tests/domxpath.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/dom/tests/domxpath.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/dom/tests/domxpath.phpt')
-rw-r--r--ext/dom/tests/domxpath.phpt58
1 files changed, 58 insertions, 0 deletions
diff --git a/ext/dom/tests/domxpath.phpt b/ext/dom/tests/domxpath.phpt
new file mode 100644
index 0000000..82396b5
--- /dev/null
+++ b/ext/dom/tests/domxpath.phpt
@@ -0,0 +1,58 @@
+--TEST--
+DOMXPath Tests
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+require_once("dom_test.inc");
+
+function MyAverage($nodelist) {
+ $count = 0;
+ $val = 0;
+ foreach ($nodelist AS $node) {
+ $count++;
+ $val += $node->textContent;
+ }
+ if ($val > 0) {
+ return $val/$count;
+ } else {
+ return 0;
+ }
+}
+
+$dom = new DOMDocument;
+$dom->loadXML(b'<root xmlns="urn::default"><child>myval</child></root>');
+
+$xpath = new DOMXPath($dom);
+
+$xpath->registerPHPFunctions('MyAverage');
+$xpath->registerNamespace("php", "http://php.net/xpath");
+
+$xpath->registerNamespace("def", "urn::default");
+$nodelist = $xpath->query("//def:child");
+if ($node = $nodelist->item(0)) {
+ print $node->textContent."\n";
+}
+
+$count = $xpath->evaluate("count(//def:child)");
+
+var_dump($count);
+
+$xpathdoc = $xpath->document;
+
+var_dump($xpathdoc instanceof DOMDocument);
+
+$root = $dom->documentElement;
+$root->appendChild($dom->createElementNS("urn::default", "testnode", 3));
+$root->appendChild($dom->createElementNS("urn::default", "testnode", 4));
+$root->appendChild($dom->createElementNS("urn::default", "testnode", 4));
+$root->appendChild($dom->createElementNS("urn::default", "testnode", 5));
+
+$avg = $xpath->evaluate('number(php:function("MyAverage", //def:testnode))');
+var_dump($avg);
+?>
+--EXPECT--
+myval
+float(1)
+bool(true)
+float(4) \ No newline at end of file