[Finder] Fix findertest readability

This commit is contained in:
1emming 2014-08-10 18:59:30 +02:00 committed by Fabien Potencier
parent b5d0501860
commit 8a47b62bd3

View File

@ -728,17 +728,30 @@ class FinderTest extends Iterator\RealIteratorTestCase
$finder->files()->in(self::$tmpDir); $finder->files()->in(self::$tmpDir);
// make 'foo' directory non-readable // make 'foo' directory non-readable
chmod(self::$tmpDir.DIRECTORY_SEPARATOR.'foo', 0333); $testDir = self::$tmpDir.DIRECTORY_SEPARATOR.'foo';
chmod($testDir, 0333);
try { if (false === $couldRead = is_readable($testDir)) {
$this->assertIterator($this->toAbsolute(array('foo bar', 'test.php', 'test.py')), $finder->getIterator()); try {
$this->fail('Finder should throw an exception when opening a non-readable directory.'); $this->assertIterator($this->toAbsolute(array('foo bar', 'test.php', 'test.py')), $finder->getIterator());
} catch (\Exception $e) { $this->fail('Finder should throw an exception when opening a non-readable directory.');
$this->assertInstanceOf('Symfony\\Component\\Finder\\Exception\\AccessDeniedException', $e); } catch (\Exception $e) {
$expectedExceptionClass = 'Symfony\\Component\\Finder\\Exception\\AccessDeniedException';
if ($e instanceof \PHPUnit_Framework_ExpectationFailedException) {
$this->fail(sprintf("Expected exception:\n%s\nGot:\n%s\nWith comparison failure:\n%s", $expectedExceptionClass, 'PHPUnit_Framework_ExpectationFailedException', $e->getComparisonFailure()->getExpectedAsString()));
}
$this->assertInstanceOf($expectedExceptionClass, $e);
}
} }
// restore original permissions // restore original permissions
chmod(self::$tmpDir.DIRECTORY_SEPARATOR.'foo', 0777); chmod($testDir, 0777);
clearstatcache($testDir);
if ($couldRead) {
$this->markTestSkipped('could read test files while test requires unreadable');
}
} }
/** /**
@ -754,12 +767,20 @@ class FinderTest extends Iterator\RealIteratorTestCase
$finder->files()->ignoreUnreadableDirs()->in(self::$tmpDir); $finder->files()->ignoreUnreadableDirs()->in(self::$tmpDir);
// make 'foo' directory non-readable // make 'foo' directory non-readable
chmod(self::$tmpDir.DIRECTORY_SEPARATOR.'foo', 0333); $testDir = self::$tmpDir.DIRECTORY_SEPARATOR.'foo';
chmod($testDir, 0333);
$this->assertIterator($this->toAbsolute(array('foo bar', 'test.php', 'test.py')), $finder->getIterator()); if (false === ($couldRead = is_readable($testDir))) {
$this->assertIterator($this->toAbsolute(array('foo bar', 'test.php', 'test.py')), $finder->getIterator());
}
// restore original permissions // restore original permissions
chmod(self::$tmpDir.DIRECTORY_SEPARATOR.'foo', 0777); chmod($testDir, 0777);
clearstatcache($testDir);
if ($couldRead) {
$this->markTestSkipped('could read test files while test requires unreadable');
}
} }
private function buildTestData(array $tests) private function buildTestData(array $tests)