| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 | <?php declare(strict_types=1);/* * This file is part of sebastian/environment. * * (c) Sebastian Bergmann <sebastian@phpunit.de> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace SebastianBergmann\Environment;use PHPUnit\Framework\TestCase;/** * @covers \SebastianBergmann\Environment\Runtime */final class RuntimeTest extends TestCase{    /**     * @var \SebastianBergmann\Environment\Runtime     */    private $env;    protected function setUp(): void    {        $this->env = new Runtime;    }    /**     * @requires extension xdebug     */    public function testCanCollectCodeCoverageWhenXdebugExtensionIsEnabled(): void    {        $this->assertTrue($this->env->canCollectCodeCoverage());    }    /**     * @requires extension pcov     */    public function testCanCollectCodeCoverageWhenPcovExtensionIsEnabled(): void    {        $this->assertTrue($this->env->canCollectCodeCoverage());    }    public function testCanCollectCodeCoverageWhenRunningOnPhpdbg(): void    {        $this->markTestSkippedWhenNotRunningOnPhpdbg();        $this->assertTrue($this->env->canCollectCodeCoverage());    }    public function testBinaryCanBeRetrieved(): void    {        $this->assertNotEmpty($this->env->getBinary());    }    /**     * @requires PHP     */    public function testIsHhvmReturnsFalseWhenRunningOnPhp(): void    {        $this->assertFalse($this->env->isHHVM());    }    /**     * @requires PHP     */    public function testIsPhpReturnsTrueWhenRunningOnPhp(): void    {        $this->markTestSkippedWhenRunningOnPhpdbg();        $this->assertTrue($this->env->isPHP());    }    /**     * @requires extension pcov     */    public function testPCOVCanBeDetected(): void    {        $this->assertTrue($this->env->hasPCOV());    }    public function testPhpdbgCanBeDetected(): void    {        $this->markTestSkippedWhenNotRunningOnPhpdbg();        $this->assertTrue($this->env->hasPHPDBGCodeCoverage());    }    /**     * @requires extension xdebug     */    public function testXdebugCanBeDetected(): void    {        $this->markTestSkippedWhenRunningOnPhpdbg();        $this->assertTrue($this->env->hasXdebug());    }    public function testNameAndVersionCanBeRetrieved(): void    {        $this->assertNotEmpty($this->env->getNameWithVersion());    }    public function testGetNameReturnsPhpdbgWhenRunningOnPhpdbg(): void    {        $this->markTestSkippedWhenNotRunningOnPhpdbg();        $this->assertSame('PHPDBG', $this->env->getName());    }    /**     * @requires PHP     */    public function testGetNameReturnsPhpdbgWhenRunningOnPhp(): void    {        $this->markTestSkippedWhenRunningOnPhpdbg();        $this->assertSame('PHP', $this->env->getName());    }    public function testNameAndCodeCoverageDriverCanBeRetrieved(): void    {        $this->assertNotEmpty($this->env->getNameWithVersionAndCodeCoverageDriver());    }    /**     * @requires PHP     */    public function testGetVersionReturnsPhpVersionWhenRunningPhp(): void    {        $this->assertSame(\PHP_VERSION, $this->env->getVersion());    }    /**     * @requires PHP     */    public function testGetVendorUrlReturnsPhpDotNetWhenRunningPhp(): void    {        $this->assertSame('https://secure.php.net/', $this->env->getVendorUrl());    }    private function markTestSkippedWhenNotRunningOnPhpdbg(): void    {        if ($this->isRunningOnPhpdbg()) {            return;        }        $this->markTestSkipped('PHPDBG is required.');    }    private function markTestSkippedWhenRunningOnPhpdbg(): void    {        if (!$this->isRunningOnPhpdbg()) {            return;        }        $this->markTestSkipped('Cannot run on PHPDBG');    }    private function isRunningOnPhpdbg(): bool    {        return \PHP_SAPI === 'phpdbg';    }}
 |