You are here

class ExecutableFinderTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/process/Tests/ExecutableFinderTest.php \Symfony\Component\Process\Tests\ExecutableFinderTest

@author Chris Smith <chris@cs278.org>

Hierarchy

  • class \Symfony\Component\Process\Tests\ExecutableFinderTest extends \Symfony\Component\Process\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of ExecutableFinderTest

File

vendor/symfony/process/Tests/ExecutableFinderTest.php, line 19

Namespace

Symfony\Component\Process\Tests
View source
class ExecutableFinderTest extends \PHPUnit_Framework_TestCase {
  private $path;
  protected function tearDown() {
    if ($this->path) {

      // Restore path if it was changed.
      putenv('PATH=' . $this->path);
    }
  }
  private function setPath($path) {
    $this->path = getenv('PATH');
    putenv('PATH=' . $path);
  }
  public function testFind() {
    if (!defined('PHP_BINARY')) {
      $this
        ->markTestSkipped('Requires the PHP_BINARY constant');
    }
    if (ini_get('open_basedir')) {
      $this
        ->markTestSkipped('Cannot test when open_basedir is set');
    }
    $this
      ->setPath(dirname(PHP_BINARY));
    $finder = new ExecutableFinder();
    $result = $finder
      ->find($this
      ->getPhpBinaryName());
    $this
      ->assertSamePath(PHP_BINARY, $result);
  }
  public function testFindWithDefault() {
    if (ini_get('open_basedir')) {
      $this
        ->markTestSkipped('Cannot test when open_basedir is set');
    }
    $expected = 'defaultValue';
    $this
      ->setPath('');
    $finder = new ExecutableFinder();
    $result = $finder
      ->find('foo', $expected);
    $this
      ->assertEquals($expected, $result);
  }
  public function testFindWithExtraDirs() {
    if (!defined('PHP_BINARY')) {
      $this
        ->markTestSkipped('Requires the PHP_BINARY constant');
    }
    if (ini_get('open_basedir')) {
      $this
        ->markTestSkipped('Cannot test when open_basedir is set');
    }
    $this
      ->setPath('');
    $extraDirs = array(
      dirname(PHP_BINARY),
    );
    $finder = new ExecutableFinder();
    $result = $finder
      ->find($this
      ->getPhpBinaryName(), null, $extraDirs);
    $this
      ->assertSamePath(PHP_BINARY, $result);
  }
  public function testFindWithOpenBaseDir() {
    if (!defined('PHP_BINARY')) {
      $this
        ->markTestSkipped('Requires the PHP_BINARY constant');
    }
    if ('\\' === DIRECTORY_SEPARATOR) {
      $this
        ->markTestSkipped('Cannot run test on windows');
    }
    if (ini_get('open_basedir')) {
      $this
        ->markTestSkipped('Cannot test when open_basedir is set');
    }
    $this
      ->iniSet('open_basedir', dirname(PHP_BINARY) . (!defined('HHVM_VERSION') ? PATH_SEPARATOR . '/' : ''));
    $finder = new ExecutableFinder();
    $result = $finder
      ->find($this
      ->getPhpBinaryName());
    $this
      ->assertSamePath(PHP_BINARY, $result);
  }
  public function testFindProcessInOpenBasedir() {
    if (ini_get('open_basedir')) {
      $this
        ->markTestSkipped('Cannot test when open_basedir is set');
    }
    if (!defined('PHP_BINARY')) {
      $this
        ->markTestSkipped('Requires the PHP_BINARY constant');
    }
    if ('\\' === DIRECTORY_SEPARATOR) {
      $this
        ->markTestSkipped('Cannot run test on windows');
    }
    $this
      ->setPath('');
    $this
      ->iniSet('open_basedir', PHP_BINARY . (!defined('HHVM_VERSION') ? PATH_SEPARATOR . '/' : ''));
    $finder = new ExecutableFinder();
    $result = $finder
      ->find($this
      ->getPhpBinaryName(), false);
    $this
      ->assertSamePath(PHP_BINARY, $result);
  }
  private function assertSamePath($expected, $tested) {
    if ('\\' === DIRECTORY_SEPARATOR) {
      $this
        ->assertEquals(strtolower($expected), strtolower($tested));
    }
    else {
      $this
        ->assertEquals($expected, $tested);
    }
  }
  private function getPhpBinaryName() {
    return basename(PHP_BINARY, '\\' === DIRECTORY_SEPARATOR ? '.exe' : '');
  }

}

Members