diff --git a/src/Composer/XdebugHandler.php b/src/Composer/XdebugHandler.php index fa766122f..35581acf6 100644 --- a/src/Composer/XdebugHandler.php +++ b/src/Composer/XdebugHandler.php @@ -79,6 +79,11 @@ class XdebugHandler putenv('PHP_INI_SCAN_DIR'); } } + + // Clear version if the restart failed to disable xdebug + if ($this->loaded) { + putenv(self::ENV_VERSION); + } } } diff --git a/tests/Composer/Test/XdebugHandlerTest.php b/tests/Composer/Test/XdebugHandlerTest.php index 3dd1e9f53..addfe8da0 100644 --- a/tests/Composer/Test/XdebugHandlerTest.php +++ b/tests/Composer/Test/XdebugHandlerTest.php @@ -113,6 +113,12 @@ class XdebugHandlerTest extends \PHPUnit_Framework_TestCase $xdebug = new XdebugHandlerMock($loaded); $xdebug->check(); $this->assertEquals($xdebug->testVersion, getenv(XdebugHandlerMock::ENV_VERSION)); + + // Mimic successful restart + $loaded = false; + $xdebug = new XdebugHandlerMock($loaded); + $xdebug->check(); + $this->assertEquals($xdebug->testVersion, getenv(XdebugHandlerMock::ENV_VERSION)); } public function testEnvVersionWhenNotLoaded() @@ -124,6 +130,19 @@ class XdebugHandlerTest extends \PHPUnit_Framework_TestCase $this->assertEquals(false, getenv(XdebugHandlerMock::ENV_VERSION)); } + public function testEnvVersionWhenRestartFails() + { + $loaded = true; + + $xdebug = new XdebugHandlerMock($loaded); + $xdebug->check(); + + // Mimic failed restart + $xdebug = new XdebugHandlerMock($loaded); + $xdebug->check(); + $this->assertEquals(false, getenv(XdebugHandlerMock::ENV_VERSION)); + } + public static function setUpBeforeClass() { // Save current state