From: stronk7 Date: Fri, 26 Jun 2009 17:07:33 +0000 (+0000) Subject: MDL-19579 code coverage - show link to latest complete report X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=e5d06af22ee502e2841203da90d3de123b57f750;p=moodle.git MDL-19579 code coverage - show link to latest complete report --- diff --git a/admin/report/unittest/dbtest.php b/admin/report/unittest/dbtest.php index 24b847e641..d691629bf3 100644 --- a/admin/report/unittest/dbtest.php +++ b/admin/report/unittest/dbtest.php @@ -138,6 +138,11 @@ echo ''; echo ''; 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(); diff --git a/admin/report/unittest/index.php b/admin/report/unittest/index.php index e029979607..250ef3ea2c 100644 --- a/admin/report/unittest/index.php +++ b/admin/report/unittest/index.php @@ -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(); diff --git a/lang/en_utf8/simpletest.php b/lang/en_utf8/simpletest.php index 5517212a7f..c07518d82a 100644 --- a/lang/en_utf8/simpletest.php +++ b/lang/en_utf8/simpletest.php @@ -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:
\$CFG->unittestprefix = \'tst_\' // Change tst_ to a prefix of your choice, different from \$CFG->prefix'; $string['coveredlines'] = 'Covered lines'; diff --git a/lib/simpletestcoveragelib.php b/lib/simpletestcoveragelib.php index 54172dd17c..3fe3a554fd 100644 --- a/lib/simpletestcoveragelib.php +++ b/lib/simpletestcoveragelib.php @@ -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('(' . get_string('codecoveragecompletereport', 'simpletest') . ')', 4, 'main codecoveragelink'); + ' title="">' . get_string('codecoveragecompletereport', 'simpletest') . '', 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('' . $strlatestreport . '', 3, 'main codecoveragelink'); + $result .= $OUTPUT->heading('

' . $strlatestdetails . '

', 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); + } }