diff --git a/docs/en/configuring_project.md b/docs/en/configuring_project.md index 905efb8d..866f4a73 100644 --- a/docs/en/configuring_project.md +++ b/docs/en/configuring_project.md @@ -102,16 +102,16 @@ plugins. ```yml test: # Test stage config for all branches - php_unit: - allow_failures: 10 + php_cs_fixer: + allowed_warnings: -1 success: # Success stage config for all branches shell: ./notify branch-release: # Test config for release branch run-option: replace # This can be set to either before, after or replace test: - php_unit: - allow_failures: 0 + php_cs_fixer: + allowed_warnings: 0 branch-master: # Test config for release branch run-option: after # This can be set to either before, after or replace success: @@ -125,7 +125,7 @@ When you have configured a branch eg "stable" in the project settings in the UI. "branch-", in this case "branch-stable" to the `.php-censor.yml`. In this config, specify all stages and plugins you wish to run. -Also add a new config value `run-option`, that can heve 3 values: +Also add a new config value `run-option`, that can have 3 values: * `before` - will cause the branch specific plugins to run before the default ones. * `after` - will cause the branch specific plugins to run after the default ones. diff --git a/docs/en/plugins/php_unit.md b/docs/en/plugins/php_unit.md index 032e523d..4699a4cd 100644 --- a/docs/en/plugins/php_unit.md +++ b/docs/en/plugins/php_unit.md @@ -41,7 +41,7 @@ Troubleshooting --------------- If standard logging of PHP Censor is not enough, to get standard output from any command, including PHPUnit, edit -`BaseCommandExecutor::executeCommand()` to see what exactly is wrong +`CommandExecutor::executeCommand()` to see what exactly is wrong * Run `composer update` in phpunit plugin directory of PHP Censor to get all of its dependencies * If phpunit is inside of the project's composer.json, it might interfere with PHP Censor's phpunit installation * Make sure you have XDebug installed.`The Xdebug extension is not loaded. No code coverage will be generated.` diff --git a/src/PHPCensor/Builder.php b/src/PHPCensor/Builder.php index cf1d195c..ac073f71 100644 --- a/src/PHPCensor/Builder.php +++ b/src/PHPCensor/Builder.php @@ -109,7 +109,7 @@ class Builder implements LoggerAwareInterface $pluginFactory = $this->buildPluginFactory($build); $this->pluginExecutor = new Plugin\Util\Executor($pluginFactory, $this->buildLogger); - $executorClass = 'PHPCensor\Helper\UnixCommandExecutor'; + $executorClass = 'PHPCensor\Helper\CommandExecutor'; $this->commandExecutor = new $executorClass( $this->buildLogger, ROOT_DIR, @@ -291,14 +291,18 @@ class Builder implements LoggerAwareInterface /** * Find a binary required by a plugin. + * * @param string $binary - * @param bool $quiet + * @param bool $quiet Returns null instead of throwing an exception. + * @param string $priorityPath * * @return null|string + * + * @throws \Exception when no binary has been found and $quiet is false. */ - public function findBinary($binary, $quiet = false) + public function findBinary($binary, $quiet = false, $priorityPath = 'local') { - return $this->commandExecutor->findBinary($binary, $quiet); + return $this->commandExecutor->findBinary($binary, $quiet, $priorityPath); } /** diff --git a/src/PHPCensor/Helper/BaseCommandExecutor.php b/src/PHPCensor/Helper/CommandExecutor.php similarity index 65% rename from src/PHPCensor/Helper/BaseCommandExecutor.php rename to src/PHPCensor/Helper/CommandExecutor.php index 7e76c923..40de3b10 100644 --- a/src/PHPCensor/Helper/BaseCommandExecutor.php +++ b/src/PHPCensor/Helper/CommandExecutor.php @@ -9,7 +9,7 @@ use Psr\Log\LogLevel; /** * Handles running system commands with variables. */ -abstract class BaseCommandExecutor implements CommandExecutorInterface +class CommandExecutor implements CommandExecutorInterface { /** * @var BuildLogger @@ -33,12 +33,14 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface /** * The path which findBinary will look in. + * * @var string */ protected $rootDir; /** * Current build path + * * @var string */ protected $buildPath; @@ -124,7 +126,9 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface /** * Reads from array of streams as data becomes available. + * * @param array $descriptors + * * @return string[] data read from each descriptor */ private function readAlternating(array $descriptors) @@ -169,16 +173,69 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface } /** - * Find a binary required by a plugin - * + * @param string $composerBin * @param string $binary - * @param bool $quiet - * - * @throws Exception - * - * @return null|string + * + * @return false|string */ - public function findBinary($binary, $quiet = false) + protected function findBinaryLocal($composerBin, $binary) + { + if (is_dir($composerBin) && is_file($composerBin . '/' . $binary)) { + $this->logger->logDebug(sprintf('Found in %s (local): %s', $composerBin, $binary)); + + return $composerBin . '/' . $binary; + } + + return false; + } + + /** + * @param string $binary + * + * @return false|string + */ + protected function findBinaryGlobal($binary) + { + if (is_file($this->rootDir . 'vendor/bin/' . $binary)) { + $this->logger->logDebug(sprintf('Found in %s (global): %s', 'vendor/bin', $binary)); + + return $this->rootDir . 'vendor/bin/' . $binary; + } + + return false; + } + + /** + * Uses 'which' to find a system binary by name + * + * @param string $binary + * + * @return false|string + */ + protected function findBinarySystem($binary) + { + $tempBinary = trim(shell_exec('which ' . $binary)); + if (is_file($tempBinary)) { + $this->logger->logDebug(sprintf('Found in %s (system): %s', '', $binary)); + + return $tempBinary; + } + + return false; + } + + /** + * Find a binary required by a plugin. + * + * @param string $binary + * @param bool $quiet Returns null instead of throwing an exception. + * @param string $priorityPath + * + * @return null|string + * + * @throws \Exception when no binary has been found and $quiet is false. + */ + public function findBinary($binary, $quiet = false, $priorityPath = 'local') { $composerBin = $this->getComposerBinDir(realpath($this->buildPath)); @@ -189,29 +246,42 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface foreach ($binary as $bin) { $this->logger->logDebug(sprintf('Looking for binary: %s', $bin)); - if (is_dir($composerBin) && is_file($composerBin . DIRECTORY_SEPARATOR . $bin)) { - $this->logger->logDebug(sprintf('Found in %s: %s', $composerBin, $bin)); + if ('system' === $priorityPath) { + if ($binarySystem = $this->findBinarySystem($bin)) { + return $binarySystem; + } - return $composerBin . DIRECTORY_SEPARATOR . $bin; - } + if ($binaryLocal = $this->findBinaryLocal($composerBin, $bin)) { + return $binaryLocal; + } - if (is_file($this->rootDir . DIRECTORY_SEPARATOR . $bin)) { - $this->logger->logDebug(sprintf('Found in %s: %s', 'root', $bin)); + if ($binaryGlobal = $this->findBinaryGlobal($bin)) { + return $binaryGlobal; + } + } elseif ('global' === $priorityPath) { + if ($binaryGlobal = $this->findBinaryGlobal($bin)) { + return $binaryGlobal; + } - return $this->rootDir . DIRECTORY_SEPARATOR . $bin; - } + if ($binaryLocal = $this->findBinaryLocal($composerBin, $bin)) { + return $binaryLocal; + } - if (is_file($this->rootDir . 'vendor' . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . $bin)) { - $this->logger->logDebug(sprintf('Found in %s: %s', 'vendor/bin', $bin)); + if ($binarySystem = $this->findBinarySystem($bin)) { + return $binarySystem; + } + } else { + if ($binaryLocal = $this->findBinaryLocal($composerBin, $bin)) { + return $binaryLocal; + } - return $this->rootDir . 'vendor' . DIRECTORY_SEPARATOR . 'bin' . DIRECTORY_SEPARATOR . $bin; - } + if ($binaryGlobal = $this->findBinaryGlobal($bin)) { + return $binaryGlobal; + } - $findCmdResult = $this->findGlobalBinary($bin); - if (is_file($findCmdResult)) { - $this->logger->logDebug(sprintf('Found in %s: %s', '', $bin)); - - return $findCmdResult; + if ($binarySystem = $this->findBinarySystem($bin)) { + return $binarySystem; + } } } @@ -222,17 +292,12 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface throw new Exception(sprintf('Could not find %s', implode('/', $binary))); } - /** - * Find a binary which is installed globally on the system - * @param string $binary - * @return null|string - */ - abstract protected function findGlobalBinary($binary); - /** * Try to load the composer.json file in the building project * If the bin-dir is configured, return the full path to it + * * @param string $path Current build path + * * @return string|null */ public function getComposerBinDir($path) @@ -254,6 +319,7 @@ abstract class BaseCommandExecutor implements CommandExecutorInterface /** * Set the buildPath property. + * * @param string $path */ public function setBuildPath($path) diff --git a/src/PHPCensor/Helper/CommandExecutorInterface.php b/src/PHPCensor/Helper/CommandExecutorInterface.php index abb1b37a..1febf3d8 100644 --- a/src/PHPCensor/Helper/CommandExecutorInterface.php +++ b/src/PHPCensor/Helper/CommandExecutorInterface.php @@ -21,18 +21,20 @@ interface CommandExecutorInterface /** * Find a binary required by a plugin. - * + * * @param string $binary - * @param bool $quiet Returns null instead of throwing an execption. + * @param bool $quiet Returns null instead of throwing an exception. + * @param string $priorityPath * * @return null|string * * @throws \Exception when no binary has been found and $quiet is false. */ - public function findBinary($binary, $quiet = false); + public function findBinary($binary, $quiet = false, $priorityPath = 'local'); /** * Set the buildPath property. + * * @param string $path */ public function setBuildPath($path); diff --git a/src/PHPCensor/Helper/UnixCommandExecutor.php b/src/PHPCensor/Helper/UnixCommandExecutor.php deleted file mode 100644 index 0e256b46..00000000 --- a/src/PHPCensor/Helper/UnixCommandExecutor.php +++ /dev/null @@ -1,19 +0,0 @@ -build = $build; $this->options = $options; + if (!empty($options['priority_path']) && in_array($options['priority_path'], ['global', 'system'])) { + $this->priorityPath = $options['priority_path']; + } + $this->builder->logDebug('Plugin options: ' . json_encode($options)); } + /** + * Find a binary required by a plugin. + * + * @param string $binary + * @param bool $quiet Returns null instead of throwing an exception. + * + * @return null|string + * + * @throws \Exception when no binary has been found and $quiet is false. + */ + public function findBinary($binary, $quiet = false) + { + return $this->builder->findBinary($binary, $quiet, $this->priorityPath); + } + /** * @return Build */ diff --git a/src/PHPCensor/Plugin/Atoum.php b/src/PHPCensor/Plugin/Atoum.php index 07029a15..08bebeb3 100644 --- a/src/PHPCensor/Plugin/Atoum.php +++ b/src/PHPCensor/Plugin/Atoum.php @@ -49,7 +49,7 @@ class Atoum extends Plugin if (isset($options['executable'])) { $this->executable = $this->builder->buildPath . DIRECTORY_SEPARATOR.$options['executable']; } else { - $this->executable = $this->builder->findBinary('atoum'); + $this->executable = $this->findBinary('atoum'); } if (isset($options['args'])) { diff --git a/src/PHPCensor/Plugin/Behat.php b/src/PHPCensor/Plugin/Behat.php index ed5c15db..c47be480 100644 --- a/src/PHPCensor/Plugin/Behat.php +++ b/src/PHPCensor/Plugin/Behat.php @@ -37,7 +37,7 @@ class Behat extends Plugin if (isset($options['executable'])) { $this->executable = $options['executable']; } else { - $this->executable = $this->builder->findBinary('behat'); + $this->executable = $this->findBinary('behat'); } if (!empty($options['features'])) { diff --git a/src/PHPCensor/Plugin/Codeception.php b/src/PHPCensor/Plugin/Codeception.php index 5210f960..d5e8e1d4 100644 --- a/src/PHPCensor/Plugin/Codeception.php +++ b/src/PHPCensor/Plugin/Codeception.php @@ -114,7 +114,7 @@ class Codeception extends Plugin implements ZeroConfigPluginInterface */ protected function runConfigFile($configPath) { - $codeception = $this->builder->findBinary('codecept'); + $codeception = $this->findBinary('codecept'); if (!$codeception) { $this->builder->logFailure(sprintf('Could not find %s', 'codecept')); diff --git a/src/PHPCensor/Plugin/Composer.php b/src/PHPCensor/Plugin/Composer.php index bc8e81c7..56062b05 100644 --- a/src/PHPCensor/Plugin/Composer.php +++ b/src/PHPCensor/Plugin/Composer.php @@ -94,7 +94,7 @@ class Composer extends Plugin implements ZeroConfigPluginInterface */ public function execute() { - $composerLocation = $this->builder->findBinary(['composer', 'composer.phar']); + $composerLocation = $this->findBinary(['composer', 'composer.phar']); $cmd = $composerLocation . ' --no-ansi --no-interaction '; if ($this->preferDist) { diff --git a/src/PHPCensor/Plugin/Grunt.php b/src/PHPCensor/Plugin/Grunt.php index 95173f50..e5db5e24 100644 --- a/src/PHPCensor/Plugin/Grunt.php +++ b/src/PHPCensor/Plugin/Grunt.php @@ -37,7 +37,7 @@ class Grunt extends Plugin $path = $this->builder->buildPath; $this->directory = $path; $this->task = null; - $this->grunt = $this->builder->findBinary('grunt'); + $this->grunt = $this->findBinary('grunt'); $this->gruntfile = 'Gruntfile.js'; // Handle options: diff --git a/src/PHPCensor/Plugin/Gulp.php b/src/PHPCensor/Plugin/Gulp.php index bc0c37cf..6c28cea9 100644 --- a/src/PHPCensor/Plugin/Gulp.php +++ b/src/PHPCensor/Plugin/Gulp.php @@ -37,7 +37,7 @@ class Gulp extends Plugin $path = $this->builder->buildPath; $this->directory = $path; $this->task = null; - $this->gulp = $this->builder->findBinary('gulp'); + $this->gulp = $this->findBinary('gulp'); $this->gulpfile = 'gulpfile.js'; // Handle options: diff --git a/src/PHPCensor/Plugin/Lint.php b/src/PHPCensor/Plugin/Lint.php index 4c462d7b..9ef07967 100644 --- a/src/PHPCensor/Plugin/Lint.php +++ b/src/PHPCensor/Plugin/Lint.php @@ -57,7 +57,7 @@ class Lint extends Plugin $this->builder->quiet = true; $success = true; - $php = $this->builder->findBinary('php'); + $php = $this->findBinary('php'); foreach ($this->directories as $dir) { if (!$this->lintDirectory($php, $dir)) { diff --git a/src/PHPCensor/Plugin/Pdepend.php b/src/PHPCensor/Plugin/Pdepend.php index 02ee87a6..1b93588b 100644 --- a/src/PHPCensor/Plugin/Pdepend.php +++ b/src/PHPCensor/Plugin/Pdepend.php @@ -77,7 +77,7 @@ class Pdepend extends Plugin throw new \Exception(sprintf('The location %s is not writable or does not exist.', $this->location)); } - $pdepend = $this->builder->findBinary('pdepend'); + $pdepend = $this->findBinary('pdepend'); $cmd = $pdepend . ' --summary-xml="%s" --jdepend-chart="%s" --overview-pyramid="%s" %s "%s"'; diff --git a/src/PHPCensor/Plugin/Phing.php b/src/PHPCensor/Plugin/Phing.php index a1f761af..dc12dcee 100644 --- a/src/PHPCensor/Plugin/Phing.php +++ b/src/PHPCensor/Plugin/Phing.php @@ -70,7 +70,7 @@ class Phing extends Plugin */ public function execute() { - $phingExecutable = $this->builder->findBinary('phing'); + $phingExecutable = $this->findBinary('phing'); $cmd[] = $phingExecutable . ' -f ' . $this->getBuildFilePath(); diff --git a/src/PHPCensor/Plugin/PhpCodeSniffer.php b/src/PHPCensor/Plugin/PhpCodeSniffer.php index 64c93003..6828acd4 100644 --- a/src/PHPCensor/Plugin/PhpCodeSniffer.php +++ b/src/PHPCensor/Plugin/PhpCodeSniffer.php @@ -171,7 +171,7 @@ class PhpCodeSniffer extends Plugin implements ZeroConfigPluginInterface { list($ignore, $standard, $suffixes, $severity, $errorSeverity, $warningSeverity) = $this->getFlags(); - $phpcs = $this->builder->findBinary('phpcs'); + $phpcs = $this->findBinary('phpcs'); $this->builder->logExecOutput(false); diff --git a/src/PHPCensor/Plugin/PhpCpd.php b/src/PHPCensor/Plugin/PhpCpd.php index 0ba8c137..46cc052d 100644 --- a/src/PHPCensor/Plugin/PhpCpd.php +++ b/src/PHPCensor/Plugin/PhpCpd.php @@ -97,7 +97,7 @@ class PhpCpd extends Plugin implements ZeroConfigPluginInterface $ignore = $ignore . $filesToIgnore; } - $phpcpd = $this->builder->findBinary('phpcpd'); + $phpcpd = $this->findBinary('phpcpd'); $tmpFileName = tempnam('/tmp', 'phpcpd'); diff --git a/src/PHPCensor/Plugin/PhpCsFixer.php b/src/PHPCensor/Plugin/PhpCsFixer.php index 45789a4f..65047cd4 100644 --- a/src/PHPCensor/Plugin/PhpCsFixer.php +++ b/src/PHPCensor/Plugin/PhpCsFixer.php @@ -89,7 +89,7 @@ class PhpCsFixer extends Plugin $directory = '.'; } - $phpCsFixer = $this->builder->findBinary('php-cs-fixer'); + $phpCsFixer = $this->findBinary('php-cs-fixer'); $cmd = $phpCsFixer . ' fix ' . $directory . ' %s'; $success = $this->builder->executeCommand($cmd, $this->args); diff --git a/src/PHPCensor/Plugin/PhpDocblockChecker.php b/src/PHPCensor/Plugin/PhpDocblockChecker.php index 070f7d84..19640ac3 100644 --- a/src/PHPCensor/Plugin/PhpDocblockChecker.php +++ b/src/PHPCensor/Plugin/PhpDocblockChecker.php @@ -97,7 +97,7 @@ class PhpDocblockChecker extends Plugin implements ZeroConfigPluginInterface public function execute() { // Check that the binary exists: - $checker = $this->builder->findBinary('phpdoccheck'); + $checker = $this->findBinary('phpdoccheck'); // Build ignore string: $ignore = ''; diff --git a/src/PHPCensor/Plugin/PhpLoc.php b/src/PHPCensor/Plugin/PhpLoc.php index 4f9b1f96..597514a8 100644 --- a/src/PHPCensor/Plugin/PhpLoc.php +++ b/src/PHPCensor/Plugin/PhpLoc.php @@ -74,7 +74,7 @@ class PhpLoc extends Plugin implements ZeroConfigPluginInterface $ignore = implode('', $ignore); } - $phploc = $this->builder->findBinary('phploc'); + $phploc = $this->findBinary('phploc'); $success = $this->builder->executeCommand($phploc . ' %s "%s"', $ignore, $this->directory); $output = $this->builder->getLastOutput(); diff --git a/src/PHPCensor/Plugin/PhpMessDetector.php b/src/PHPCensor/Plugin/PhpMessDetector.php index 82754ac7..b7d57c61 100644 --- a/src/PHPCensor/Plugin/PhpMessDetector.php +++ b/src/PHPCensor/Plugin/PhpMessDetector.php @@ -103,7 +103,7 @@ class PhpMessDetector extends Plugin implements ZeroConfigPluginInterface return false; } - $phpmdBinaryPath = $this->builder->findBinary('phpmd'); + $phpmdBinaryPath = $this->findBinary('phpmd'); $this->executePhpMd($phpmdBinaryPath); diff --git a/src/PHPCensor/Plugin/PhpParallelLint.php b/src/PHPCensor/Plugin/PhpParallelLint.php index 158798ec..b961bd8d 100644 --- a/src/PHPCensor/Plugin/PhpParallelLint.php +++ b/src/PHPCensor/Plugin/PhpParallelLint.php @@ -94,7 +94,7 @@ class PhpParallelLint extends Plugin implements ZeroConfigPluginInterface { list($ignore) = $this->getFlags(); - $phplint = $this->builder->findBinary('parallel-lint'); + $phplint = $this->findBinary('parallel-lint'); $cmd = $phplint . ' -e %s' . ' %s "%s"'; $success = $this->builder->executeCommand( diff --git a/src/PHPCensor/Plugin/PhpSpec.php b/src/PHPCensor/Plugin/PhpSpec.php index 5f339287..97cafefb 100644 --- a/src/PHPCensor/Plugin/PhpSpec.php +++ b/src/PHPCensor/Plugin/PhpSpec.php @@ -28,7 +28,7 @@ class PhpSpec extends Plugin $curdir = getcwd(); chdir($this->builder->buildPath); - $phpspec = $this->builder->findBinary(['phpspec', 'phpspec.php']); + $phpspec = $this->findBinary(['phpspec', 'phpspec.php']); $success = $this->builder->executeCommand($phpspec . ' --format=junit --no-code-generation run'); $output = $this->builder->getLastOutput(); diff --git a/src/PHPCensor/Plugin/PhpUnit.php b/src/PHPCensor/Plugin/PhpUnit.php index a005d2ea..ad283284 100644 --- a/src/PHPCensor/Plugin/PhpUnit.php +++ b/src/PHPCensor/Plugin/PhpUnit.php @@ -119,7 +119,7 @@ class PhpUnit extends Plugin implements ZeroConfigPluginInterface $options->removeArgument('configuration'); $arguments = $this->builder->interpolate($options->buildArgumentString()); - $cmd = $this->builder->findBinary('phpunit') . ' %s "%s"'; + $cmd = $this->findBinary('phpunit') . ' %s "%s"'; $success = $this->builder->executeCommand($cmd, $arguments, $directory); $this->processResults($jsonFile); @@ -149,7 +149,7 @@ class PhpUnit extends Plugin implements ZeroConfigPluginInterface $options->addArgument('configuration', $buildPath . $configFile); $arguments = $this->builder->interpolate($options->buildArgumentString()); - $cmd = $this->builder->findBinary('phpunit') . ' %s %s'; + $cmd = $this->findBinary('phpunit') . ' %s %s'; $success = $this->builder->executeCommand($cmd, $arguments, $options->getTestsPath()); $this->processResults($jsonFile); diff --git a/src/PHPCensor/Plugin/Xmpp.php b/src/PHPCensor/Plugin/Xmpp.php index 7aa54bfe..93163673 100644 --- a/src/PHPCensor/Plugin/Xmpp.php +++ b/src/PHPCensor/Plugin/Xmpp.php @@ -128,7 +128,7 @@ class XMPP extends Plugin */ public function execute() { - $sendxmpp = $this->builder->findBinary('sendxmpp'); + $sendxmpp = $this->findBinary('sendxmpp'); /* * Without recipients we can't send notification diff --git a/tests/PHPCensor/Helper/CommandExecutorTest.php b/tests/PHPCensor/Helper/CommandExecutorTest.php index d9ecd166..19876952 100644 --- a/tests/PHPCensor/Helper/CommandExecutorTest.php +++ b/tests/PHPCensor/Helper/CommandExecutorTest.php @@ -2,12 +2,12 @@ namespace Tests\PHPCensor\Helper; -use PHPCensor\Helper\UnixCommandExecutor; +use PHPCensor\Helper\CommandExecutor; class CommandExecutorTest extends \PHPUnit_Framework_TestCase { /** - * @var UnixCommandExecutor + * @var CommandExecutor */ protected $testedExecutor; @@ -17,7 +17,7 @@ class CommandExecutorTest extends \PHPUnit_Framework_TestCase $mockBuildLogger = $this->prophesize('PHPCensor\Logging\BuildLogger'); - $class = 'PHPCensor\Helper\UnixCommandExecutor'; + $class = 'PHPCensor\Helper\CommandExecutor'; $this->testedExecutor = new $class($mockBuildLogger->reveal(), __DIR__); } @@ -67,13 +67,6 @@ EOD; $this->assertEquals($data, trim($this->testedExecutor->getLastError())); } - public function testFindBinary_ReturnsPathInSpecifiedRoot() - { - $thisFileName = "CommandExecutorTest.php"; - $returnValue = $this->testedExecutor->findBinary($thisFileName, true); - $this->assertEquals(__DIR__ . DIRECTORY_SEPARATOR . $thisFileName, $returnValue); - } - /** * @expectedException \Exception * @expectedMessageRegex WorldWidePeace