2011-05-09 21:40:18 +01:00
< ? php
/*
* This file is part of the Symfony package .
*
* ( c ) Fabien Potencier < fabien @ symfony . com >
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Symfony\Tests\Component\Process ;
use Symfony\Component\Process\PhpExecutableFinder ;
/**
* @ author Robert Schönthal < seroscho @ googlemail . com >
*/
class PhpExecutableFinderTest extends \PHPUnit_Framework_TestCase
{
/**
* tests find () with the env var PHP_PATH
*/
public function testFindWithPHP_PATH ()
{
2011-12-20 19:16:11 +00:00
if ( defined ( 'PHP_BINARY' )) {
$this -> markTestSkipped ( 'The PHP binary is easily available as of PHP 5.4' );
}
2011-05-09 21:40:18 +01:00
$f = new PhpExecutableFinder ();
$current = $f -> find ();
2011-06-08 18:56:59 +01:00
2011-05-09 21:40:18 +01:00
//not executable PHP_PATH
putenv ( 'PHP_PATH=/not/executable/php' );
2011-05-09 22:21:57 +01:00
$this -> assertFalse ( $f -> find (), '::find() returns false for not executable php' );
2011-06-08 18:56:59 +01:00
2011-05-09 21:40:18 +01:00
//executable PHP_PATH
2011-06-08 18:56:59 +01:00
putenv ( 'PHP_PATH=' . $current );
2011-05-09 22:21:57 +01:00
$this -> assertEquals ( $f -> find (), $current , '::find() returns the executable php' );
2011-05-09 21:40:18 +01:00
}
/**
* tests find () with default executable
*/
public function testFindWithSuffix ()
{
2011-12-20 19:16:11 +00:00
if ( defined ( 'PHP_BINARY' )) {
$this -> markTestSkipped ( 'The PHP binary is easily available as of PHP 5.4' );
}
2011-05-09 21:40:18 +01:00
putenv ( 'PHP_PATH=' );
putenv ( 'PHP_PEAR_PHP_BIN=' );
$f = new PhpExecutableFinder ();
$current = $f -> find ();
2011-06-08 18:56:59 +01:00
2011-05-09 21:40:18 +01:00
//TODO maybe php executable is custom or even windows
2011-12-11 11:11:07 +00:00
if ( defined ( 'PHP_WINDOWS_VERSION_BUILD' )) {
$this -> assertTrue ( is_executable ( $current ));
2012-07-09 13:38:28 +01:00
$this -> assertTrue (( bool ) preg_match ( '/' . addSlashes ( DIRECTORY_SEPARATOR ) . 'php\.(exe|bat|cmd|com)$/i' , $current ), '::find() returns the executable php with suffixes' );
2011-05-22 15:57:37 +01:00
}
2011-05-09 21:40:18 +01:00
}
}