diff --git a/PHP/CodeCoverage/Report/Factory.php b/PHP/CodeCoverage/Report/Factory.php index c2f8dc7da..3841482c8 100644 --- a/PHP/CodeCoverage/Report/Factory.php +++ b/PHP/CodeCoverage/Report/Factory.php @@ -229,6 +229,10 @@ protected function reducePaths(&$files) $max = count($paths); for ($i = 0; $i < $max; $i++) { + // strip phar:// prefixes + if (strpos($paths[$i], 'phar://') === 0) { + $paths[$i] = substr($paths[$i], 7); + } $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]); if (empty($paths[$i][0])) { diff --git a/Tests/PHP/CodeCoverage/Report/FactoryTest.php b/Tests/PHP/CodeCoverage/Report/FactoryTest.php index 7d7568bb6..94f2bf2c1 100644 --- a/Tests/PHP/CodeCoverage/Report/FactoryTest.php +++ b/Tests/PHP/CodeCoverage/Report/FactoryTest.php @@ -245,7 +245,20 @@ public function reducePathsProvider() array(), '.', array() - ) + ), + array( + array( + 'Money.php' => array(), + 'MoneyBag.php' => array(), + 'Cash.phar/Cash.php' => array(), + ), + '/home/sb/Money', + array( + '/home/sb/Money/Money.php' => array(), + '/home/sb/Money/MoneyBag.php' => array(), + 'phar:///home/sb/Money/Cash.phar/Cash.php' => array(), + ), + ), ); } }