Merge "Bug fix for a badge color according to percentage."
diff --git a/src/main/webapp/WEB-INF/jsp/show_coverage_overview.jsp b/src/main/webapp/WEB-INF/jsp/show_coverage_overview.jsp
index 7d4e32a..6641b7e 100644
--- a/src/main/webapp/WEB-INF/jsp/show_coverage_overview.jsp
+++ b/src/main/webapp/WEB-INF/jsp/show_coverage_overview.jsp
@@ -404,10 +404,10 @@
 
                 <c:choose>
                   <c:when test = "${covPct <= 20}">
-                    <c:set var="badgeColor" value="green" />
+                    <c:set var="badgeColor" value="red" />
                   </c:when>
                   <c:when test = "${covPct >= 70}">
-                    <c:set var="badgeColor" value="yellow" />
+                    <c:set var="badgeColor" value="green" />
                   </c:when>
                   <c:otherwise>
                     <c:set var="badgeColor" value="orange" />
diff --git a/src/main/webapp/js/test_results.js b/src/main/webapp/js/test_results.js
index 2811b0f..24d4c0b 100644
--- a/src/main/webapp/js/test_results.js
+++ b/src/main/webapp/js/test_results.js
@@ -67,6 +67,32 @@
 }
 
 /**
+ * Get the badge color from ratio value.
+ *
+ * @param the percentage value.
+ * @returns the string of color for the badge.
+ */
+function getBadgeColor(ratio) {
+  var color = "orange";
+  if (ratio <= 20) {
+    color = "red";
+  } else if (ratio >= 70) {
+    color = "green";
+  }
+  return color;
+}
+
+/**
+ * Get the rounded value.
+ *
+ * @param the percentage value.
+ * @returns the rounded value from percentage value.
+ */
+function getRoundValue(ratio) {
+    return Math.round(ratio * 1000) / 10;
+}
+
+/**
  * Display test data in the body beneath a test run's metadata.
  * @param container The jquery object in which to insert the test metadata.
  * @param data The json object containing the columns to display.
@@ -249,16 +275,11 @@
       var url = ('/show_coverage?testName=' + test + '&startTime=' + startTime);
       var covered = metadata.testRun.coveredLineCount;
       var total = metadata.testRun.totalLineCount;
-      var covPct = Math.round(covered / total * 1000) / 10;
-      var color = 'red';
-      if (covPct > 20 && covPct < 70) {
-        color = 'orange';
-      } else if (covPct >= 70) {
-        color = 'green';
-      }
+      var covPct = getRoundValue(covered / total);
+      var color = getBadgeColor(covPct);
       var coverage =
           ('Coverage: ' + covered + '/' + total + ' (' + covPct + '%)');
-      createClickableIndicator(div, coverage, color, function() {
+      createClickableIndicator(div, coverage, color, function(evt) {
         window.location.href = url;
         return false;
       });
@@ -267,8 +288,10 @@
         metadata.testRun.totalApiCount != undefined) {
       var covered = metadata.testRun.coveredApiCount;
       var total = metadata.testRun.totalApiCount;
-      var apiCoverage = ('API Coverage: ' + covered + '/' + total);
-      createClickableIndicator(div, apiCoverage, 'orange', function(evt) {
+      var covPct = getRoundValue(covered / total);
+      var color = getBadgeColor(covPct);
+      var apiCoverage = ('API Coverage: ' + covered + '/' + total + ' (' + covPct + '%)');
+      createClickableIndicator(div, apiCoverage, color, function(evt) {
         $('#apiCoverageModal')
             .data('urlSafeKeyList', metadata.testRun.apiCoverageKeyList);
         $('#apiCoverageModal').modal('open');