modified AutoloadBuilder for atomic autoload.php write

This commit is contained in:
Anton Grebnev
2012-06-04 16:04:17 +04:00
parent 29a255776d
commit 359c712962
2 changed files with 46 additions and 19 deletions

View File

@ -75,7 +75,7 @@ class AutoloadBuilderTest extends PHPUnit_Framework_TestCase
public function testBuild()
{
$this->setConstants();
$builder = new AutoloadBuilder(self::$file, array(self::$path . '/' . self::$app . '/src', self::$path . '/' . self::$app . '/cache', self::$path . '/lib'));
$builder = new AutoloadBuilder(self::$file, array_keys(self::$inc_dirs));
$this->assertFileNotExists(self::$file);
$builder->build();
@ -92,18 +92,38 @@ class AutoloadBuilderTest extends PHPUnit_Framework_TestCase
/**
* @runInSeparateProcess
*/
public function testBuildWithExcluded()
{
$this->setConstants();
$builder = new AutoloadBuilder(self::$file, array_keys(self::$inc_dirs), array(self::$path . '/lib/core/app/'));
$this->assertFileNotExists(self::$file);
$builder->build();
$this->assertFileExists(self::$file);
$array = require self::$file;
$this->assertInternalType('array', $array);
$this->assertNotEmpty($array);
$this->assertArrayHasKey('AutoloadBuilder', $array);
$this->assertArrayNotHasKey('FrontController', $array);
$this->assertArrayNotHasKey('AjaxAction', $array);
}
/**
* @runInSeparateProcess
*/
public function testAccessDenied()
{
$this->setConstants();
$this->setExpectedException('PHPUnit_Framework_Error');
$this->assertFileNotExists(self::$file);
touch(self::$file);
$this->assertFileExists(self::$file);
chmod(self::$file, 0400);
$path = dirname(self::$file);
chmod($path, 0400);
$builder = new AutoloadBuilder(self::$file, array(self::$path . '/' . self::$app . '/src', self::$path . '/' . self::$app . '/cache', self::$path . '/lib'));
$this->setExpectedException('PHPUnit_Framework_Error', 'Permission denied');
$builder->build();
chmod(self::$file, 0777);
}