1--TEST--
2Overriding an EXSLT builtin
3--EXTENSIONS--
4xsl
5--SKIPIF--
6<?php
7$proc = new xsltprocessor;
8if (!$proc->hasExsltSupport()) die('skip EXSLT support not available');
9if (LIBXSLT_VERSION < 10130) die('skip too old libxsl');
10?>
11--FILE--
12<?php
13
14function dummy_year($input) {
15    var_dump($input[0]->textContent);
16    return 'dummy value';
17}
18
19function dummy_exit($input) {
20    var_dump($input);
21    exit("dummy exit");
22}
23
24$xsl = <<<XML
25<?xml version="1.0" encoding="ISO-8859-1"?>
26<xsl:stylesheet version="1.0"
27                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
28                xmlns:date="http://exslt.org/dates-and-times"
29                extension-element-prefixes="date">
30<xsl:output method="text"/>
31<xsl:template match="date"><xsl:value-of select="date:year(@date)"/></xsl:template>
32</xsl:stylesheet>
33XML;
34
35$xml = <<<XML
36<?xml version="1.0"?>
37<page><date date="2007-12-31"/></page>
38XML;
39
40$xsldoc = new DOMDocument();
41$xsldoc->loadXML($xsl);
42
43$xmldoc = new DOMDocument();
44$xmldoc->loadXML($xml);
45
46$proc = new XSLTProcessor();
47$proc->importStylesheet($xsldoc);
48
49// Should override the builtin function
50$proc->registerPHPFunctionNS('http://exslt.org/dates-and-times', 'year', dummy_year(...));
51echo $proc->transformToXML($xmldoc), "\n";
52
53// Should not exit
54$proc->registerPHPFunctionNS('http://www.w3.org/1999/XSL/Transform', 'value-of', dummy_exit(...));
55echo $proc->transformToXML($xmldoc), "\n";
56
57?>
58--EXPECT--
59string(10) "2007-12-31"
60dummy value
61string(10) "2007-12-31"
62dummy value
63