php-src/ext/dom/tests/DOMXPath_evaluate_namespace_node_set.phpt
Niels Dossche 49b8168ddb Cover more paths in dom_xpath_ext_function_php() with tests
Also removes an incorrect comment: we *do* need the special namespace
node handling code, otherwise we'd segfault.
2023-10-12 22:58:52 +02:00

34 lines
748 B
PHP

--TEST--
DOMXPath::evaluate() with PHP function passing a namespace node-set
--EXTENSIONS--
dom
--FILE--
<?php
$dom = new DOMDocument();
$dom->loadXML(<<<XML
<?xml version="1.0"?>
<container>
<p>hi</p>
</container>
XML);
$xpath = new DOMXPath($dom);
function node_test($nodes) {
echo "nodes count: ", count($nodes), "\n";
return array_sum(array_map(fn ($node) => strlen($node->nodeName), $nodes));
}
$xpath->registerNamespace("php", "http://php.net/xpath");
$xpath->registerPhpFunctions(['node_test']);
var_dump($xpath->evaluate('number(php:function("node_test", //namespace::*))'));
var_dump($xpath->evaluate('boolean(php:function("node_test", //namespace::*))'));
?>
--EXPECT--
nodes count: 2
float(18)
nodes count: 2
bool(true)