From 86cb7ae70fba8ed7d669358d79af766573d1ab64 Mon Sep 17 00:00:00 2001 From: mageekguy Date: Fri, 15 Jun 2012 13:57:47 +0200 Subject: [PATCH] Related to issue #49 again and again. --- classes/autoloader.php | 5 ---- classes/mock/stream.php | 10 ++++++- .../iterators/recursives/atoum/source.php | 4 +-- .../report/fields/runner/coverage/html.php | 28 +++++++++++-------- .../units/classes/scripts/phar/generator.php | 4 +-- 5 files changed, 30 insertions(+), 21 deletions(-) diff --git a/classes/autoloader.php b/classes/autoloader.php index 028ef50d1..b4d3c68da 100644 --- a/classes/autoloader.php +++ b/classes/autoloader.php @@ -10,11 +10,6 @@ class autoloader protected $directories = array(__NAMESPACE__ => array(__DIR__)); - public function __construct() - { - $this->addDirectory(__NAMESPACE__, directory . '/' . basename(__DIR__)); - } - public function register($prepend = false) { if (spl_autoload_register(array($this, 'requireClass'), true, $prepend) === false) diff --git a/classes/mock/stream.php b/classes/mock/stream.php index f2e5b810a..2836cf693 100644 --- a/classes/mock/stream.php +++ b/classes/mock/stream.php @@ -114,7 +114,15 @@ public static function getProtocol($stream) public static function cleanStreamName($stream) { - return (self::getAdapter()->constant('DIRECTORY_SEPARATOR') != '\\' ? $stream : str_replace('\\', '/', $stream)); + $directorySeparator = self::getAdapter()->constant('DIRECTORY_SEPARATOR'); + + if ($directorySeparator != '/') + { + $path = preg_replace('#^[^:]+://#', '', $stream); + $stream = substr($stream, 0, strlen($stream) - strlen($path)) . str_replace($directorySeparator, '/', $path); + } + + return $stream; } } diff --git a/tests/units/classes/iterators/recursives/atoum/source.php b/tests/units/classes/iterators/recursives/atoum/source.php index 46e9dbf0a..4949bfc15 100644 --- a/tests/units/classes/iterators/recursives/atoum/source.php +++ b/tests/units/classes/iterators/recursives/atoum/source.php @@ -86,7 +86,7 @@ public function testKey() ->and($sourceDirectoryController->readdir[2] = false) ->and($iterator = new iterators\recursives\atoum\source($sourceDirectory = 'atoum://sourceDirectory')) ->then - ->string($iterator->key())->isEqualTo('atoum://sourceDirectory/file') + ->string($iterator->key())->isEqualTo('atoum://sourceDirectory' . DIRECTORY_SEPARATOR . 'file') ->if($sourceDirectoryController->readdir[1] = '.file') ->and($sourceDirectoryController->readdir[2] = false) ->and($iterator = new iterators\recursives\atoum\source($sourceDirectory = 'atoum://sourceDirectory')) @@ -99,7 +99,7 @@ public function testKey() ->and($sourceDirectoryController->readdir[2] = false) ->and($iterator = new iterators\recursives\atoum\source($sourceDirectory = 'atoum://sourceDirectory', $pharDirectory = uniqid())) ->then - ->string($iterator->key())->isEqualTo($pharDirectory . '/file') + ->string($iterator->key())->isEqualTo($pharDirectory . DIRECTORY_SEPARATOR . 'file') ->if($sourceDirectoryController->readdir[1] = '.file') ->and($sourceDirectoryController->readdir[2] = false) ->and($iterator = new iterators\recursives\atoum\source($sourceDirectory = 'atoum://sourceDirectory', $pharDirectory = uniqid())) diff --git a/tests/units/classes/report/fields/runner/coverage/html.php b/tests/units/classes/report/fields/runner/coverage/html.php index 601ba608b..9cf4e86e9 100644 --- a/tests/units/classes/report/fields/runner/coverage/html.php +++ b/tests/units/classes/report/fields/runner/coverage/html.php @@ -230,15 +230,15 @@ public function testCleanDestinationDirectory() ->then ->object($field->cleanDestinationDirectory())->isIdenticalTo($field) ->adapter($adapter) - ->call('unlink')->withArguments(self::cleanPath('atoum://destinationDirectory/aDirectory/firstFile'))->once() - ->call('unlink')->withArguments(self::cleanPath('atoum://destinationDirectory/aDirectory/secondFile'))->once() - ->call('rmdir')->withArguments(self::cleanPath('atoum://destinationDirectory/aDirectory'))->once() - ->call('unlink')->withArguments(self::cleanPath('atoum://destinationDirectory/anOtherDirectory/anOtherFirstFile'))->once() - ->call('unlink')->withArguments(self::cleanPath('atoum://destinationDirectory/anOtherDirectory/anOtherSecondFile'))->once() - ->call('rmdir')->withArguments(self::cleanPath('atoum://destinationDirectory/anOtherDirectory'))->once() - ->call('unlink')->withArguments(self::cleanPath('atoum://destinationDirectory/aFile'))->once() - ->call('rmdir')->withArguments(self::cleanPath('atoum://destinationDirectory/emptyDirectory'))->once() - ->call('rmdir')->withArguments(self::cleanPath($destinationDirectoryPath))->never() + ->call('unlink')->withArguments(self::uniformizeStream('atoum://destinationDirectory/aDirectory/firstFile'))->once() + ->call('unlink')->withArguments(self::uniformizeStream('atoum://destinationDirectory/aDirectory/secondFile'))->once() + ->call('rmdir')->withArguments(self::uniformizeStream('atoum://destinationDirectory/aDirectory'))->once() + ->call('unlink')->withArguments(self::uniformizeStream('atoum://destinationDirectory/anOtherDirectory/anOtherFirstFile'))->once() + ->call('unlink')->withArguments(self::uniformizeStream('atoum://destinationDirectory/anOtherDirectory/anOtherSecondFile'))->once() + ->call('rmdir')->withArguments(self::uniformizeStream('atoum://destinationDirectory/anOtherDirectory'))->once() + ->call('unlink')->withArguments(self::uniformizeStream('atoum://destinationDirectory/aFile'))->once() + ->call('rmdir')->withArguments(self::uniformizeStream('atoum://destinationDirectory/emptyDirectory'))->once() + ->call('rmdir')->withArguments(self::uniformizeStream($destinationDirectoryPath))->never() ->if($field->getMockController()->getDestinationDirectoryIterator->throw = new \exception()) ->then ->object($field->cleanDestinationDirectory())->isIdenticalTo($field) @@ -573,9 +573,15 @@ public function test__toString() ; } - protected static function cleanPath($path) + protected static function uniformizeStream($stream) { - return (DIRECTORY_SEPARATOR == '/' ? $path : str_replace('/', '\\', $path)); + if (DIRECTORY_SEPARATOR != '/') + { + $path = preg_replace('#^[^:]+://#', '', $stream); + $stream = substr($stream, 0, strlen($stream) - strlen($path)) . str_replace('/', '\\', $path); + } + + return $stream; } } diff --git a/tests/units/classes/scripts/phar/generator.php b/tests/units/classes/scripts/phar/generator.php index ec75f1f05..a207c53ed 100644 --- a/tests/units/classes/scripts/phar/generator.php +++ b/tests/units/classes/scripts/phar/generator.php @@ -88,7 +88,7 @@ public function testSetOriginDirectory() ->then ->object($generator->setOriginDirectory('/'))->isIdenticalTo($generator) ->string($generator->getOriginDirectory())->isEqualTo('/') - ->object($generator->setOriginDirectory(($directory = uniqid()) . '/'))->isIdenticalTo($generator) + ->object($generator->setOriginDirectory(($directory = uniqid()) . DIRECTORY_SEPARATOR))->isIdenticalTo($generator) ->string($generator->getOriginDirectory())->isEqualTo($directory) ->if($generator->setDestinationDirectory(uniqid())) ->then @@ -137,7 +137,7 @@ public function testSetDestinationDirectory() ->string($generator->getDestinationDirectory())->isEqualTo('/') ->object($generator->setDestinationDirectory($directory = uniqid()))->isIdenticalTo($generator) ->string($generator->getDestinationDirectory())->isEqualTo($directory) - ->object($generator->setDestinationDirectory(($directory = uniqid()) . '/'))->isIdenticalTo($generator) + ->object($generator->setDestinationDirectory(($directory = uniqid()) . DIRECTORY_SEPARATOR))->isIdenticalTo($generator) ->string($generator->getDestinationDirectory())->isEqualTo($directory) ->if ($generator->setOriginDirectory(uniqid())) ->then