1
0
mirror of https://github.com/Ne-Lexa/php-zip.git synced 2025-08-04 22:47:24 +02:00

fix test for Windows

issue #78
This commit is contained in:
Ne-Lexa
2021-05-16 23:20:34 +03:00
parent c3523992ed
commit 8954da9e32
4 changed files with 18 additions and 48 deletions

View File

@@ -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
{

View File

@@ -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));

View File

@@ -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));

View File

@@ -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;
}
}