3 * This file is part of the PHP_CodeCoverage package.
5 * (c) Sebastian Bergmann <sebastian@phpunit.de>
7 * For the full copyright and license information, please view the LICENSE
8 * file that was distributed with this source code.
12 * Renders a PHP_CodeCoverage_Report_Node_Directory node.
14 * @since Class available since Release 1.1.0
16 class PHP_CodeCoverage_Report_HTML_Renderer_Directory extends PHP_CodeCoverage_Report_HTML_Renderer
19 * @param PHP_CodeCoverage_Report_Node_Directory $node
22 public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file)
24 $template = new Text_Template($this->templatePath . 'directory.html', '{{', '}}');
26 $this->setCommonTemplateVariables($template, $node);
28 $items = $this->renderItem($node, true);
30 foreach ($node->getDirectories() as $item) {
31 $items .= $this->renderItem($item);
34 foreach ($node->getFiles() as $item) {
35 $items .= $this->renderItem($item);
40 'id' => $node->getId(),
45 $template->renderTo($file);
49 * @param PHP_CodeCoverage_Report_Node $item
53 protected function renderItem(PHP_CodeCoverage_Report_Node $item, $total = false)
56 'numClasses' => $item->getNumClassesAndTraits(),
57 'numTestedClasses' => $item->getNumTestedClassesAndTraits(),
58 'numMethods' => $item->getNumMethods(),
59 'numTestedMethods' => $item->getNumTestedMethods(),
60 'linesExecutedPercent' => $item->getLineExecutedPercent(false),
61 'linesExecutedPercentAsString' => $item->getLineExecutedPercent(),
62 'numExecutedLines' => $item->getNumExecutedLines(),
63 'numExecutableLines' => $item->getNumExecutableLines(),
64 'testedMethodsPercent' => $item->getTestedMethodsPercent(false),
65 'testedMethodsPercentAsString' => $item->getTestedMethodsPercent(),
66 'testedClassesPercent' => $item->getTestedClassesAndTraitsPercent(false),
67 'testedClassesPercentAsString' => $item->getTestedClassesAndTraitsPercent()
71 $data['name'] = 'Total';
73 if ($item instanceof PHP_CodeCoverage_Report_Node_Directory) {
74 $data['name'] = sprintf(
75 '<a href="%s/index.html">%s</a>',
80 $data['icon'] = '<span class="glyphicon glyphicon-folder-open"></span> ';
82 $data['name'] = sprintf(
83 '<a href="%s.html">%s</a>',
88 $data['icon'] = '<span class="glyphicon glyphicon-file"></span> ';
92 return $this->renderItemTemplate(
93 new Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'),