Updating coverage report and tests to include hiding javascript.

This commit is contained in:
Mark Story 2010-05-09 22:15:20 -04:00
parent f084a82dfc
commit e8e2235cfa
2 changed files with 24 additions and 5 deletions

View file

@ -173,8 +173,8 @@ class HtmlCoverageReportTest extends CakeTestCase {
) )
); );
$result = $this->Coverage->generateDiff('myfile.php', $file, $coverage); $result = $this->Coverage->generateDiff('myfile.php', $file, $coverage);
$this->assertRegExp('/<h2>myfile\.php Code coverage\: \d+\.?\d*\%<\/h2>/', $result); $this->assertRegExp('/myfile\.php Code coverage\: \d+\.?\d*\%/', $result);
$this->assertRegExp('/<div class="code-coverage-results">/', $result); $this->assertRegExp('/<div class="code-coverage-results" id\="coverage\-myfile\.php"/', $result);
$this->assertRegExp('/<pre>/', $result); $this->assertRegExp('/<pre>/', $result);
foreach ($file as $i => $line) { foreach ($file as $i => $line) {
$this->assertTrue(strpos($line, $result) !== 0, 'Content is missing ' . $i); $this->assertTrue(strpos($line, $result) !== 0, 'Content is missing ' . $i);

View file

@ -84,7 +84,7 @@ class HtmlCoverageReport {
if (empty($coverageData)) { if (empty($coverageData)) {
return '<h3>No files to generate coverage for</h3>'; return '<h3>No files to generate coverage for</h3>';
} }
$output = ''; $output = $this->coverageScript();
foreach ($coverageData as $file => $coverageData) { foreach ($coverageData as $file => $coverageData) {
$fileData = file($file); $fileData = file($file);
$output .= $this->generateDiff($file, $fileData, $coverageData); $output .= $this->generateDiff($file, $fileData, $coverageData);
@ -197,6 +197,21 @@ class HtmlCoverageReport {
); );
} }
/**
* generate some javascript for the coverage report.
*
* @return void
*/
public function coverageScript() {
return <<<HTML
<script type="text/javascript">
function coverage_show_hide(selector) {
var element = document.getElementById(selector);
element.style.display = (element.style.display == 'none') ? '' : 'none';
}
</script>
HTML;
}
/** /**
* Generate an HTML snippet for coverage headers * Generate an HTML snippet for coverage headers
@ -206,8 +221,12 @@ class HtmlCoverageReport {
public function coverageHeader($filename, $percent) { public function coverageHeader($filename, $percent) {
$filename = basename($filename); $filename = basename($filename);
return <<<HTML return <<<HTML
<h2>$filename Code coverage: $percent%</h2> <h4>
<div class="code-coverage-results"> <a href="#coverage-$filename" onclick="coverage_show_hide('coverage-$filename');">
$filename Code coverage: $percent%
</a>
</h4>
<div class="code-coverage-results" id="coverage-$filename" style="display:none;">
<pre> <pre>
HTML; HTML;
} }