]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5209 Show real data inside coverage bar
authorStas Vilchik <vilchiks@gmail.com>
Fri, 16 May 2014 10:53:53 +0000 (12:53 +0200)
committerStas Vilchik <vilchiks@gmail.com>
Fri, 16 May 2014 10:53:53 +0000 (12:53 +0200)
sonar-server/src/main/coffee/component-viewer/header.coffee
sonar-server/src/main/coffee/component-viewer/main.coffee
sonar-server/src/main/hbs/component-viewer/header/_coverage-header.hbs

index 4286116e72dcde20b7053625bef9791587a787ad..477059ca8639c75aca4fbc4e02f6ffc12c6afbf2 100644 (file)
@@ -31,12 +31,14 @@ define [
       'click .js-filter-covered-lines': 'filterByCoveredLines'
       'click .js-filter-uncovered-lines': 'filterByUncoveredLines'
       'click .js-filter-branches-to-cover': 'filterByBranchesToCover'
+      'click .js-filter-covered-branches': 'filterByCoveredBranches'
       'click .js-filter-uncovered-branches': 'filterByUncoveredBranches'
 
       'click .js-filter-lines-to-cover-it': 'filterByLinesToCoverIT'
       'click .js-filter-covered-lines-it': 'filterByCoveredLinesIT'
       'click .js-filter-uncovered-lines-it': 'filterByUncoveredLinesIT'
       'click .js-filter-branches-to-cover-it': 'filterByBranchesToCoverIT'
+      'click .js-filter-covered-branches-it': 'filterByCoveredBranchesIT'
       'click .js-filter-uncovered-branches-it': 'filterByUncoveredBranchesIT'
 
 
@@ -59,7 +61,12 @@ define [
         scope = el.data 'scope'
         @ui.expandedBars.hide()
         if scope
-          @ui.expandedBars.filter("[data-scope=#{scope}]").show()
+          unless @options.main.component.has 'msr'
+            @options.main.requestMeasures(@options.main.key).done =>
+              @render()
+              @ui.expandedBars.filter("[data-scope=#{scope}]").show()
+          else
+            @ui.expandedBars.filter("[data-scope=#{scope}]").show()
 
 
     changeSettings: ->
@@ -92,12 +99,14 @@ define [
     filterByCoveredLines: (e) -> @filterByCoverage e, 'filterByCoveredLines'
     filterByUncoveredLines: (e) -> @filterByCoverage e, 'filterByUncoveredLines'
     filterByBranchesToCover: (e) -> @filterByCoverage e, 'filterByBranchesToCover'
+    filterByCoveredBranches: (e) -> @filterByCoverage e, 'filterByCoveredBranches'
     filterByUncoveredBranches: (e) -> @filterByCoverage e, 'filterByUncoveredBranches'
 
     filterByLinesToCoverIT: (e) -> @filterByCoverage e, 'filterByLinesToCoverIT'
     filterByCoveredLinesIT: (e) -> @filterByCoverage e, 'filterByCoveredLinesIT'
     filterByUncoveredLinesIT: (e) -> @filterByCoverage e, 'filterByUncoveredLinesIT'
     filterByBranchesToCoverIT: (e) -> @filterByCoverage e, 'filterByBranchesToCoverIT'
+    filterByCoveredBranchesIT: (e) -> @filterByCoverage e, 'filterByCoveredBranchesIT'
     filterByUncoveredBranchesIT: (e) -> @filterByCoverage e, 'filterByUncoveredBranchesIT'
 
 
index 865964fdb8920d8b09e897e38ca3a51951d07948..c2680c88aa0b036c28e27299a4eb42ceb14be4c6 100644 (file)
@@ -22,10 +22,24 @@ define [
   API_SOURCES = "#{baseUrl}/api/sources/show"
   API_COVERAGE = "#{baseUrl}/api/coverage/show"
   API_SCM = "#{baseUrl}/api/sources/scm"
+  API_MEASURES = "#{baseUrl}/api/resources"
 
   LINES_AROUND_ISSUE = 4
   LINES_AROUND_COVERED_LINE = 1
 
+  SOURCE_METRIC_LIST = 'lines,ncloc,functions,accessors,classes,statements,complexity,function_complexity,' +
+    'comment_lines_density,comment_lines,public_documented_api_density,public_undocumented_api,' +
+    'public_api'
+
+  COVERAGE_METRIC_LIST = 'coverage,line_coverage,lines_to_cover,covered_lines,uncovered_lines,' +
+    'branch_coverage,conditions_to_cover,uncovered_conditions,' +
+    'it_coverage,it_line_coverage,it_lines_to_cover,it_covered_lines,it_uncovered_lines,' +
+    'it_branch_coverage,it_conditions_to_cover,it_uncovered_conditions'
+
+  ISSUES_METRIC_LIST = 'blocker_violations,critical_violations,major_violations,minor_violations,info_violations'
+
+  DUPLICATIONS_METRIC_LIST = 'duplicated_lines_density,duplicated_blocks,duplicated_files,duplicated_lines'
+
 
 
   class ComponentViewer extends Marionette.Layout
@@ -81,6 +95,28 @@ define [
         @component.set data
 
 
+    requestMeasures: (key) ->
+      metrics = [SOURCE_METRIC_LIST, COVERAGE_METRIC_LIST, ISSUES_METRIC_LIST, DUPLICATIONS_METRIC_LIST].join ','
+      $.get API_MEASURES, resource: key, metrics: metrics, (data) =>
+        measuresList = data[0].msr || []
+        measures = {}
+        measuresList.forEach (m) -> measures[m.key] = m.frmt_val
+
+        if measures['lines_to_cover']? && measures['uncovered_lines']?
+          measures['covered_lines'] = measures['lines_to_cover'] - measures['uncovered_lines']
+
+        if measures['conditions_to_cover']? && measures['uncovered_conditions']?
+          measures['covered_conditions'] = measures['conditions_to_cover'] - measures['uncovered_conditions']
+
+        if measures['it_lines_to_cover']? && measures['it_uncovered_lines']?
+          measures['it_covered_lines'] = measures['it_lines_to_cover'] - measures['it_uncovered_lines']
+
+        if measures['it_conditions_to_cover']? && measures['it_uncovered_conditions']?
+          measures['it_covered_conditions'] = measures['it_conditions_to_cover'] - measures['it_uncovered_conditions']
+
+        @component.set 'msr', measures
+
+
     requestSource: (key) ->
       $.get API_SOURCES, key: key, (data) =>
         @source.set source: data.sources
@@ -207,15 +243,17 @@ define [
     # Unit Tests
     filterByLinesToCover: -> @filterByCoverage (c) -> c[1]?
     filterByCoveredLines: -> @filterByCoverage (c) -> c[1]? && c[1]
-    filterLinesByUncoveredLines: -> @filterByCoverage (c) -> c[1]? && !c[1]
+    filterByUncoveredLines: -> @filterByCoverage (c) -> c[1]? && !c[1]
     filterByBranchesToCover: -> @filterByCoverage (c) -> c[3]?
+    filterByCoveredBranches: -> @filterByCoverage (c) -> c[3]? && c[4]? && (c[4] > 0)
     filterByUncoveredBranches: -> @filterByCoverage (c) -> c[3]? && c[4]? && (c[3] > c[4])
 
     # Integration Tests
     filterByLinesToCoverIT: -> @filterByCoverageIT (c) -> c[1]?
     filterByCoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && c[1]
-    filterLinesByUncoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && !c[1]
+    filterByUncoveredLinesIT: -> @filterByCoverageIT (c) -> c[1]? && !c[1]
     filterByBranchesToCoverIT: -> @filterByCoverageIT (c) -> c[3]?
+    filterByCoveredBranchesIT: -> @filterByCoverageIT (c) -> c[3]? && c[4]? && (c[4] > 0)
     filterByUncoveredBranchesIT: -> @filterByCoverageIT (c) -> c[3]? && c[4]? && (c[3] > c[4])
 
 
index 8a0eea94b1a61ee976238c8b0b4739856dbb7a66..ac32560b189b6ef501cbf992cbe9425306fead13 100644 (file)
@@ -3,25 +3,25 @@
   <ul class="component-viewer-header-expanded-bar-section-list">
     <li><span class="item">
       <span class="label">Coverage</span>
-      <span class="number">93.6%</span>
+      <span class="number">{{component.msr.coverage}}</span>
     </span></li>
     <li><span class="item">
       <span class="label">Line coverage</span>
-      <span class="number">93.6%</span>
+      <span class="number">{{component.msr.line_coverage}}</span>
     </span></li>
     <li><a class="item js-filter-lines-to-cover">
       <span class="label">Lines to cover</span>
-      <span class="number">171</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-uncovered-lines">
-      <span class="label">Uncovered lines</span>
-      <span class="number">16</span>
+      <span class="number">{{component.msr.lines_to_cover}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
     <li><a class="item js-filter-covered-lines">
       <span class="label">Covered lines</span>
-      <span class="number">55</span>
+      <span class="number">{{component.msr.covered_lines}}</span>
+      <i class="icon-chevron-right"></i>
+    </a></li>
+    <li><a class="item js-filter-uncovered-lines">
+      <span class="label">Uncovered lines</span>
+      <span class="number">{{component.msr.uncovered_lines}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
   </ul>
     <li><span class="item">&nbsp;</span></li>
     <li><span class="item">
       <span class="label">Branch coverage</span>
-      <span class="number">75.0%</span>
+      <span class="number">{{component.msr.branch_coverage}}</span>
     </span></li>
     <li><a class="item js-filter-branches-to-cover">
       <span class="label">Branches to cover</span>
-      <span class="number">16</span>
+      <span class="number">{{component.msr.conditions_to_cover}}</span>
+      <i class="icon-chevron-right"></i>
+    </a></li>
+    <li><a class="item js-filter-covered-branches">
+      <span class="label">Covered branches</span>
+      <span class="number">{{component.msr.covered_conditions}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
     <li><a class="item js-filter-uncovered-branches">
       <span class="label">Uncovered branches</span>
-      <span class="number">4</span>
+      <span class="number">{{component.msr.uncovered_conditions}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
   </ul>
 
 
 <div class="component-viewer-header-expanded-bar-section">
-  <div class="component-viewer-header-expanded-bar-section-title">Unit Tests</div>
+  <div class="component-viewer-header-expanded-bar-section-title">Integration Tests</div>
   <ul class="component-viewer-header-expanded-bar-section-list">
     <li><span class="item">
       <span class="label">Coverage</span>
-      <span class="number">93.6%</span>
+      <span class="number">{{component.msr.it_coverage}}</span>
     </span></li>
     <li><span class="item">
       <span class="label">Line coverage</span>
-      <span class="number">93.6%</span>
+      <span class="number">{{component.msr.it_line_coverage}}</span>
     </span></li>
     <li><a class="item js-filter-lines-to-cover-it">
       <span class="label">Lines to cover</span>
-      <span class="number">171</span>
-      <i class="icon-chevron-right"></i>
-    </a></li>
-    <li><a class="item js-filter-uncovered-lines-it">
-      <span class="label">Uncovered lines</span>
-      <span class="number">16</span>
+      <span class="number">{{component.msr.it_lines_to_cover}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
     <li><a class="item js-filter-covered-lines-it">
       <span class="label">Covered lines</span>
-      <span class="number">55</span>
+      <span class="number">{{component.msr.it_covered_lines}}</span>
+      <i class="icon-chevron-right"></i>
+    </a></li>
+    <li><a class="item js-filter-uncovered-lines-it">
+      <span class="label">Uncovered lines</span>
+      <span class="number">{{component.msr.it_uncovered_lines}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
   </ul>
     <li><span class="item">&nbsp;</span></li>
     <li><span class="item">
       <span class="label">Branch coverage</span>
-      <span class="number">75.0%</span>
+      <span class="number">{{component.msr.it_branch_coverage}}</span>
     </span></li>
     <li><a class="item js-filter-branches-to-cover-it">
       <span class="label">Branches to cover</span>
-      <span class="number">16</span>
+      <span class="number">{{component.msr.it_conditions_to_cover}}</span>
+      <i class="icon-chevron-right"></i>
+    </a></li>
+    <li><a class="item js-filter-covered-branches-it">
+      <span class="label">Covered branches</span>
+      <span class="number">{{component.msr.it_covered_conditions}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
     <li><a class="item js-filter-uncovered-branches-it">
       <span class="label">Uncovered branches</span>
-      <span class="number">4</span>
+      <span class="number">{{component.msr.it_uncovered_conditions}}</span>
       <i class="icon-chevron-right"></i>
     </a></li>
   </ul>