Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 23 additions & 4 deletions src/CodeCoverage/Report/HTML.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,18 +76,31 @@ class PHP_CodeCoverage_Report_HTML
*/
private $highLowerBound;

/**
* @var string
*/
private $absoluteRoot;
/**
* @var string
*/
private $projectPrefix;

/**
* Constructor.
*
* @param integer $lowUpperBound
* @param integer $highLowerBound
* @param string $generator
* @param string $absoluteRoot Optional: root path of the sources under analysis
* @param string $projectPrefix Optional: name of project, to display as replacement for absoluteRoot
*/
public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '')
public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '', $absoluteRoot = null, $projectPrefix = null)
{
$this->generator = $generator;
$this->highLowerBound = $highLowerBound;
$this->lowUpperBound = $lowUpperBound;
$this->absoluteRoot = $absoluteRoot;
$this->projectPrefix = $projectPrefix;

$this->templatePath = sprintf(
'%s%sHTML%sRenderer%sTemplate%s',
Expand Down Expand Up @@ -121,23 +134,29 @@ public function process(PHP_CodeCoverage $coverage, $target)
$this->generator,
$date,
$this->lowUpperBound,
$this->highLowerBound
$this->highLowerBound,
$this->absoluteRoot,
$this->projectPrefix
);

$directory = new PHP_CodeCoverage_Report_HTML_Renderer_Directory(
$this->templatePath,
$this->generator,
$date,
$this->lowUpperBound,
$this->highLowerBound
$this->highLowerBound,
$this->absoluteRoot,
$this->projectPrefix
);

$file = new PHP_CodeCoverage_Report_HTML_Renderer_File(
$this->templatePath,
$this->generator,
$date,
$this->lowUpperBound,
$this->highLowerBound
$this->highLowerBound,
$this->absoluteRoot,
$this->projectPrefix
);

$directory->render($report, $target . 'index.html');
Expand Down
38 changes: 36 additions & 2 deletions src/CodeCoverage/Report/HTML/Renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@ abstract class PHP_CodeCoverage_Report_HTML_Renderer
*/
protected $version;

/**
* @var string
*/
protected $absoluteRoot;

/**
* @var string
*/
protected $projectPrefix;

/**
* Constructor.
*
Expand All @@ -96,8 +106,10 @@ abstract class PHP_CodeCoverage_Report_HTML_Renderer
* @param string $date
* @param integer $lowUpperBound
* @param integer $highLowerBound
* @param string $absoluteRoot Optional: root path of the sources under analysis
* @param string $projectPrefix Optional: name of project, to display as replacement for absoluteRoot
*/
public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound)
public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound, $absoluteRoot = null, $projectPrefix = null)
{
$version = new SebastianBergmann\Version('3.0', __DIR__);

Expand All @@ -107,6 +119,8 @@ public function __construct($templatePath, $generator, $date, $lowUpperBound, $h
$this->lowUpperBound = $lowUpperBound;
$this->highLowerBound = $highLowerBound;
$this->version = $version->getVersion();
$this->absoluteRoot = $absoluteRoot;
$this->projectPrefix = $projectPrefix;
}

/**
Expand Down Expand Up @@ -251,7 +265,7 @@ protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node)
{
$buffer = sprintf(
' <li class="active">%s</li>' . "\n",
$node->getName()
$this->stripProjectPrefixFromNodeName($node)
);

if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) {
Expand All @@ -261,6 +275,26 @@ protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node)
return $buffer;
}

/**
* An evolved version of PHP_CodeCoverage_Report_Node::getName(), which replaces
* the optional absoluteRoot prefix in the node's full path, with specified
* project name.
* @param PHP_CodeCoverage_Report_Node $node
* @return string
*/
protected function stripProjectPrefixFromNodeName(PHP_CodeCoverage_Report_Node $node)
{
if ($this->absoluteRoot) {
return preg_replace(
'#^' . $this->absoluteRoot . '#',
$this->projectPrefix,
$node->getName());
}
else
return $node->getName();
}


/**
* @param PHP_CodeCoverage_Report_Node $node
* @param $pathToRoot
Expand Down
4 changes: 3 additions & 1 deletion src/CodeCoverage/Report/HTML/Renderer/Dashboard.php
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,9 @@ protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node)
' <li><a href="%s.html">%s</a></li>' . "\n" .
' <li class="active">(Dashboard)</li>' . "\n",
$node->getId(),
$node->getName()
//Do not always print the full absolute path of $node here:
//optionally replace prefix
$this->stripProjectPrefixFromNodeName($node)
);
}
}
8 changes: 6 additions & 2 deletions src/CodeCoverage/Report/HTML/Renderer/File.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,15 +86,19 @@ class PHP_CodeCoverage_Report_HTML_Renderer_File extends PHP_CodeCoverage_Report
* @param string $date
* @param integer $lowUpperBound
* @param integer $highLowerBound
* @param string $absoluteRoot Optional: see parent
* @param string $projectPrefix Optional: see parent
*/
public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound)
public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound, $absoluteRoot = null, $projectPrefix = null)
{
parent::__construct(
$templatePath,
$generator,
$date,
$lowUpperBound,
$highLowerBound
$highLowerBound,
$absoluteRoot,
$projectPrefix
);
}

Expand Down