]> granicus.if.org Git - php/commitdiff
Improve testkit for xslt.
authorMelvyn Sopacua <msopacua@php.net>
Fri, 4 Oct 2002 11:41:34 +0000 (11:41 +0000)
committerMelvyn Sopacua <msopacua@php.net>
Fri, 4 Oct 2002 11:41:34 +0000 (11:41 +0000)
 002.phpt and 003.phpt are regression tests for reported bugs.
 004.phpt has been known to cause problems in some Sab/PHP combinations.
 No known reports in bug db for that one.
 Added skip mechanism
@- Added regression test for bugs #17791 and #17931 (Melvyn)

ext/xslt/tests/002.phpt [new file with mode: 0644]
ext/xslt/tests/003.phpt [new file with mode: 0644]
ext/xslt/tests/skipif.inc [new file with mode: 0644]
ext/xslt/tests/xslt_set_error_handler.php [new file with mode: 0644]

diff --git a/ext/xslt/tests/002.phpt b/ext/xslt/tests/002.phpt
new file mode 100644 (file)
index 0000000..0a9446e
--- /dev/null
@@ -0,0 +1,15 @@
+--TEST--
+Pass long string to 'file' argument, bug #17791
+--SKIPIF--
+<?php include("skipif.inc"); ?>
+--FILE--
+<?php
+$xmlstring = str_repeat('x', 512);
+$xslstring = 'x';
+$xh = xslt_create();
+$result = @xslt_process($xh, $xmlstring, $xslstring);
+@xslt_free($xh);
+echo("OK");
+?>
+--EXPECT--
+OK
diff --git a/ext/xslt/tests/003.phpt b/ext/xslt/tests/003.phpt
new file mode 100644 (file)
index 0000000..5663b44
--- /dev/null
@@ -0,0 +1,10 @@
+--TEST--
+Pass object for xslt_error_handler, bug #17931
+--SKIPIF--
+<?php include("skipif.inc"); ?>
+--FILE--
+<?php
+include('xslt_set_error_handler.php');
+?>
+--EXPECT--
+OK
diff --git a/ext/xslt/tests/skipif.inc b/ext/xslt/tests/skipif.inc
new file mode 100644 (file)
index 0000000..bd0add9
--- /dev/null
@@ -0,0 +1,9 @@
+<?php
+if(!extension_loaded("xslt") && ini_get("enable_dl")) {
+       $dlext = (substr(PHP_OS, 0, 4) == "WIN") ? ".dll" : ".so";
+       @dl("xlst$dlext");
+}
+if(!extension_loaded("xslt")) {
+       die("skip\n");
+}
+?>
diff --git a/ext/xslt/tests/xslt_set_error_handler.php b/ext/xslt/tests/xslt_set_error_handler.php
new file mode 100644 (file)
index 0000000..f0a03a8
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+class xsl {
+
+       function xsl() {
+               $this->_parser = xslt_create();
+       }
+       
+       function set_error() {
+               xslt_set_error_handler($this->_parser, array($this, 'xslt_trap_error'));
+               echo "OK";
+       }
+       
+       function xslt_trap_error($parser, $errorno, $level, $fields) {
+               return TRUE;
+       }
+       function clean() {
+               xslt_free($this->_parser);
+       }
+}
+
+$x = new xsl;
+// work-around for possible '$this does not exist' bug in constructor
+$x->set_error();
+$x->clean();
+?>