aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2014-04-09 17:37:18 +0200
committerJean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com>2014-04-09 17:37:24 +0200
commit7fbccc246de0a2629eed933e2b9ede0d678ef4dd (patch)
tree2201b5bf4f749cb054749d895d3381e14fe3dd29 /sonar-server
parent0d243b6d8c31ddca35fca5fc576589ea89e19932 (diff)
downloadsonarqube-7fbccc246de0a2629eed933e2b9ede0d678ef4dd.tar.gz
sonarqube-7fbccc246de0a2629eed933e2b9ede0d678ef4dd.zip
SONAR-4366 Fix display of conditions defined on deprecated (hidden) metrics
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-conditions-view.coffee2
-rw-r--r--sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs3
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java8
-rw-r--r--sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java3
-rw-r--r--sonar-server/src/main/less/quality-gates.less8
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java11
7 files changed, 32 insertions, 5 deletions
diff --git a/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-conditions-view.coffee b/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-conditions-view.coffee
index 7b76a55ae61..c7d2e4dcd99 100644
--- a/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-conditions-view.coffee
+++ b/sonar-server/src/main/coffee/quality-gate/views/quality-gate-detail-conditions-view.coffee
@@ -54,6 +54,8 @@ define [
groupedMetrics: ->
metrics = @options.app.metrics
+ metrics = _.filter metrics, (metric) ->
+ !metric.hidden
metrics = _.groupBy metrics, 'domain'
metrics = _.map metrics, (metrics, domain) ->
domain: domain, metrics: _.sortBy metrics, 'short_name'
diff --git a/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs b/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs
index 572bdb2af79..6ec2c6200f1 100644
--- a/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs
+++ b/sonar-server/src/main/hbs/quality-gates/quality-gate-detail-condition.hbs
@@ -1,5 +1,8 @@
<td nowrap>
{{metric.name}}
+ {{#if metric.hidden}}
+ <span class="deprecated">{{t 'deprecated'}}</span>
+ {{/if}}
</td>
<td width="10%" nowrap>
{{#if canEdit}}
diff --git a/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java b/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java
index 17df95cedc7..c0682042c09 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualitygate/QualityGates.java
@@ -229,7 +229,7 @@ public class QualityGates {
return Collections2.filter(metricFinder.findAll(), new Predicate<Metric>() {
@Override
public boolean apply(Metric metric) {
- return isAlertable(metric);
+ return isAvailableForInit(metric);
}
});
}
@@ -284,8 +284,12 @@ public class QualityGates {
}
}
+ private boolean isAvailableForInit(Metric metric) {
+ return !metric.isDataType() && !CoreMetrics.ALERT_STATUS.equals(metric) && ValueType.RATING != metric.getType();
+ }
+
private boolean isAlertable(Metric metric) {
- return !metric.isDataType() && BooleanUtils.isFalse(metric.isHidden()) && !CoreMetrics.ALERT_STATUS.equals(metric) && ValueType.RATING != metric.getType();
+ return isAvailableForInit(metric) && BooleanUtils.isFalse(metric.isHidden());
}
private boolean isDefault(QualityGateDto qGate) {
diff --git a/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java b/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java
index 5faf20aa64c..ea7765f7921 100644
--- a/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java
+++ b/sonar-server/src/main/java/org/sonar/server/qualitygate/ws/QgateAppHandler.java
@@ -19,6 +19,7 @@
*/
package org.sonar.server.qualitygate.ws;
+import org.apache.commons.lang.BooleanUtils;
import org.sonar.api.i18n.I18n;
import org.sonar.api.measures.Metric;
import org.sonar.api.server.ws.Request;
@@ -46,6 +47,7 @@ public class QgateAppHandler implements RequestHandler {
"create",
"default",
"delete",
+ "deprecated",
"more",
"name",
"quality_gates.add_condition",
@@ -136,6 +138,7 @@ public class QgateAppHandler implements RequestHandler {
.prop("name", metric.getName())
.prop("type", metric.getType().toString())
.prop("domain", metric.getDomain())
+ .prop("hidden", BooleanUtils.isNotFalse(metric.isHidden()))
.endObject();
}
writer.endArray();
diff --git a/sonar-server/src/main/less/quality-gates.less b/sonar-server/src/main/less/quality-gates.less
index 5901f29c35c..ab7bdebb504 100644
--- a/sonar-server/src/main/less/quality-gates.less
+++ b/sonar-server/src/main/less/quality-gates.less
@@ -104,3 +104,11 @@
border: 1px solid #ddd;
background-color: #efefef;
}
+
+.quality-gate-conditions {
+ & .deprecated {
+ color: #777;
+ text-transform: lowercase;
+ font-variant: small-caps;
+ }
+} \ No newline at end of file
diff --git a/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java b/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java
index 6fa7412d47d..435ed2c0a26 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualitygate/QualityGatesTest.java
@@ -569,6 +569,6 @@ public class QualityGatesTest {
when(classicMetric.getType()).thenReturn(ValueType.BOOL);
when(metricFinder.findAll()).thenReturn(ImmutableList.of(
dataMetric, hiddenMetric, nullHiddenMetric, alertMetric, ratingMetric, classicMetric));
- assertThat(qGates.gateMetrics()).hasSize(1).containsOnly(classicMetric);
+ assertThat(qGates.gateMetrics()).hasSize(3).containsOnly(classicMetric, hiddenMetric, nullHiddenMetric);
}
}
diff --git a/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java b/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java
index dd5c8645817..f46bb137b40 100644
--- a/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/qualitygate/ws/QgateAppHandlerTest.java
@@ -79,6 +79,7 @@ public class QgateAppHandlerTest {
when(metric.getName()).thenReturn("Metric");
when(metric.getType()).thenReturn(ValueType.BOOL);
when(metric.getDomain()).thenReturn("General");
+ when(metric.isHidden()).thenReturn(false);
when(qGates.gateMetrics()).thenReturn(ImmutableList.of(metric));
String json = tester.newRequest("app").execute().outputAsString();
@@ -88,12 +89,18 @@ public class QgateAppHandlerTest {
Collection<Map> periods = (Collection<Map>) responseJson.get("periods");
assertThat(periods).hasSize(3);
Map messages = (Map) responseJson.get("messages");
- assertThat(messages).isNotNull().isNotEmpty().hasSize(50);
+ assertThat(messages).isNotNull().isNotEmpty().hasSize(51);
for (Entry message: (Set<Entry>) messages.entrySet()) {
assertThat(message.getKey()).isEqualTo(message.getValue());
}
Collection<Map> metrics = (Collection<Map>) responseJson.get("metrics");
assertThat(metrics).hasSize(1);
- assertThat(metrics.iterator().next().get("key")).isEqualTo("metric");
+ Map metricMap = metrics.iterator().next();
+ assertThat(metricMap.get("id").toString()).isEqualTo("42");
+ assertThat(metricMap.get("key")).isEqualTo("metric");
+ assertThat(metricMap.get("name")).isEqualTo("Metric");
+ assertThat(metricMap.get("type")).isEqualTo("BOOL");
+ assertThat(metricMap.get("domain")).isEqualTo("General");
+ assertThat(metricMap.get("hidden")).isEqualTo(false);
}
}