1
0
mirror of https://github.com/php/php-src.git synced 2026-04-21 23:18:13 +02:00
Files
archived-php-src/ext/xsl/tests/bug54446.phpt
T
Peter Kokot d679f02295 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:33:09 +02:00

93 lines
2.5 KiB
PHP

--TEST--
Bug #54446 (Arbitrary file creation via libxslt 'output' extension)
--SKIPIF--
<?php
if (!extension_loaded('xsl')) die("skip Extension XSL is required\n");
?>
--FILE--
<?php
include("prepare.inc");
$outputfile = dirname(__FILE__)."/bug54446test.txt";
if (file_exists($outputfile)) {
unlink($outputfile);
}
$sXsl = <<<EOT
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sax="http://icl.com/saxon"
extension-element-prefixes="sax">
<xsl:template match="/">
<sax:output href="$outputfile" method="text">
<xsl:value-of select="'0wn3d via PHP and libxslt ...'"/>
</sax:output>
</xsl:template>
</xsl:stylesheet>
EOT;
$xsl->loadXML( $sXsl );
# START XSLT
$proc->importStylesheet( $xsl );
# TRASNFORM & PRINT
print $proc->transformToXML( $dom );
if (file_exists($outputfile)) {
print "$outputfile exists, but shouldn't!\n";
} else {
print "OK, no file created\n";
}
#SET NO SECURITY PREFS
$proc->setSecurityPrefs(XSL_SECPREF_NONE);
# TRASNFORM & PRINT
print $proc->transformToXML( $dom );
if (file_exists($outputfile)) {
print "OK, file exists\n";
} else {
print "$outputfile doesn't exist, but should!\n";
}
unlink($outputfile);
#SET SECURITY PREFS AGAIN
$proc->setSecurityPrefs( XSL_SECPREF_WRITE_FILE | XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY);
# TRASNFORM & PRINT
print $proc->transformToXML( $dom );
if (file_exists($outputfile)) {
print "$outputfile exists, but shouldn't!\n";
} else {
print "OK, no file created\n";
}
--EXPECTF--
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %s element output in %s on line %d
Warning: XSLTProcessor::transformToXml(): File write for %s/bug54446test.txt refused in %s on line %d
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %d element output in %s on line %d
Warning: XSLTProcessor::transformToXml(): xsltDocumentElem: write rights for %s/bug54446test.txt denied in %s on line %d
OK, no file created
OK, file exists
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %s element output in %s on line %d
Warning: XSLTProcessor::transformToXml(): File write for %s/bug54446test.txt refused in %s on line %d
Warning: XSLTProcessor::transformToXml(): runtime error: file %s line %d element output in %s on line %d
Warning: XSLTProcessor::transformToXml(): xsltDocumentElem: write rights for %s/bug54446test.txt denied in %s on line %d
OK, no file created
--CREDITS--
Christian Stocker, chregu@php.net