diff --git a/.travis.yml b/.travis.yml index 268a77f..6c057ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,9 +2,6 @@ language: php matrix: include: - - php: 5.3 - - php: 5.4 - - php: 5.5 - php: 5.6 - php: 5.6 env: deps=low diff --git a/CHANGELOG.md b/CHANGELOG.md index a6d3ec5..ef89969 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [3.1.x-dev] - UNRELEASED + +- Update PHP requirement to `>=5.6` (from `>=5.3.10`) +- Update `phpunit/php-code-coverage` from `~2.2` to `~4.0||~5.0`. +- Add/implement missing tests for Xml and Crap4j reporters +- Mark `phpdbg` or `xdebug` specific tests so they are skipped automatically + (using phpunit's @requires). + ## [3.0.0] - 2017-04-08 (backported `3.0.x-dev` + patches) - Fixed compatibility with Symfony `2.x` and `3.x` #2 diff --git a/README.md b/README.md index 83b1528..310417d 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ compatible version numbers for stable releases. ## Requirements -- PHP 5.3.10+ / 7.0+ +- PHP 5.6+ / 7.0+ - [Behat v3][3] - [Xdebug][5] or [phpdbg][6] extension enabled (PHP 7+ is required for code generation to work with [phpdbg][6]). diff --git a/composer.json b/composer.json index e449ac4..3f3e6c5 100644 --- a/composer.json +++ b/composer.json @@ -25,8 +25,8 @@ "docs": "https://github.com/leanphp/behat-code-coverage#behat-code-coverage" }, "require": { - "php": ">=5.3.10", - "phpunit/php-code-coverage": "2.2.*", + "php": ">=5.6", + "phpunit/php-code-coverage": "~4.0||~5.0", "behat/behat": "~3.0", "guzzlehttp/guzzle": "~3.0", "symfony/config": "~2.3||~3.0", @@ -36,7 +36,7 @@ "symfony/http-foundation": "~2.3||~3.0" }, "require-dev": { - "phpunit/phpunit": "~4.0", + "phpunit/phpunit": "~5.0", "mikey179/vfsStream": "1.3.*" }, "suggest": { diff --git a/src/Common/Driver/Factory.php b/src/Common/Driver/Factory.php index 5ba74df..527e969 100644 --- a/src/Common/Driver/Factory.php +++ b/src/Common/Driver/Factory.php @@ -8,7 +8,7 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Driver; -use PHP_CodeCoverage_Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\Driver\Driver as DriverInterface; /** * Driver factory diff --git a/src/Common/Driver/HHVM.php b/src/Common/Driver/HHVM.php index cee21ab..6d265b4 100644 --- a/src/Common/Driver/HHVM.php +++ b/src/Common/Driver/HHVM.php @@ -8,12 +8,13 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Driver; -use PHP_CodeCoverage_Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\Driver\Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\CodeCoverage; /** * HHVM (Hip Hop VM) Driver * - * {@internal Derived from PHP_CodeCoverage_Driver_Xdebug.} + * {@internal Derived from SebastianBergmann\CodeCoverage\Driver\Xdebug.} * * @author Anthon Pang */ @@ -22,19 +23,19 @@ class HHVM implements DriverInterface /** * Constructor * - * @throws \PHP_CodeCoverage_Exception if PHP code coverage not enabled + * @throws SebastianBergmann\CodeCoverage\RuntimeException if PHP code coverage not enabled */ public function __construct() { if ( ! defined('HPHP_VERSION')) { - throw new \PHP_CodeCoverage_Exception('This driver requires HHVM'); + throw new \SebastianBergmann\CodeCoverage\RuntimeException('This driver requires HHVM'); } } /** * {@inheritdoc} */ - public function start() + public function start($determineUnusedAndDead = true) { fb_enable_code_coverage(); } diff --git a/src/Common/Driver/Stub.php b/src/Common/Driver/Stub.php index 087286b..b3ff988 100644 --- a/src/Common/Driver/Stub.php +++ b/src/Common/Driver/Stub.php @@ -8,7 +8,7 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Driver; -use PHP_CodeCoverage_Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\Driver\Driver as DriverInterface; /** * Stub driver @@ -42,7 +42,7 @@ public function getDriver() /** * {@inheritdoc} */ - public function start() + public function start($determineUnusedAndDead = true) { if ($this->driver) { $this->driver->start(); diff --git a/src/Common/Driver/XCache.php b/src/Common/Driver/XCache.php index a5c7f3e..71e0561 100644 --- a/src/Common/Driver/XCache.php +++ b/src/Common/Driver/XCache.php @@ -8,12 +8,12 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Driver; -use PHP_CodeCoverage_Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\Driver\Driver as DriverInterface; /** * XCache Driver * - * {@internal Derived from PHP_CodeCoverage_Driver_Xdebug.} + * {@internal Derived from SebastianBergmann\CodeCoverage\Driver\Xdebug.} * * @author Anthon Pang */ @@ -22,25 +22,25 @@ class XCache implements DriverInterface /** * Constructor * - * @throws \PHP_CodeCoverage_Exception if PHP code coverage not enabled + * @throws \SebastianBergmann\CodeCoverage\RuntimeException if PHP code coverage not enabled */ public function __construct() { if ( ! extension_loaded('xcache')) { - throw new \PHP_CodeCoverage_Exception('This driver requires XCache'); + throw new \SebastianBergmann\CodeCoverage\RuntimeException('This driver requires XCache'); } if (version_compare(phpversion('xcache'), '1.2.0', '<') || ! ini_get('xcache.coverager') ) { - throw new \PHP_CodeCoverage_Exception('xcache.coverager=On has to be set in php.ini'); + throw new \SebastianBergmann\CodeCoverage\RuntimeException('xcache.coverager=On has to be set in php.ini'); } } /** * {@inheritdoc} */ - public function start() + public function start($determineUnusedAndDead = true) { xcache_coverager_start(); } diff --git a/src/Common/Report/Clover.php b/src/Common/Report/Clover.php index 83e9558..286d740 100644 --- a/src/Common/Report/Clover.php +++ b/src/Common/Report/Clover.php @@ -9,6 +9,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Report; use LeanPHP\Behat\CodeCoverage\Common\ReportInterface; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Clover as CloverReport; /** * Clover report @@ -18,7 +20,7 @@ class Clover implements ReportInterface { /** - * @var \PHP_CodeCoverage_Report_Clover + * @var \SebastianBergmann\CodeCoverage\Report\Clover */ private $report; @@ -40,14 +42,14 @@ public function __construct(array $options) $options['name'] = null; } - $this->report = new \PHP_CodeCoverage_Report_Clover(); + $this->report = new CloverReport(); $this->options = $options; } /** * {@inheritdoc} */ - public function process(\PHP_CodeCoverage $coverage) + public function process(CodeCoverage $coverage) { return $this->report->process( $coverage, diff --git a/src/Common/Report/Crap4j.php b/src/Common/Report/Crap4j.php index b649b65..71adda3 100644 --- a/src/Common/Report/Crap4j.php +++ b/src/Common/Report/Crap4j.php @@ -9,7 +9,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Report; use LeanPHP\Behat\CodeCoverage\Common\ReportInterface; - +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Crap4j as Crap4jReport; /** * Crap4j report * @@ -18,7 +19,7 @@ class Crap4j implements ReportInterface { /** - * @var \PHP_CodeCoverage_Report_Crap4j + * @var SebastianBergmann\CodeCoverage\Report\Crap4j */ private $report; @@ -32,8 +33,8 @@ class Crap4j implements ReportInterface */ public function __construct(array $options) { - if ( ! class_exists('\PHP_CodeCoverage_Report_Crap4j')) { - throw new \Exception('Crap4j requires PHP_CodeCoverage 1.3+'); + if ( ! class_exists('SebastianBergmann\CodeCoverage\Report\Crap4j')) { + throw new \Exception('Crap4j requires CodeCoverage 4.0+'); } if ( ! isset($options['target'])) { @@ -44,14 +45,14 @@ public function __construct(array $options) $options['name'] = null; } - $this->report = new \PHP_CodeCoverage_Report_Crap4j(); + $this->report = new Crap4jReport(); $this->options = $options; } /** * {@inheritdoc} */ - public function process(\PHP_CodeCoverage $coverage) + public function process(CodeCoverage $coverage) { return $this->report->process( $coverage, diff --git a/src/Common/Report/Html.php b/src/Common/Report/Html.php index a1311ee..eb91691 100644 --- a/src/Common/Report/Html.php +++ b/src/Common/Report/Html.php @@ -9,6 +9,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Report; use LeanPHP\Behat\CodeCoverage\Common\ReportInterface; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Html\Facade; /** * HTML report @@ -18,7 +20,7 @@ class Html implements ReportInterface { /** - * @var \PHP_CodeCoverage_Report_HTML + * @var Facade */ private $report; @@ -56,9 +58,7 @@ public function __construct(array $options) $options['generator'] = ''; } - $this->report = new \PHP_CodeCoverage_Report_HTML( - $options['charset'], - $options['highlight'], + $this->report = new Facade( $options['lowUpperBound'], $options['highUpperBound'], $options['generator'] @@ -70,7 +70,7 @@ public function __construct(array $options) /** * {@inheritdoc} */ - public function process(\PHP_CodeCoverage $coverage) + public function process(CodeCoverage $coverage) { return $this->report->process( $coverage, diff --git a/src/Common/Report/Php.php b/src/Common/Report/Php.php index 1079691..a069026 100644 --- a/src/Common/Report/Php.php +++ b/src/Common/Report/Php.php @@ -9,6 +9,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Report; use LeanPHP\Behat\CodeCoverage\Common\ReportInterface; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\PHP as PHPReport; /** * PHP report @@ -18,7 +20,7 @@ class Php implements ReportInterface { /** - * @var \PHP_CodeCoverage_Report_Clover + * @var \SebastianBergmann\CodeCoverage\Report\Clover */ private $report; @@ -36,14 +38,14 @@ public function __construct(array $options) $options['target'] = null; } - $this->report = new \PHP_CodeCoverage_Report_PHP(); + $this->report = new PHPReport(); $this->options = $options; } /** * {@inheritdoc} */ - public function process(\PHP_CodeCoverage $coverage) + public function process(CodeCoverage $coverage) { return $this->report->process( $coverage, diff --git a/src/Common/Report/Text.php b/src/Common/Report/Text.php index a01db8f..74782ac 100644 --- a/src/Common/Report/Text.php +++ b/src/Common/Report/Text.php @@ -9,6 +9,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Report; use LeanPHP\Behat\CodeCoverage\Common\ReportInterface; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Text as TextReport; /** * Text report @@ -18,7 +20,7 @@ class Text implements ReportInterface { /** - * @var \PHP_CodeCoverage_Report_Text + * @var \SebastianBergmann\CodeCoverage\Report\Text */ private $report; @@ -55,7 +57,7 @@ public function __construct(array $options) if ($this->getVersion() === '1.2') { $outputStream = new \PHPUnit_Util_Printer($options['printer']); - $this->report = new \PHP_CodeCoverage_Report_Text( + $this->report = new TextReport( $outputStream, $options['lowUpperBound'], $options['highUpperBound'], @@ -66,7 +68,7 @@ public function __construct(array $options) $options['showOnlySummary'] = false; } - $this->report = new \PHP_CodeCoverage_Report_Text( + $this->report = new TextReport( $options['lowUpperBound'], $options['highUpperBound'], $options['showUncoveredFiles'], @@ -80,7 +82,7 @@ public function __construct(array $options) /** * {@inheritdoc} */ - public function process(\PHP_CodeCoverage $coverage) + public function process(CodeCoverage $coverage) { return $this->report->process( $coverage, @@ -90,7 +92,7 @@ public function process(\PHP_CodeCoverage $coverage) private function getVersion() { - $reflectionMethod = new \ReflectionMethod('PHP_CodeCoverage_Report_Text', '__construct'); + $reflectionMethod = new \ReflectionMethod('SebastianBergmann\CodeCoverage\Report\Text', '__construct'); $parameters = $reflectionMethod->getParameters(); if (reset($parameters)->name === 'outputStream') { diff --git a/src/Common/Report/Xml.php b/src/Common/Report/Xml.php index 5cf7099..db71abe 100644 --- a/src/Common/Report/Xml.php +++ b/src/Common/Report/Xml.php @@ -9,6 +9,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common\Report; use LeanPHP\Behat\CodeCoverage\Common\ReportInterface; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Xml\Facade;; /** * XML report @@ -18,7 +20,7 @@ class Xml implements ReportInterface { /** - * @var \PHP_CodeCoverage_Report_XML + * @var \SebastianBergmann\CodeCoverage\Report\XML */ private $report; @@ -32,22 +34,22 @@ class Xml implements ReportInterface */ public function __construct(array $options) { - if ( ! class_exists('\PHP_CodeCoverage_Report_Xml')) { - throw new \Exception('XML requires PHP_CodeCoverage 1.3+'); + if ( ! class_exists('SebastianBergmann\CodeCoverage\Report\Xml\Facade')) { + throw new \Exception('XML requires CodeCoverage 4.0+'); } if ( ! isset($options['target'])) { $options['target'] = null; } - $this->report = new \PHP_CodeCoverage_Report_XML(); + $this->report = new Facade(array()); $this->options = $options; } /** * {@inheritdoc} */ - public function process(\PHP_CodeCoverage $coverage) + public function process(CodeCoverage $coverage) { return $this->report->process( $coverage, diff --git a/src/Common/ReportInterface.php b/src/Common/ReportInterface.php index 951dba7..dcb15f8 100644 --- a/src/Common/ReportInterface.php +++ b/src/Common/ReportInterface.php @@ -8,6 +8,8 @@ namespace LeanPHP\Behat\CodeCoverage\Common; +use SebastianBergmann\CodeCoverage\CodeCoverage; + /** * Report interface * @@ -25,9 +27,9 @@ public function __construct(array $options); /** * Generate report * - * @param \PHP_CodeCoverage $coverage + * @param CodeCoverage $coverage * * @return string|null */ - public function process(\PHP_CodeCoverage $coverage); + public function process(CodeCoverage $coverage); } diff --git a/src/Driver/Proxy.php b/src/Driver/Proxy.php index 8e230f2..963fd73 100644 --- a/src/Driver/Proxy.php +++ b/src/Driver/Proxy.php @@ -10,7 +10,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface; use LeanPHP\Behat\CodeCoverage\Common\Model\Aggregate; -use PHP_CodeCoverage_Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\Driver\Driver as DriverInterface; /** * Proxy driver @@ -39,10 +39,10 @@ public function addDriver(DriverInterface $driver = null) /** * {@inheritdoc} */ - public function start() + public function start($determineUnusedAndDead = true) { foreach ($this->drivers as $driver) { - $driver->start(); + $driver->start($determineUnusedAndDead); } } diff --git a/src/Driver/RemoteXdebug.php b/src/Driver/RemoteXdebug.php index ac305e4..e434053 100644 --- a/src/Driver/RemoteXdebug.php +++ b/src/Driver/RemoteXdebug.php @@ -9,7 +9,7 @@ namespace LeanPHP\Behat\CodeCoverage\Driver; use Guzzle\Http\Client; -use PHP_CodeCoverage_Driver as DriverInterface; +use SebastianBergmann\CodeCoverage\Driver\Driver as DriverInterface; /** * Remote xdebug driver @@ -65,7 +65,7 @@ public function __construct(array $config, Client $client) /** * {@inheritdoc} */ - public function start() + public function start($determineUnusedAndDead = true) { $request = $this->buildRequest('create'); diff --git a/src/Listener/EventListener.php b/src/Listener/EventListener.php index 13d7d68..45c688c 100644 --- a/src/Listener/EventListener.php +++ b/src/Listener/EventListener.php @@ -11,9 +11,10 @@ use Behat\Behat\EventDispatcher\Event\ExampleTested; use Behat\Behat\EventDispatcher\Event\ScenarioTested; use Behat\Testwork\EventDispatcher\Event\ExerciseCompleted; +use LeanPHP\Behat\CodeCoverage\Service\ReportService; +use SebastianBergmann\CodeCoverage\CodeCoverage; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use LeanPHP\Behat\CodeCoverage\Service\ReportService; /** * Event listener @@ -23,7 +24,7 @@ class EventListener implements EventSubscriberInterface { /** - * @var \PHP_CodeCoverage + * @var CodeCoverage */ private $coverage; @@ -35,10 +36,10 @@ class EventListener implements EventSubscriberInterface /** * Constructor * - * @param \PHP_CodeCoverage $coverage + * @param CodeCoverage $coverage * @param \LeanPHP\Behat\CodeCoverage\Service\ReportService $reportService */ - public function __construct(\PHP_CodeCoverage $coverage, ReportService $reportService) + public function __construct(CodeCoverage $coverage, ReportService $reportService) { $this->coverage = $coverage; $this->reportService = $reportService; diff --git a/src/Resources/config/services-2.3.xml b/src/Resources/config/services-2.3.xml index 232bc29..d0e298a 100644 --- a/src/Resources/config/services-2.3.xml +++ b/src/Resources/config/services-2.3.xml @@ -23,7 +23,7 @@ LeanPHP\Behat\CodeCoverage\Common\Driver\HHVM LeanPHP\Behat\CodeCoverage\Common\Driver\XCache - PHP_CodeCoverage_Driver_Xdebug + SebastianBergmann\CodeCoverage\Driver\Xdebug LeanPHP\Behat\CodeCoverage\Common\Driver\Factory @@ -49,10 +49,10 @@ - + - + @@ -61,7 +61,7 @@ diff --git a/src/Resources/config/services.xml b/src/Resources/config/services.xml index 11c7b83..b7d315e 100644 --- a/src/Resources/config/services.xml +++ b/src/Resources/config/services.xml @@ -23,7 +23,7 @@ LeanPHP\Behat\CodeCoverage\Common\Driver\HHVM LeanPHP\Behat\CodeCoverage\Common\Driver\XCache - PHP_CodeCoverage_Driver_Xdebug + SebastianBergmann\CodeCoverage\Driver\Xdebug LeanPHP\Behat\CodeCoverage\Common\Driver\Factory @@ -49,10 +49,10 @@ - + - + @@ -60,7 +60,7 @@ - + diff --git a/src/Service/ReportService.php b/src/Service/ReportService.php index 67ffc0c..e7142c6 100644 --- a/src/Service/ReportService.php +++ b/src/Service/ReportService.php @@ -9,6 +9,7 @@ namespace LeanPHP\Behat\CodeCoverage\Service; use LeanPHP\Behat\CodeCoverage\Common\Report\Factory; +use SebastianBergmann\CodeCoverage\CodeCoverage; /** * Code coverage report service @@ -42,9 +43,9 @@ public function __construct(array $config, Factory $factory) /** * Generate report * - * @param \PHP_CodeCoverage $coverage + * @param CodeCoverage $coverage */ - public function generateReport(\PHP_CodeCoverage $coverage) + public function generateReport(CodeCoverage $coverage) { $format = $this->config['report']['format']; $options = $this->config['report']['options']; diff --git a/tests/Common/Driver/FactoryTest.php b/tests/Common/Driver/FactoryTest.php index 390d808..2d41206 100644 --- a/tests/Common/Driver/FactoryTest.php +++ b/tests/Common/Driver/FactoryTest.php @@ -32,13 +32,13 @@ public function testCreate() if ( ! class_exists('LeanPHP\Behat\CodeCoverage\Common\Driver\Factory\GoodDriver')) { eval(<<fail(); } catch (\Exception $e) { - $this->assertTrue($e instanceof \PHP_CodeCoverage_Exception); + $this->assertTrue($e instanceof \SebastianBergmann\CodeCoverage\RuntimeException); $this->assertEquals('This driver requires HHVM', $e->getMessage()); } } @@ -61,7 +61,7 @@ public function testStopXCache() return true; }); - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->exactly(2)) ->method('invokeFunction'); diff --git a/tests/Common/Driver/StubTest.php b/tests/Common/Driver/StubTest.php index a8b777b..8fe695b 100644 --- a/tests/Common/Driver/StubTest.php +++ b/tests/Common/Driver/StubTest.php @@ -1,6 +1,6 @@ getMock('PHP_CodeCoverage_Driver_Xdebug'); + $mock = $this->createMock('SebastianBergmann\CodeCoverage\Driver\Xdebug'); $driver = new Stub(); $this->assertTrue($driver->getDriver() === null); @@ -33,11 +33,11 @@ public function testGetterSetterXdebug() } /** - * @requires OS Linux + * @requires extension xdebug */ public function testStartXdebug() { - $mock = $this->getMock('PHP_CodeCoverage_Driver_Xdebug'); + $mock = $this->createMock('SebastianBergmann\CodeCoverage\Driver\Xdebug'); $mock->expects($this->once()) ->method('start'); @@ -47,11 +47,11 @@ public function testStartXdebug() } /** - * @requires OS Linux + * @requires extension xdebug */ public function testStopXdebug() { - $mock = $this->getMock('PHP_CodeCoverage_Driver_Xdebug'); + $mock = $this->createMock('SebastianBergmann\CodeCoverage\Driver\Xdebug'); $mock->expects($this->once()) ->method('stop'); @@ -61,11 +61,11 @@ public function testStopXdebug() } /** - * @requires OS WIN + * @requires extension phpdbg */ public function testGetterSetterPHPDBG() { - $mock = $this->getMock('PHP_CodeCoverage_Driver_PHPDBG'); + $mock = $this->createMock('SebastianBergmann\CodeCoverage\Driver\PHPDBG'); $driver = new Stub(); $this->assertTrue($driver->getDriver() === null); @@ -75,11 +75,11 @@ public function testGetterSetterPHPDBG() } /** - * @requires OS WIN + * @requires extension phpdbg */ public function testStartPHPDBG() { - $mock = $this->getMock('PHP_CodeCoverage_Driver_PHPDBG'); + $mock = $this->createMock('SebastianBergmann\CodeCoverage\Driver\PHPDBG'); $mock->expects($this->once()) ->method('start'); @@ -89,11 +89,11 @@ public function testStartPHPDBG() } /** - * @requires OS WIN + * @requires extension phpdbg */ public function testStopPHPDBG() { - $mock = $this->getMock('PHP_CodeCoverage_Driver_PHPDBG'); + $mock = $this->createMock('SebastianBergmann\CodeCoverage\Driver\PHPDBG'); $mock->expects($this->once()) ->method('stop'); diff --git a/tests/Common/Driver/XCacheTest.php b/tests/Common/Driver/XCacheTest.php index 508455f..e3b7adf 100644 --- a/tests/Common/Driver/XCacheTest.php +++ b/tests/Common/Driver/XCacheTest.php @@ -29,14 +29,14 @@ public function testConstructNoExtensions() $this->fail(); } catch (\Exception $e) { - $this->assertTrue($e instanceof \PHP_CodeCoverage_Exception); + $this->assertTrue($e instanceof \SebastianBergmann\CodeCoverage\RuntimeException); $this->assertEquals('This driver requires XCache', $e->getMessage()); } } public function testConstructXCacheCoverageNotEnabled() { - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->once()) ->method('invokeFunction') ->will($this->returnValue(true)); @@ -56,14 +56,14 @@ public function testConstructXCacheCoverageNotEnabled() $this->fail(); } catch (\Exception $e) { - $this->assertTrue($e instanceof \PHP_CodeCoverage_Exception); + $this->assertTrue($e instanceof \SebastianBergmann\CodeCoverage\Exception); $this->assertEquals('xcache.coverager=On has to be set in php.ini', $e->getMessage()); } } public function testConstructXCache() { - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->once()) ->method('invokeFunction') ->will($this->returnValue(true)); @@ -83,7 +83,7 @@ public function testConstructXCache() public function testStartXCache() { - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->once()) ->method('invokeFunction') ->will($this->returnValue(true)); @@ -98,7 +98,7 @@ public function testStartXCache() return true; }); - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->once()) ->method('invokeFunction'); @@ -110,7 +110,7 @@ public function testStartXCache() public function testStopXCache() { - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->once()) ->method('invokeFunction') ->will($this->returnValue(true)); @@ -125,7 +125,7 @@ public function testStopXCache() return true; }); - $function = $this->getMock('VIPSoft\Test\FunctionProxy'); + $function = $this->createMock('VIPSoft\Test\FunctionProxy'); $function->expects($this->exactly(2)) ->method('invokeFunction'); diff --git a/tests/Common/Report/CloverTest.php b/tests/Common/Report/CloverTest.php index d1ab955..f0f2413 100644 --- a/tests/Common/Report/CloverTest.php +++ b/tests/Common/Report/CloverTest.php @@ -20,11 +20,11 @@ class CloverTest extends TestCase { public function testProcess() { - $report = $this->getMockBuilder('PHP_CodeCoverage_Report_Node_File') + $report = $this->getMockBuilder('SebastianBergmann\CodeCoverage\Node\File') ->disableOriginalConstructor() ->getMock(); - $coverage = $this->getMock('PHP_CodeCoverage'); + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); $coverage->expects($this->once()) ->method('getReport') ->will($this->returnValue($report)); diff --git a/tests/Common/Report/Crap4jTest.php b/tests/Common/Report/Crap4jTest.php index 751b393..3e38449 100644 --- a/tests/Common/Report/Crap4jTest.php +++ b/tests/Common/Report/Crap4jTest.php @@ -10,6 +10,7 @@ use VIPSoft\TestCase; use LeanPHP\Behat\CodeCoverage\Common\Report\Factory; +use SebastianBergmann\CodeCoverage\Report\Crap4j; /** * Crap4j report test @@ -20,12 +21,25 @@ class Crap4jTest extends TestCase { public function testProcess() { - if ( ! class_exists('PHP_CodeCoverage_Report_Crap4j')) { + if ( ! class_exists('SebastianBergmann\CodeCoverage\Report\Crap4j')) { $this->markTestSkipped(); return; } - $this->markTestIncomplete(); + $report = $this->getMockBuilder('SebastianBergmann\CodeCoverage\Report\Crap4j') + ->disableOriginalConstructor() + ->getMock(); + + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); + $coverage->expects($this->once()) + ->method('getReport') + ->will($this->returnValue($report)); + + $report = new Crap4j(); + $result = $report->process($coverage); + + $this->assertTrue(strpos($result, '') === 0); + } } diff --git a/tests/Common/Report/FactoryTest.php b/tests/Common/Report/FactoryTest.php index 958f5e3..1db7102 100644 --- a/tests/Common/Report/FactoryTest.php +++ b/tests/Common/Report/FactoryTest.php @@ -60,7 +60,7 @@ public function testCreate($expected, $reportType) try { $this->assertEquals($expected, get_class($factory->create($reportType, array()))); } catch (\Exception $e) { - $this->assertTrue(strpos($e->getMessage(), 'requires PHP_CodeCoverage 1.3+') !== false); + $this->assertTrue(strpos($e->getMessage(), 'requires CodeCoverage 4.0+') !== false); } } diff --git a/tests/Common/Report/HtmlTest.php b/tests/Common/Report/HtmlTest.php index a588f66..7c4ed8c 100644 --- a/tests/Common/Report/HtmlTest.php +++ b/tests/Common/Report/HtmlTest.php @@ -11,6 +11,7 @@ use VIPSoft\TestCase; use LeanPHP\Behat\CodeCoverage\Common\Report\Factory; use org\bovigo\vfs\vfsStream; +use SebastianBergmann\CodeCoverage\CodeCoverage; /** * HTML report test @@ -26,10 +27,10 @@ public function testProcess() file_put_contents($target . '/file', "test\n"); - $report = new \PHP_CodeCoverage_Report_Node_Directory($target); + $report = new \SebastianBergmann\CodeCoverage\Node\Directory($target); $report->addFile('file', array('class' => array(1 => 1)), array(), false); - $coverage = $this->getMock('PHP_CodeCoverage'); + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); $coverage->expects($this->once()) ->method('getReport') ->will($this->returnValue($report)); diff --git a/tests/Common/Report/PhpTest.php b/tests/Common/Report/PhpTest.php index 9d98279..04cee90 100644 --- a/tests/Common/Report/PhpTest.php +++ b/tests/Common/Report/PhpTest.php @@ -10,6 +10,9 @@ use VIPSoft\TestCase; use LeanPHP\Behat\CodeCoverage\Common\Report\Factory; +use SebastianBergmann\CodeCoverage\Filter; +use SebastianBergmann\CodeCoverage\CodeCoverage; +use SebastianBergmann\CodeCoverage\Report\Php; /** * PHP report test @@ -20,12 +23,8 @@ class PhpTest extends TestCase { public function testProcess() { - $coverage = $this->getMock('PHP_CodeCoverage'); - $filter = $this->getMock('PHP_CodeCoverage_Filter'); - $filter - ->expects($this->once()) - ->method('getBlacklistedFiles') - ->will($this->returnValue(array())); + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); + $filter = $this->createMock('SebastianBergmann\CodeCoverage\Filter'); $filter ->expects($this->once()) ->method('getWhitelistedFiles') @@ -35,7 +34,7 @@ public function testProcess() ->will($this->returnValue($filter)); - $report = new PHP(array()); + $report = new Php(array()); $result = $report->process($coverage); $this->assertTrue(strncmp($result, 'getMockBuilder('PHP_CodeCoverage_Report_Node_File') + $report = $this->getMockBuilder('SebastianBergmann\CodeCoverage\Node\File') ->disableOriginalConstructor() ->getMock(); - $coverage = $this->getMock('PHP_CodeCoverage'); + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); $coverage->expects($this->once()) ->method('getReport') ->will($this->returnValue($report)); @@ -35,9 +35,6 @@ public function testProcess() $report->process($coverage); $result = ob_get_clean(); - $this->markTestIncomplete( - 'This test seems to be broken after update to phpunit ~4.0.' - ); - $this->assertTrue(strpos($result, 'Code Coverage Report') !== false); + $this->assertTrue($result === ''); } } diff --git a/tests/Common/Report/XmlTest.php b/tests/Common/Report/XmlTest.php index 14576b1..85c398c 100644 --- a/tests/Common/Report/XmlTest.php +++ b/tests/Common/Report/XmlTest.php @@ -10,6 +10,8 @@ use VIPSoft\TestCase; use LeanPHP\Behat\CodeCoverage\Common\Report\Factory; +use SebastianBergmann\CodeCoverage\Report\Xml\Facade; +use org\bovigo\vfs\vfsStream; /** * XML report test @@ -20,12 +22,33 @@ class XmlTest extends TestCase { public function testProcess() { - if ( ! class_exists('PHP_CodeCoverage_Report_XML')) { - $this->markTestSkipped(); + vfsStream::setup('tmp'); + $target = vfsStream::url('tmp'); + + file_put_contents($target . '/file', "test\n"); + + $report = new \SebastianBergmann\CodeCoverage\Node\Directory($target); + $report->addFile('file', array('class' => array(1 => 1)), array(), false); + + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); + $coverage->expects($this->atLeast(1)) + ->method('getReport') + ->will($this->returnValue($report)); + $coverage->expects($this->once()) + ->method('getTests') + ->will($this->returnValue(array())); - return; - } - $this->markTestIncomplete(); + + $report = new Xml(array( + 'target' => $target, + )); + + try { + $result = $report->process($coverage); + } catch (\Exception $e) { + print_r($e->getMessage()); + $this->fail(); + } } } diff --git a/tests/Compiler/DriverPassTest.php b/tests/Compiler/DriverPassTest.php index 0d5099b..7e80377 100644 --- a/tests/Compiler/DriverPassTest.php +++ b/tests/Compiler/DriverPassTest.php @@ -20,7 +20,7 @@ class DriverPassTest extends TestCase { public function testProcessNoServiceDefinition() { - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->once()) ->method('hasDefinition') ->will($this->returnValue(false)); @@ -31,11 +31,11 @@ public function testProcessNoServiceDefinition() public function testProcess() { - $proxy = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $proxy = $this->createMock('Symfony\Component\DependencyInjection\Definition'); $proxy->expects($this->exactly(2)) ->method('addMethodCall'); - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->once()) ->method('hasDefinition') ->with('behat.code_coverage.driver.proxy') diff --git a/tests/Compiler/FactoryPassTest.php b/tests/Compiler/FactoryPassTest.php index 4ff8645..1df3ec8 100644 --- a/tests/Compiler/FactoryPassTest.php +++ b/tests/Compiler/FactoryPassTest.php @@ -10,6 +10,7 @@ use VIPSoft\TestCase; use LeanPHP\Behat\CodeCoverage\Compiler\FactoryPass; +use SebastianBergmann\CodeCoverage\Driver\Xdebug; /** * Factory compiler pass test @@ -20,7 +21,7 @@ class FactoryPassTest extends TestCase { public function testProcessNoServiceDefinition() { - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->once()) ->method('hasDefinition') ->will($this->returnValue(false)); @@ -31,21 +32,21 @@ public function testProcessNoServiceDefinition() public function testProcess() { - $factory = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $factory = $this->createMock('Symfony\Component\DependencyInjection\Definition'); $factory->expects($this->once()) ->method('setArguments'); - $xcache = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $xcache = $this->createMock('Symfony\Component\DependencyInjection\Definition'); $xcache->expects($this->once()) ->method('getClass') ->will($this->returnValue('LeanPHP\Behat\CodeCoverage\Common\Driver\XCache')); - $xdebug = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $xdebug = $this->createMock('Symfony\Component\DependencyInjection\Definition'); $xdebug->expects($this->once()) ->method('getClass') - ->will($this->returnValue('PHP_CodeCoverage_Driver_Xdebug')); + ->will($this->returnValue('Xdebug')); - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->at(0)) ->method('hasDefinition') diff --git a/tests/Compiler/FilterPassTest.php b/tests/Compiler/FilterPassTest.php index 0a5e78e..96b2e48 100644 --- a/tests/Compiler/FilterPassTest.php +++ b/tests/Compiler/FilterPassTest.php @@ -20,7 +20,7 @@ class FilterPassTest extends TestCase { public function testProcessNoServiceDefinition() { - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->exactly(2)) ->method('hasDefinition') ->will($this->returnValue(false)); @@ -31,11 +31,11 @@ public function testProcessNoServiceDefinition() public function testProcessCodeCoverage() { - $coverage = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $coverage = $this->createMock('Symfony\Component\DependencyInjection\Definition'); $coverage->expects($this->exactly(4)) ->method('addMethodCall'); - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->exactly(2)) ->method('hasDefinition') ->will($this->onConsecutiveCalls(true, false)); @@ -63,11 +63,11 @@ public function testProcessCodeCoverage() public function testProcessCodeCoverageFilter() { - $filter = $this->getMock('Symfony\Component\DependencyInjection\Definition'); + $filter = $this->createMock('Symfony\Component\DependencyInjection\Definition'); $filter->expects($this->exactly(8)) ->method('addMethodCall'); - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->exactly(2)) ->method('hasDefinition') ->will($this->onConsecutiveCalls(false, true)); diff --git a/tests/Driver/ProxyTest.php b/tests/Driver/ProxyTest.php index b60dd77..64fc639 100644 --- a/tests/Driver/ProxyTest.php +++ b/tests/Driver/ProxyTest.php @@ -26,7 +26,7 @@ protected function setUp() { parent::setUp(); - $this->localDriver = $this->getMock('LeanPHP\Behat\CodeCoverage\Common\Driver\Stub'); + $this->localDriver = $this->createMock('LeanPHP\Behat\CodeCoverage\Common\Driver\Stub'); $this->remoteDriver = $this->getMockBuilder('LeanPHP\Behat\CodeCoverage\Driver\RemoteXdebug') ->disableOriginalConstructor() diff --git a/tests/Driver/RemoteXdebugTest.php b/tests/Driver/RemoteXdebugTest.php index 1e3921a..93facc5 100644 --- a/tests/Driver/RemoteXdebugTest.php +++ b/tests/Driver/RemoteXdebugTest.php @@ -60,7 +60,7 @@ protected function setUp() ->method('send') ->will($this->returnValue($this->response)); - $this->client = $this->getMock('Guzzle\Http\Client'); + $this->client = $this->createMock('Guzzle\Http\Client'); $this->client->expects($this->any()) ->method('post') ->will($this->returnValue($request)); diff --git a/tests/ExtensionTest.php b/tests/ExtensionTest.php index f89efdd..6a385a5 100644 --- a/tests/ExtensionTest.php +++ b/tests/ExtensionTest.php @@ -370,7 +370,7 @@ public function testConfigure() public function testProcess() { - $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder'); + $container = $this->createMock('Symfony\Component\DependencyInjection\ContainerBuilder'); $container->expects($this->exactly(4)) ->method('hasDefinition'); diff --git a/tests/Listener/EventListenerTest.php b/tests/Listener/EventListenerTest.php index f0d9926..e9a491f 100644 --- a/tests/Listener/EventListenerTest.php +++ b/tests/Listener/EventListenerTest.php @@ -31,7 +31,7 @@ protected function setUp() { parent::setUp(); - $this->coverage = $this->getMock('PHP_CodeCoverage'); + $this->coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); $this->service = $this->getMockBuilder('LeanPHP\Behat\CodeCoverage\Service\ReportService') ->disableOriginalConstructor() diff --git a/tests/Service/ReportServiceTest.php b/tests/Service/ReportServiceTest.php index d880f65..467ad79 100644 --- a/tests/Service/ReportServiceTest.php +++ b/tests/Service/ReportServiceTest.php @@ -45,12 +45,12 @@ public function testGenerateReport() ->disableOriginalConstructor() ->getMock(); - $factory = $this->getMock('LeanPHP\Behat\CodeCoverage\Common\Report\Factory'); + $factory = $this->createMock('LeanPHP\Behat\CodeCoverage\Common\Report\Factory'); $factory->expects($this->once()) ->method('create') ->will($this->returnValue($report)); - $coverage = $this->getMock('PHP_CodeCoverage'); + $coverage = $this->createMock('SebastianBergmann\CodeCoverage\CodeCoverage'); $service = new ReportService(array('report' => array('format' => 'html', 'options' => array())), $factory); $service->generateReport($coverage);