]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-19579 code coverage - show link to latest complete report
authorstronk7 <stronk7>
Fri, 26 Jun 2009 17:07:33 +0000 (17:07 +0000)
committerstronk7 <stronk7>
Fri, 26 Jun 2009 17:07:33 +0000 (17:07 +0000)
admin/report/unittest/dbtest.php
admin/report/unittest/index.php
lang/en_utf8/simpletest.php
lib/simpletestcoveragelib.php

index 24b847e641be660fac0b17a94ec327a9e40bd127..d691629bf38dd0b82f461946397d202c3bf0f3d3 100644 (file)
@@ -138,6 +138,11 @@ echo '</div>';
 echo '</form>';
 echo $OUTPUT->box_end();
 
+// Print link to latest code coverage for this report type
+if (!data_submitted() || !$codecoverage) {
+    moodle_coverage_reporter::print_link_to_latest('dbtest');
+}
+
 // Footer.
 admin_externalpage_print_footer();
 
index e029979607adb8ba7e2d00a330a30b60dbfab2a1..250ef3ea2cf46416265cdc9aa59af1ac1c8ca8ab 100644 (file)
@@ -142,6 +142,10 @@ if (true) {
 }
 echo $OUTPUT->box_end();
 
+// Print link to latest code coverage for this report type
+if (is_null($path) || !$codecoverage) {
+    moodle_coverage_reporter::print_link_to_latest('unittest');
+}
 
 // Footer.
 admin_externalpage_print_footer();
index 5517212a7f6f4c0c2595df1e846256f70e28eb63..c07518d82aa0d32053aee4dd51950e141853b2b6 100644 (file)
@@ -5,8 +5,10 @@
 $string['all'] = 'ALL';
 $string['addconfigprefix'] = 'Add prefix to config file';
 $string['codecoverageanalysis'] = 'Perform code coverage analysis.';
-$string['codecoveragecompletereport'] = 'view code coverage complete report';
+$string['codecoveragecompletereport'] = '(view code coverage complete report)';
 $string['codecoveragedisabled'] = 'Cannot enable code coverage in this server (missing xdebug extension).';
+$string['codecoveragelatestdetails'] = '(on $a->date, with $a->files files, $a->percentage covered)';
+$string['codecoveragelatestreport'] = 'view latest code coverage complete report';
 $string['confignonwritable'] = 'The file config.php is not writeable by the web server. Either change its permissions, or edit it with the appropriate user account, and add the following line before the closing php tag: <br />
 \$CFG->unittestprefix = \'tst_\' // Change tst_ to a prefix of your choice, different from \$CFG->prefix';
 $string['coveredlines'] = 'Covered lines';
index 54172dd17c551cdcc50955dc58586e96723682d9..3fe3a554fd995d2aed9e7a2adf502ebb8866946c 100644 (file)
@@ -28,8 +28,6 @@
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 
-/// TODO: provide one helper function to show links from test page to coverage report
-
 /**
  * Includes
  */
@@ -451,7 +449,7 @@ class moodle_coverage_reporter extends HtmlCoverageReporter {
                 $url = $CFG->wwwroot . '/admin/report/unittest/coveragefile.php/' . $type . '/index.html';
                 $result .= $OUTPUT->heading($data->title, 3, 'main codecoverageheading');
                 $result .= $OUTPUT->heading('<a href="' . $url . '" onclick="javascript:window.open(' . "'" . $url . "'" . ');return false;"' .
-                                   ' title="">(' . get_string('codecoveragecompletereport', 'simpletest') . ')</a>', 4, 'main codecoveragelink');
+                                   ' title="">' . get_string('codecoveragecompletereport', 'simpletest') . '</a>', 4, 'main codecoveragelink');
                 $result .= print_table($table, true);
 
                 return $OUTPUT->box($result, 'generalbox boxwidthwide boxaligncenter codecoveragebox', '', true);
@@ -470,6 +468,50 @@ class moodle_coverage_reporter extends HtmlCoverageReporter {
     static public function print_summary_info($type) {
         echo self::get_summary_info($type);
     }
+
+    /**
+     * Return the html code needed to browse latest code coverage complete report of the
+     * given test type
+     *
+     * @param string $type of the test to return last execution summary (dbtest|unittest)
+     * @return string html contents of the summary
+     */
+    static public function get_link_to_latest($type) {
+        global $CFG, $OUTPUT;
+
+        $serfilepath = $CFG->dataroot . '/codecoverage/' . $type . '/codecoverage.ser';
+        if (file_exists($serfilepath) && is_readable($serfilepath)) {
+            if ($data = unserialize(file_get_contents($serfilepath))) {
+                $info = new object();
+                $info->date       = userdate($data->time);
+                $info->files      = format_float($data->totalfiles, 0);
+                $info->percentage = format_float($data->totalpercentage, 2) . '%';
+
+                $strlatestreport  = get_string('codecoveragelatestreport', 'simpletest');
+                $strlatestdetails = get_string('codecoveragelatestdetails', 'simpletest', $info);
+
+                // return one link to latest complete report
+                $result = '';
+                $url = $CFG->wwwroot . '/admin/report/unittest/coveragefile.php/' . $type . '/index.html';
+                $result .= $OUTPUT->heading('<a href="' . $url . '" onclick="javascript:window.open(' . "'" . $url . "'" . ');return false;"' .
+                    ' title="">' . $strlatestreport . '</a>', 3, 'main codecoveragelink');
+                $result .= $OUTPUT->heading('<p>' . $strlatestdetails . '</p>', 4, 'main codecoveragedetails');
+                return $OUTPUT->box($result, 'generalbox boxwidthwide boxaligncenter codecoveragebox', '', true);
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Print the html code needed to browse latest code coverage complete report of the
+     * given test type
+     *
+     * @param string $type of the test to return last execution summary (dbtest|unittest)
+     * @return string html contents of the summary
+     */
+    static public function print_link_to_latest($type) {
+        echo self::get_link_to_latest($type);
+    }
 }