mirror of
https://github.com/Ne-Lexa/php-zip.git
synced 2025-08-05 06:57:25 +02:00
@@ -35,10 +35,13 @@ trait PhpUnit9CompatTrait
|
||||
/**
|
||||
* Asserts that a directory does not exist.
|
||||
*
|
||||
* @noinspection PhpDeprecationInspection
|
||||
*
|
||||
* @param string $directory
|
||||
* @param string $message
|
||||
*
|
||||
* @throws ExpectationFailedException
|
||||
* @throws InvalidArgumentException
|
||||
*
|
||||
* @noinspection PhpDeprecationInspection
|
||||
*/
|
||||
public static function assertDirectoryDoesNotExist(string $directory, string $message = ''): void
|
||||
{
|
||||
|
@@ -23,9 +23,7 @@ final class SymlinkTest extends ZipTestCase
|
||||
*/
|
||||
public function testSymlink($allowSymlink)
|
||||
{
|
||||
if (self::skipTestForWindows()) {
|
||||
return;
|
||||
}
|
||||
self::skipTestForWindows();
|
||||
|
||||
if (!is_dir($this->outputDirname)) {
|
||||
self::assertTrue(mkdir($this->outputDirname, 0755, true));
|
||||
|
@@ -43,13 +43,8 @@ class ZipFileTest extends ZipTestCase
|
||||
*/
|
||||
public function testOpenFileCantOpen()
|
||||
{
|
||||
if (static::skipTestForWindows()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (static::skipTestForRootUser()) {
|
||||
return;
|
||||
}
|
||||
static::skipTestForWindows();
|
||||
static::skipTestForRootUser();
|
||||
|
||||
$this->expectException(ZipException::class);
|
||||
$this->expectExceptionMessage('can\'t open');
|
||||
@@ -186,9 +181,9 @@ class ZipFileTest extends ZipTestCase
|
||||
public function testOpenFromStreamInvalidResourceType2()
|
||||
{
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
$exceptionMessage = PHP_VERSION_ID < 80000 ?
|
||||
'Invalid resource type' :
|
||||
'Stream must be a resource';
|
||||
$exceptionMessage = \PHP_VERSION_ID < 80000
|
||||
? 'Invalid resource type'
|
||||
: 'Stream must be a resource';
|
||||
$this->expectExceptionMessage($exceptionMessage);
|
||||
|
||||
$zipFile = new ZipFile();
|
||||
@@ -1194,13 +1189,12 @@ class ZipFileTest extends ZipTestCase
|
||||
*/
|
||||
public function testExtractFail3()
|
||||
{
|
||||
static::skipTestForWindows();
|
||||
static::skipTestForRootUser();
|
||||
|
||||
$this->expectException(ZipException::class);
|
||||
$this->expectExceptionMessage('Destination is not writable directory');
|
||||
|
||||
if (static::skipTestForRootUser()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$zipFile = new ZipFile();
|
||||
$zipFile['file'] = 'content';
|
||||
$zipFile->saveAsFile($this->outputFilename);
|
||||
@@ -1453,13 +1447,8 @@ class ZipFileTest extends ZipTestCase
|
||||
*/
|
||||
public function testAddFileCannotOpen()
|
||||
{
|
||||
if (static::skipTestForWindows()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (static::skipTestForRootUser()) {
|
||||
return;
|
||||
}
|
||||
static::skipTestForWindows();
|
||||
static::skipTestForRootUser();
|
||||
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
$this->expectExceptionMessage('is not readable');
|
||||
@@ -1801,13 +1790,8 @@ class ZipFileTest extends ZipTestCase
|
||||
*/
|
||||
public function testSaveAsFileNotWritable()
|
||||
{
|
||||
if (static::skipTestForWindows()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (static::skipTestForRootUser()) {
|
||||
return;
|
||||
}
|
||||
static::skipTestForWindows();
|
||||
static::skipTestForRootUser();
|
||||
|
||||
static::assertTrue(mkdir($this->outputDirname, 0444, true));
|
||||
static::assertTrue(chmod($this->outputDirname, 0444));
|
||||
|
@@ -192,32 +192,17 @@ abstract class ZipTestCase extends LegacyTestCase
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function skipTestForRootUser()
|
||||
{
|
||||
/** @noinspection PhpComposerExtensionStubsInspection */
|
||||
if (\extension_loaded('posix') && posix_getuid() === 0) {
|
||||
static::markTestSkipped('Skip the test for a user with root privileges');
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public static function skipTestForWindows()
|
||||
{
|
||||
if (\DIRECTORY_SEPARATOR === '\\') {
|
||||
static::markTestSkipped('Skip on Windows');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user