Version 1
[yaffs-website] / vendor / phpunit / php-code-coverage / src / CodeCoverage / Report / HTML / Renderer / Directory.php
diff --git a/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php b/vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/HTML/Renderer/Directory.php
new file mode 100644 (file)
index 0000000..4415c52
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/*
+ * This file is part of the PHP_CodeCoverage package.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Renders a PHP_CodeCoverage_Report_Node_Directory node.
+ *
+ * @since Class available since Release 1.1.0
+ */
+class PHP_CodeCoverage_Report_HTML_Renderer_Directory extends PHP_CodeCoverage_Report_HTML_Renderer
+{
+    /**
+     * @param PHP_CodeCoverage_Report_Node_Directory $node
+     * @param string                                 $file
+     */
+    public function render(PHP_CodeCoverage_Report_Node_Directory $node, $file)
+    {
+        $template = new Text_Template($this->templatePath . 'directory.html', '{{', '}}');
+
+        $this->setCommonTemplateVariables($template, $node);
+
+        $items = $this->renderItem($node, true);
+
+        foreach ($node->getDirectories() as $item) {
+            $items .= $this->renderItem($item);
+        }
+
+        foreach ($node->getFiles() as $item) {
+            $items .= $this->renderItem($item);
+        }
+
+        $template->setVar(
+            array(
+                'id'    => $node->getId(),
+                'items' => $items
+            )
+        );
+
+        $template->renderTo($file);
+    }
+
+    /**
+     * @param  PHP_CodeCoverage_Report_Node $item
+     * @param  bool                         $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
+        );
+    }
+}