diff options
author | David Gageot <david@gageot.net> | 2012-05-07 09:56:10 +0200 |
---|---|---|
committer | David Gageot <david@gageot.net> | 2012-05-07 15:25:30 +0200 |
commit | eb4ec882eebb4bebea4578888f9e4cdbf3b482f1 (patch) | |
tree | 31c2ea4b2a9932064b3ff9de3304892663313971 /plugins/sonar-core-plugin | |
parent | 58c44bcceb01f8386df5fdc2f3c26e44f8306dc3 (diff) | |
download | sonarqube-eb4ec882eebb4bebea4578888f9e4cdbf3b482f1.tar.gz sonarqube-eb4ec882eebb4bebea4578888f9e4cdbf3b482f1.zip |
Filter Widget first try
Diffstat (limited to 'plugins/sonar-core-plugin')
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()); + } } |