update v1.0.4
This commit is contained in:
147
vendor/symfony/filesystem/Tests/FilesystemTest.php
vendored
147
vendor/symfony/filesystem/Tests/FilesystemTest.php
vendored
@@ -483,6 +483,22 @@ class FilesystemTest extends FilesystemTestCase
|
||||
$this->assertFilePermissions(753, $directory);
|
||||
}
|
||||
|
||||
public function testChmodChangesZeroModeOnSubdirectoriesOnRecursive()
|
||||
{
|
||||
$this->markAsSkippedIfChmodIsMissing();
|
||||
|
||||
$directory = $this->workspace.DIRECTORY_SEPARATOR.'directory';
|
||||
$subdirectory = $directory.DIRECTORY_SEPARATOR.'subdirectory';
|
||||
|
||||
mkdir($directory);
|
||||
mkdir($subdirectory);
|
||||
chmod($subdirectory, 0000);
|
||||
|
||||
$this->filesystem->chmod($directory, 0753, 0000, true);
|
||||
|
||||
$this->assertFilePermissions(753, $subdirectory);
|
||||
}
|
||||
|
||||
public function testChown()
|
||||
{
|
||||
$this->markAsSkippedIfPosixIsMissing();
|
||||
@@ -946,6 +962,110 @@ class FilesystemTest extends FilesystemTestCase
|
||||
);
|
||||
}
|
||||
|
||||
public function testTempnam()
|
||||
{
|
||||
$dirname = $this->workspace;
|
||||
|
||||
$filename = $this->filesystem->tempnam($dirname, 'foo');
|
||||
|
||||
$this->assertFileExists($filename);
|
||||
}
|
||||
|
||||
public function testTempnamWithFileScheme()
|
||||
{
|
||||
$scheme = 'file://';
|
||||
$dirname = $scheme.$this->workspace;
|
||||
|
||||
$filename = $this->filesystem->tempnam($dirname, 'foo');
|
||||
|
||||
$this->assertStringStartsWith($scheme, $filename);
|
||||
$this->assertFileExists($filename);
|
||||
}
|
||||
|
||||
public function testTempnamWithMockScheme()
|
||||
{
|
||||
stream_wrapper_register('mock', 'Symfony\Component\Filesystem\Tests\Fixtures\MockStream\MockStream');
|
||||
|
||||
$scheme = 'mock://';
|
||||
$dirname = $scheme.$this->workspace;
|
||||
|
||||
$filename = $this->filesystem->tempnam($dirname, 'foo');
|
||||
|
||||
$this->assertStringStartsWith($scheme, $filename);
|
||||
$this->assertFileExists($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Filesystem\Exception\IOException
|
||||
*/
|
||||
public function testTempnamWithZlibSchemeFails()
|
||||
{
|
||||
$scheme = 'compress.zlib://';
|
||||
$dirname = $scheme.$this->workspace;
|
||||
|
||||
// The compress.zlib:// stream does not support mode x: creates the file, errors "failed to open stream: operation failed" and returns false
|
||||
$this->filesystem->tempnam($dirname, 'bar');
|
||||
|
||||
}
|
||||
|
||||
public function testTempnamWithPHPTempSchemeFails()
|
||||
{
|
||||
$scheme = 'php://temp';
|
||||
$dirname = $scheme;
|
||||
|
||||
$filename = $this->filesystem->tempnam($dirname, 'bar');
|
||||
|
||||
$this->assertStringStartsWith($scheme, $filename);
|
||||
|
||||
// The php://temp stream deletes the file after close
|
||||
$this->assertFileNotExists($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Filesystem\Exception\IOException
|
||||
*/
|
||||
public function testTempnamWithPharSchemeFails()
|
||||
{
|
||||
// Skip test if Phar disabled phar.readonly must be 0 in php.ini
|
||||
if (!\Phar::canWrite()) {
|
||||
$this->markTestSkipped('This test cannot run when phar.readonly is 1.');
|
||||
}
|
||||
|
||||
$scheme = 'phar://';
|
||||
$dirname = $scheme.$this->workspace;
|
||||
$pharname = 'foo.phar';
|
||||
|
||||
new \Phar($this->workspace.'/'.$pharname, 0, $pharname);
|
||||
// The phar:// stream does not support mode x: fails to create file, errors "failed to open stream: phar error: "$filename" is not a file in phar "$pharname"" and returns false
|
||||
$this->filesystem->tempnam($dirname, $pharname.'/bar');
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Symfony\Component\Filesystem\Exception\IOException
|
||||
*/
|
||||
public function testTempnamWithHTTPSchemeFails()
|
||||
{
|
||||
$scheme = 'http://';
|
||||
$dirname = $scheme.$this->workspace;
|
||||
|
||||
// The http:// scheme is read-only
|
||||
$this->filesystem->tempnam($dirname, 'bar');
|
||||
}
|
||||
|
||||
public function testTempnamOnUnwritableFallsBackToSysTmp()
|
||||
{
|
||||
$scheme = 'file://';
|
||||
$dirname = $scheme.$this->workspace.DIRECTORY_SEPARATOR.'does_not_exist';
|
||||
|
||||
$filename = $this->filesystem->tempnam($dirname, 'bar');
|
||||
$realTempDir = realpath(sys_get_temp_dir());
|
||||
$this->assertStringStartsWith(rtrim($scheme.$realTempDir, DIRECTORY_SEPARATOR), $filename);
|
||||
$this->assertFileExists($filename);
|
||||
|
||||
// Tear down
|
||||
@unlink($filename);
|
||||
}
|
||||
|
||||
public function testDumpFile()
|
||||
{
|
||||
$filename = $this->workspace.DIRECTORY_SEPARATOR.'foo'.DIRECTORY_SEPARATOR.'baz.txt';
|
||||
@@ -1000,6 +1120,33 @@ class FilesystemTest extends FilesystemTestCase
|
||||
$this->assertSame('bar', file_get_contents($filename));
|
||||
}
|
||||
|
||||
public function testDumpFileWithFileScheme()
|
||||
{
|
||||
if (defined('HHVM_VERSION')) {
|
||||
$this->markTestSkipped('HHVM does not handle the file:// scheme correctly');
|
||||
}
|
||||
|
||||
$scheme = 'file://';
|
||||
$filename = $scheme.$this->workspace.DIRECTORY_SEPARATOR.'foo'.DIRECTORY_SEPARATOR.'baz.txt';
|
||||
|
||||
$this->filesystem->dumpFile($filename, 'bar', null);
|
||||
|
||||
$this->assertFileExists($filename);
|
||||
$this->assertSame('bar', file_get_contents($filename));
|
||||
}
|
||||
|
||||
public function testDumpFileWithZlibScheme()
|
||||
{
|
||||
$scheme = 'compress.zlib://';
|
||||
$filename = $this->workspace.DIRECTORY_SEPARATOR.'foo'.DIRECTORY_SEPARATOR.'baz.txt';
|
||||
|
||||
$this->filesystem->dumpFile($filename, 'bar', null);
|
||||
|
||||
// Zlib stat uses file:// wrapper so remove scheme
|
||||
$this->assertFileExists(str_replace($scheme, '', $filename));
|
||||
$this->assertSame('bar', file_get_contents($filename));
|
||||
}
|
||||
|
||||
public function testCopyShouldKeepExecutionPermission()
|
||||
{
|
||||
$this->markAsSkippedIfChmodIsMissing();
|
||||
|
46
vendor/symfony/filesystem/Tests/Fixtures/MockStream/MockStream.php
vendored
Normal file
46
vendor/symfony/filesystem/Tests/Fixtures/MockStream/MockStream.php
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Filesystem\Tests\Fixtures\MockStream;
|
||||
|
||||
/**
|
||||
* Mock stream class to be used with stream_wrapper_register.
|
||||
* stream_wrapper_register('mock', 'Symfony\Component\Filesystem\Tests\Fixtures\MockStream\MockStream').
|
||||
*/
|
||||
class MockStream
|
||||
{
|
||||
/**
|
||||
* Opens file or URL.
|
||||
*
|
||||
* @param string $path Specifies the URL that was passed to the original function
|
||||
* @param string $mode The mode used to open the file, as detailed for fopen()
|
||||
* @param int $options Holds additional flags set by the streams API
|
||||
* @param string $opened_path If the path is opened successfully, and STREAM_USE_PATH is set in options,
|
||||
* opened_path should be set to the full path of the file/resource that was actually opened
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function stream_open($path, $mode, $options, &$opened_path)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $path The file path or URL to stat
|
||||
* @param array $flags Holds additional flags set by the streams API
|
||||
*
|
||||
* @return array File stats
|
||||
*/
|
||||
public function url_stat($path, $flags)
|
||||
{
|
||||
return array();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user