aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/sonar-core-plugin
diff options
context:
space:
mode:
authorDavid Gageot <david@gageot.net>2012-05-07 09:56:10 +0200
committerDavid Gageot <david@gageot.net>2012-05-07 15:25:30 +0200
commiteb4ec882eebb4bebea4578888f9e4cdbf3b482f1 (patch)
tree31c2ea4b2a9932064b3ff9de3304892663313971 /plugins/sonar-core-plugin
parent58c44bcceb01f8386df5fdc2f3c26e44f8306dc3 (diff)
downloadsonarqube-eb4ec882eebb4bebea4578888f9e4cdbf3b482f1.tar.gz
sonarqube-eb4ec882eebb4bebea4578888f9e4cdbf3b482f1.zip
Filter Widget first try
Diffstat (limited to 'plugins/sonar-core-plugin')
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java1
-rw-r--r--plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/FilterWidget.java43
-rw-r--r--plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/filter.html.erb1
-rw-r--r--plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/CorePluginTest.java20
4 files changed, 60 insertions, 5 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java
index a4746f9dc13..2541173c051 100644
--- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java
@@ -269,6 +269,7 @@ public final class CorePlugin extends SonarPlugin {
extensions.add(TreemapWidget.class);
extensions.add(GlobalWidget.class);
extensions.add(ImageWidget.class);
+ extensions.add(FilterWidget.class);
// dashboards
extensions.add(DefaultDashboard.class);
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/FilterWidget.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/FilterWidget.java
new file mode 100644
index 00000000000..7feb1410ec7
--- /dev/null
+++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/widgets/FilterWidget.java
@@ -0,0 +1,43 @@
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2012 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ */
+package org.sonar.plugins.core.widgets;
+
+import org.sonar.api.web.AbstractRubyTemplate;
+import org.sonar.api.web.RubyRailsWidget;
+import org.sonar.api.web.WidgetCategory;
+import org.sonar.api.web.WidgetGlobal;
+
+@WidgetCategory("Beta")
+@WidgetGlobal
+public class FilterWidget extends AbstractRubyTemplate implements RubyRailsWidget {
+
+ public String getId() {
+ return "filter";
+ }
+
+ public String getTitle() {
+ return "Filter";
+ }
+
+ @Override
+ protected String getTemplatePath() {
+ return "/org/sonar/plugins/core/widgets/filter.html.erb";
+ }
+}
diff --git a/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/filter.html.erb b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/filter.html.erb
new file mode 100644
index 00000000000..23127eb7fd2
--- /dev/null
+++ b/plugins/sonar-core-plugin/src/main/resources/org/sonar/plugins/core/widgets/filter.html.erb
@@ -0,0 +1 @@
+<%= render :partial => 'filters/widget' -%> \ No newline at end of file
diff --git a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/CorePluginTest.java b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/CorePluginTest.java
index 75465e752ce..4d58ccd358d 100644
--- a/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/CorePluginTest.java
+++ b/plugins/sonar-core-plugin/src/test/java/org/sonar/plugins/core/CorePluginTest.java
@@ -19,15 +19,25 @@
*/
package org.sonar.plugins.core;
-import static org.hamcrest.number.OrderingComparisons.greaterThan;
-import static org.junit.Assert.assertThat;
import org.junit.Test;
+import org.reflections.Reflections;
+import org.sonar.api.web.AbstractRubyTemplate;
-public class CorePluginTest {
+import java.util.Set;
+
+import static org.fest.assertions.Assertions.assertThat;
+public class CorePluginTest {
@Test
- public void shouldDefineManyExtensions() {
- assertThat(new CorePlugin().getExtensions().size(), greaterThan(10));
+ public void should_define_many_extensions() {
+ assertThat(new CorePlugin().getExtensions().size()).isGreaterThan(10);
}
+ @Test
+ public void should_contain_all_core_widgets() {
+ Set<Class<? extends AbstractRubyTemplate>> widgets = new Reflections("org.sonar.plugins.core.widgets").getSubTypesOf(AbstractRubyTemplate.class);
+
+ assertThat(widgets).isNotEmpty();
+ assertThat(new CorePlugin().getExtensions()).contains(widgets.toArray());
+ }
}