Skip to content

Commit 06cbc34

Browse files
Work in progress.
1 parent b1ebffc commit 06cbc34

File tree

2 files changed

+80
-2
lines changed

2 files changed

+80
-2
lines changed

PHP/CodeCoverage/Report/HTML/Renderer/File.php

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,8 @@ protected function renderItems(PHP_CodeCoverage_Report_Node_File $node)
149149
array(
150150
'itemClass' => 'coverDirectory',
151151
'name' => 'Total',
152-
'numClasses' => $node->getNumClasses(),
153-
'numTestedClasses' => $node->getNumTestedClasses(),
152+
'numClasses' => $node->getNumClasses() + $node->getNumTraits(),
153+
'numTestedClasses' => $node->getNumTestedClasses() + $node->getNumTestedTraits(),
154154
'numMethods' => $node->getNumMethods(),
155155
'numTestedMethods' => $node->getNumTestedMethods(),
156156
'linesExecutedPercent' => $node->getLineExecutedPercent(FALSE),
@@ -164,9 +164,50 @@ protected function renderItems(PHP_CodeCoverage_Report_Node_File $node)
164164
)
165165
);
166166

167+
$items .= $this->renderTraitOrClassItems($node->getTraits(), 'Traits');
168+
$items .= $this->renderTraitOrClassItems($node->getClasses(), 'Classes');
169+
$items .= $this->renderFunctionItems($node->getFunctions());
170+
167171
return $items;
168172
}
169173

174+
/**
175+
* @param array $items
176+
* @param string $title
177+
* @return string
178+
*/
179+
protected function renderTraitOrClassItems(array $items, $title)
180+
{
181+
if (empty($items)) {
182+
return '';
183+
}
184+
185+
$buffer = '';
186+
187+
foreach ($items as $name => $item) {
188+
}
189+
190+
return $buffer;
191+
}
192+
193+
/**
194+
* @param array $items
195+
* @return string
196+
*/
197+
protected function renderFunctionItems(array $items)
198+
{
199+
if (empty($items)) {
200+
return '';
201+
}
202+
203+
$buffer = '';
204+
205+
foreach ($items as $name => $item) {
206+
}
207+
208+
return $buffer;
209+
}
210+
170211
/**
171212
* @param PHP_CodeCoverage_Report_Node_File $node
172213
* @return string

PHP/CodeCoverage/Report/Node/File.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ class PHP_CodeCoverage_Report_Node_File extends PHP_CodeCoverage_Report_Node
102102
*/
103103
protected $linesOfCode = array();
104104

105+
/**
106+
* @var integer
107+
*/
108+
protected $numTestedTraits = 0;
109+
105110
/**
106111
* @var integer
107112
*/
@@ -465,6 +470,38 @@ protected function calculateStatistics()
465470
}
466471
}
467472

473+
foreach ($this->traits as $traitName => &$trait) {
474+
foreach ($trait['methods'] as &$method) {
475+
if ($method['executableLines'] > 0) {
476+
$method['coverage'] = ($method['executedLines'] /
477+
$method['executableLines']) * 100;
478+
} else {
479+
$method['coverage'] = 100;
480+
}
481+
482+
$method['crap'] = PHP_CodeCoverage_Util::crap(
483+
$method['ccn'], $method['coverage']
484+
);
485+
486+
$trait['ccn'] += $method['ccn'];
487+
}
488+
489+
if ($trait['executableLines'] > 0) {
490+
$trait['coverage'] = ($trait['executedLines'] /
491+
$trait['executableLines']) * 100;
492+
} else {
493+
$trait['coverage'] = 100;
494+
}
495+
496+
if ($trait['coverage'] == 100) {
497+
$this->numTestedClasses++;
498+
}
499+
500+
$trait['crap'] = PHP_CodeCoverage_Util::crap(
501+
$trait['ccn'], $trait['coverage']
502+
);
503+
}
504+
468505
foreach ($this->classes as $className => &$class) {
469506
foreach ($class['methods'] as &$method) {
470507
if ($method['executableLines'] > 0) {

0 commit comments

Comments
 (0)