Skip to content

Commit dbce9f1

Browse files
Refactor.
1 parent 72586da commit dbce9f1

File tree

2 files changed

+91
-73
lines changed

2 files changed

+91
-73
lines changed

PHP/CodeCoverage/Report/HTML/Renderer.php

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,74 @@ protected function getColorLevel($percent)
132132
return array($color, $level);
133133
}
134134

135+
/**
136+
* @param Text_Template $template
137+
* @param array $data
138+
* @return string
139+
*/
140+
protected function renderItemTemplate(Text_Template $template, array $data)
141+
{
142+
if ($data['numClasses'] > 0) {
143+
list($classesColor, $classesLevel) = $this->getColorLevel(
144+
$data['testedClassesPercent']
145+
);
146+
147+
$classesNumber = $data['numTestedClasses'] . ' / ' .
148+
$data['numClasses'];
149+
} else {
150+
$classesColor = 'snow';
151+
$classesLevel = 'None';
152+
$classesNumber = ' ';
153+
}
154+
155+
if ($data['numMethods'] > 0) {
156+
list($methodsColor, $methodsLevel) = $this->getColorLevel(
157+
$data['testedMethodsPercent']
158+
);
159+
160+
$methodsNumber = $data['numTestedMethods'] . ' / ' .
161+
$data['numMethods'];
162+
} else {
163+
$methodsColor = 'snow';
164+
$methodsLevel = 'None';
165+
$methodsNumber = ' ';
166+
}
167+
168+
list($linesColor, $linesLevel) = $this->getColorLevel(
169+
$data['linesExecutedPercent']
170+
);
171+
172+
$template->setVar(
173+
array(
174+
'itemClass' => $data['itemClass'],
175+
'icon' => isset($data['icon']) ? $data['icon'] : '',
176+
'crap' => isset($data['crap']) ? $data['crap'] : '',
177+
'name' => $data['name'],
178+
'lines_color' => $linesColor,
179+
'lines_executed_width' => $data['linesExecutedPercent'],
180+
'lines_not_executed_width' => 100 - $data['linesExecutedPercent'],
181+
'lines_executed_percent' => $data['linesExecutedPercentAsString'],
182+
'lines_level' => $linesLevel,
183+
'num_executed_lines' => $data['numExecutedLines'],
184+
'num_executable_lines' => $data['numExecutableLines'],
185+
'methods_color' => $methodsColor,
186+
'methods_tested_width' => $data['testedMethodsPercent'],
187+
'methods_not_tested_width' => 100 - $data['testedMethodsPercent'],
188+
'methods_tested_percent' => $data['testedMethodsPercentAsString'],
189+
'methods_level' => $methodsLevel,
190+
'methods_number' => $methodsNumber,
191+
'classes_color' => $classesColor,
192+
'classes_tested_width' => $data['testedClassesPercent'],
193+
'classes_not_tested_width' => 100 - $data['testedClassesPercent'],
194+
'classes_tested_percent' => $data['testedClassesPercentAsString'],
195+
'classes_level' => $classesLevel,
196+
'classes_number' => $classesNumber
197+
)
198+
);
199+
200+
return $template->render();
201+
}
202+
135203
/**
136204
* @param Text_Template $template
137205
* @param string $title

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

Lines changed: 23 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -99,93 +99,43 @@ public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file, $tit
9999
*/
100100
protected function renderItem(PHP_CodeCoverage_Report_Node $item, $total = FALSE)
101101
{
102-
$template = new Text_Template(
103-
$this->templatePath . 'directory_item.html'
102+
$data = array(
103+
'numClasses' => $item->getNumClasses(),
104+
'numTestedClasses' => $item->getNumTestedClasses(),
105+
'numMethods' => $item->getNumMethods(),
106+
'numTestedMethods' => $item->getNumTestedMethods(),
107+
'linesExecutedPercent' => $item->getLineExecutedPercent(FALSE),
108+
'linesExecutedPercentAsString' => $item->getLineExecutedPercent(),
109+
'numExecutedLines' => $item->getNumExecutedLines(),
110+
'numExecutableLines' => $item->getNumExecutableLines(),
111+
'testedMethodsPercent' => $item->getTestedMethodsPercent(FALSE),
112+
'testedMethodsPercentAsString' => $item->getTestedMethodsPercent(),
113+
'testedClassesPercent' => $item->getTestedClassesPercent(FALSE),
114+
'testedClassesPercentAsString' => $item->getTestedClassesPercent()
104115
);
105116

106117
if ($total) {
107-
$icon = '';
108-
$itemClass = 'coverDirectory';
109-
$name = 'Total';
118+
$data['itemClass'] = 'coverDirectory';
119+
$data['name'] = 'Total';
110120
} else {
111-
$name = sprintf(
121+
$data['name'] = sprintf(
112122
'<a href="%s.html">%s</a>',
113123
$item->getId(),
114124
$item->getName()
115125
);
116126

117127
if ($item instanceof PHP_CodeCoverage_Report_Node_Directory) {
118-
$icon = '<img alt="directory" src="directory.png"/> ';
119-
$itemClass = 'coverDirectory';
128+
$data['icon'] = '<img alt="directory" src="directory.png"/> ';
129+
$data['itemClass'] = 'coverDirectory';
120130
} else {
121-
$icon = '<img alt="file" src="file.png"/> ';
122-
$itemClass = 'coverFile';
131+
$data['icon'] = '<img alt="file" src="file.png"/> ';
132+
$data['itemClass'] = 'coverFile';
123133
}
124134
}
125135

126-
$numClasses = $item->getNumClasses();
127-
$testedClassesPercent = floor($item->getTestedClassesPercent(FALSE));
128-
129-
if ($numClasses > 0) {
130-
list($classesColor, $classesLevel) = $this->getColorLevel(
131-
$testedClassesPercent
132-
);
133-
134-
$classesNumber = $item->getNumTestedClasses() . ' / ' . $numClasses;
135-
} else {
136-
$classesColor = 'snow';
137-
$classesLevel = 'None';
138-
$classesNumber = '&nbsp;';
139-
}
140-
141-
$numMethods = $item->getNumMethods();
142-
$testedMethodsPercent = floor($item->getTestedMethodsPercent(FALSE));
143-
144-
if ($numMethods > 0) {
145-
list($methodsColor, $methodsLevel) = $this->getColorLevel(
146-
$testedMethodsPercent
147-
);
148-
149-
$methodsNumber = $item->getNumTestedMethods() . ' / ' . $numMethods;
150-
} else {
151-
$methodsColor = 'snow';
152-
$methodsLevel = 'None';
153-
$methodsNumber = '&nbsp;';
154-
}
155-
156-
$linesExecutedPercent = floor($item->getLineExecutedPercent(FALSE));
157-
158-
list($linesColor, $linesLevel) = $this->getColorLevel(
159-
$linesExecutedPercent
136+
return $this->renderItemTemplate(
137+
new Text_Template($this->templatePath . 'directory_item.html'),
138+
$data
160139
);
161-
162-
$template->setVar(
163-
array(
164-
'itemClass' => $itemClass,
165-
'icon' => $icon,
166-
'name' => $name,
167-
'lines_color' => $linesColor,
168-
'lines_executed_width' => $linesExecutedPercent,
169-
'lines_not_executed_width' => 100 - $linesExecutedPercent,
170-
'lines_executed_percent' => $item->getLineExecutedPercent(),
171-
'lines_level' => $linesLevel,
172-
'num_executed_lines' => $item->getNumExecutedLines(),
173-
'num_executable_lines' => $item->getNumExecutableLines(),
174-
'methods_color' => $methodsColor,
175-
'methods_tested_width' => $testedMethodsPercent,
176-
'methods_not_tested_width' => 100 - $testedMethodsPercent,
177-
'methods_tested_percent' => $item->getTestedMethodsPercent(),
178-
'methods_level' => $methodsLevel,
179-
'methods_number' => $methodsNumber,
180-
'classes_color' => $classesColor,
181-
'classes_tested_width' => $testedClassesPercent,
182-
'classes_not_tested_width' => 100 - $testedClassesPercent,
183-
'classes_tested_percent' => $item->getTestedClassesPercent(),
184-
'classes_level' => $classesLevel,
185-
'classes_number' => $classesNumber
186-
)
187-
);
188-
189-
return $template->render();
190140
}
191141
}

0 commit comments

Comments
 (0)