/** * @return array */ public function getPathAsArray() { if ($this->pathArray === NULL) { if ($this->parent === NULL) { $this->pathArray = array(); } else { $this->pathArray = $this->parent->getPathAsArray(); } $this->pathArray[] = $this; } return $this->pathArray; }
/** * @param PHP_CodeCoverage_Report_Node $item * @param boolean $total * @return string */ protected function renderItem(PHP_CodeCoverage_Report_Node $item, $total = false) { $data = array('numClasses' => $item->getNumClassesAndTraits(), 'numTestedClasses' => $item->getNumTestedClassesAndTraits(), 'numMethods' => $item->getNumMethods(), 'numTestedMethods' => $item->getNumTestedMethods(), 'linesExecutedPercent' => $item->getLineExecutedPercent(false), 'linesExecutedPercentAsString' => $item->getLineExecutedPercent(), 'numExecutedLines' => $item->getNumExecutedLines(), 'numExecutableLines' => $item->getNumExecutableLines(), 'testedMethodsPercent' => $item->getTestedMethodsPercent(false), 'testedMethodsPercentAsString' => $item->getTestedMethodsPercent(), 'testedClassesPercent' => $item->getTestedClassesAndTraitsPercent(false), 'testedClassesPercentAsString' => $item->getTestedClassesAndTraitsPercent()); if ($total) { $data['name'] = 'Total'; } else { if ($item instanceof PHP_CodeCoverage_Report_Node_Directory) { $data['name'] = sprintf('<a href="%s/index.html">%s</a>', $item->getName(), $item->getName()); $data['icon'] = '<span class="glyphicon glyphicon-folder-open"></span> '; } else { $data['name'] = sprintf('<a href="%s.html">%s</a>', $item->getName(), $item->getName()); $data['icon'] = '<span class="glyphicon glyphicon-file"></span> '; } } return $this->renderItemTemplate(new Text_Template($this->templatePath . 'directory_item.html', '{{', '}}'), $data); }
protected function getPathToRoot(PHP_CodeCoverage_Report_Node $node) { $id = $node->getId(); $depth = substr_count($id, '/'); if ($id != 'index' && $node instanceof PHP_CodeCoverage_Report_Node_Directory) { $depth++; } return str_repeat('../', $depth); }
protected function getBreadcrumbs(PHP_CodeCoverage_Report_Node $node) { $breadcrumbs = ''; $path = $node->getPathAsArray(); foreach ($path as $step) { if ($step !== $node) { $breadcrumbs .= sprintf(' <li><a href="%s.html">%s</a> <span class="divider">/</span></li>' . "\n", $step->getId(), $step->getName()); } else { $breadcrumbs .= sprintf(' <li class="active">%s</li>' . "\n", $step->getName()); if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) { $breadcrumbs .= sprintf(' <li>(<a href="%s.dashboard.html">Dashboard</a>)</li>' . "\n", $step->getId()); } } } return $breadcrumbs; }
/** * Constructor. * * @param string $name * @param PHP_CodeCoverage_Report_Node $parent * @param array $coverageData * @param array $testData * @param boolean $cacheTokens */ public function __construct($name, PHP_CodeCoverage_Report_Node $parent, array $coverageData, array $testData, $cacheTokens) { if (!is_bool($cacheTokens)) { throw new InvalidArgumentException(); } parent::__construct($name, $parent); $this->coverageData = $coverageData; $this->testData = $testData; $this->ignoredLines = PHP_CodeCoverage_Util::getLinesToBeIgnored($this->getPath(), $cacheTokens); $this->cacheTokens = $cacheTokens; $this->calculateStatistics(); }
/** * @param Text_Template $template * @param string $title * @param PHP_CodeCoverage_Report_Node $node */ protected function setCommonTemplateVariables(Text_Template $template, $title, PHP_CodeCoverage_Report_Node $node = NULL) { $link = ''; if ($node !== NULL) { $path = $node->getPathAsArray(); foreach ($path as $step) { $link .= sprintf('%s<a href="%s.html">%s</a>', !empty($link) ? '/' : '', $step->getId(), $step->getName()); } } $template->setVar(array('title' => $title, 'link' => $link, 'charset' => $this->charset, 'date' => $this->date, 'version' => '1.1.2', 'php_version' => PHP_VERSION, 'generator' => $this->generator, 'low_upper_bound' => $this->lowUpperBound, 'high_lower_bound' => $this->highLowerBound)); }
protected function getInactiveBreadcrumb(PHP_CodeCoverage_Report_Node $node) { return sprintf(' <li><a href="%s.html">%s</a> <span class="divider">/</span></li>' . "\n", $node->getId(), $node->getName()); }
protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node) { return sprintf(' <li><a href="index.html">%s</a></li>' . "\n" . ' <li class="active">(Dashboard)</li>' . "\n", $node->getName()); }
/** * @param PHP_CodeCoverage_Report_Node $item * @param boolean $total * @return string */ protected function renderItem(PHP_CodeCoverage_Report_Node $item, $total = FALSE) { $data = array('numClasses' => $item->getNumClasses(), 'numTestedClasses' => $item->getNumTestedClasses(), 'numMethods' => $item->getNumMethods(), 'numTestedMethods' => $item->getNumTestedMethods(), 'linesExecutedPercent' => $item->getLineExecutedPercent(FALSE), 'linesExecutedPercentAsString' => $item->getLineExecutedPercent(), 'numExecutedLines' => $item->getNumExecutedLines(), 'numExecutableLines' => $item->getNumExecutableLines(), 'testedMethodsPercent' => $item->getTestedMethodsPercent(FALSE), 'testedMethodsPercentAsString' => $item->getTestedMethodsPercent(), 'testedClassesPercent' => $item->getTestedClassesPercent(FALSE), 'testedClassesPercentAsString' => $item->getTestedClassesPercent()); if ($total) { $data['itemClass'] = 'coverDirectory'; $data['name'] = 'Total'; } else { $data['name'] = sprintf('<a href="%s.html">%s</a>', $item->getId(), $item->getName()); if ($item instanceof PHP_CodeCoverage_Report_Node_Directory) { $data['icon'] = '<img alt="directory" src="directory.png"/> '; $data['itemClass'] = 'coverDirectory'; } else { $data['icon'] = '<img alt="file" src="file.png"/> '; $data['itemClass'] = 'coverFile'; } } return $this->renderItemTemplate(new Text_Template($this->templatePath . 'directory_item.html'), $data); }
protected function getActiveBreadcrumb(PHP_CodeCoverage_Report_Node $node) { $buffer = sprintf(' <li class="active">%s</li>' . "\n", $node->getName()); if ($node instanceof PHP_CodeCoverage_Report_Node_Directory) { $buffer .= ' <li>(<a href="dashboard.html">Dashboard</a>)</li>' . "\n"; } return $buffer; }
/** * Constructor. * * @param string $name * @param PHP_CodeCoverage_Report_Node $parent * @param array $coverageData * @param array $testData * @param bool $cacheTokens * * @throws PHP_CodeCoverage_Exception */ public function __construct($name, PHP_CodeCoverage_Report_Node $parent, array $coverageData, array $testData, $cacheTokens) { if (!is_bool($cacheTokens)) { throw PHP_CodeCoverage_Util_InvalidArgumentHelper::factory(1, 'boolean'); } parent::__construct($name, $parent); $this->coverageData = $coverageData; $this->testData = $testData; $this->cacheTokens = $cacheTokens; $this->calculateStatistics(); }
private function setTotals(PHP_CodeCoverage_Report_Node $node, PHP_CodeCoverage_Report_XML_Totals $totals) { $loc = $node->getLinesOfCode(); $totals->setNumLines($loc['loc'], $loc['cloc'], $loc['ncloc'], $node->getNumExecutableLines(), $node->getNumExecutedLines()); $totals->setNumClasses($node->getNumClasses(), $node->getNumTestedClasses()); $totals->setNumTraits($node->getNumTraits(), $node->getNumTestedTraits()); $totals->setNumMethods($node->getNumMethods(), $node->getNumTestedMethods()); $totals->setNumFunctions($node->getNumFunctions(), $node->getNumTestedFunctions()); }
/** * @param Text_Template $template * @param PHP_CodeCoverage_Report_Node $node */ protected function setCommonTemplateVariables(Text_Template $template, PHP_CodeCoverage_Report_Node $node) { $runtime = new Runtime(); $template->setVar(array('id' => $node->getId(), 'full_path' => $node->getPath(), 'path_to_root' => $this->getPathToRoot($node), 'breadcrumbs' => $this->getBreadcrumbs($node), 'date' => $this->date, 'version' => $this->version, 'runtime_name' => $runtime->getName(), 'runtime_version' => $runtime->getVersion(), 'runtime_link' => $runtime->getVendorUrl(), 'generator' => $this->generator, 'low_upper_bound' => $this->lowUpperBound, 'high_lower_bound' => $this->highLowerBound)); }