diff options
Diffstat (limited to 'tests/integration/sonar-it-reference-plugin/src/main/java/itests')
11 files changed, 449 insertions, 0 deletions
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ITestsPlugin.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ITestsPlugin.java new file mode 100644 index 00000000000..73c30c51ca9 --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ITestsPlugin.java @@ -0,0 +1,71 @@ +/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2009 SonarSource SA
+ * 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 itests;
+
+import itests.footer.SampleFooter;
+import itests.languages.LanguageWithoutRulesEngine;
+import itests.page.GwtSamplePage;
+import itests.page.RubyApiTestsPage;
+import itests.resourcetab.SampleResourceTab;
+import itests.ws.RubyWebService;
+import org.sonar.api.Plugin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ITestsPlugin implements Plugin {
+
+ public String getKey() {
+ return "it";
+ }
+
+ public String getName() {
+ return "Integration tests";
+ }
+
+ public String getDescription() {
+ return "Integration tests";
+ }
+
+ public List getExtensions() {
+ List extensions = new ArrayList();
+
+ extensions.add(SampleSensor.class);
+ extensions.add(LanguageWithoutRulesEngine.class);
+ extensions.add(ServerSideExtensionUsingExternalDependency.class);
+
+
+ // web
+ extensions.add(SampleResourceTab.class);
+ extensions.add(SampleFooter.class);
+ extensions.add(GwtSamplePage.class);
+ extensions.add(RubyApiTestsPage.class);
+
+ // web service
+ extensions.add(RubyWebService.class);
+
+ return extensions;
+ }
+
+ @Override
+ public String toString() {
+ return getKey();
+ }
+}
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/SampleSensor.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/SampleSensor.java new file mode 100644 index 00000000000..b4172e8b5bf --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/SampleSensor.java @@ -0,0 +1,54 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests; + +import org.apache.commons.i18n.bundles.MessageBundle; +import org.sonar.api.batch.Sensor; +import org.sonar.api.batch.SensorContext; +import org.sonar.api.resources.Project; + +public class SampleSensor implements Sensor { + public boolean shouldExecuteOnProject(Project project) { + return true; + } + + public void analyse(Project project, SensorContext context) { + System.out.println(" Check usage of plugin dependencies (new feature since sonar 2.2)"); + + + System.out.print("Loading external dependency from " + getClass().getName() + ": "); + MessageBundle bundle = new MessageBundle("12345"); + System.out.println("OK"); + + System.out.print(" Plugin isolation (can not access other plugin classes): "); + try { + Class.forName("org.sonar.plugins.checkstyle.CheckstyleSensor"); + System.out.println("KO"); + + } catch (ClassNotFoundException e) { + System.out.println("OK"); + } + } + + @Override + public String toString() { + return getClass().getSimpleName(); + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ServerSideExtensionUsingExternalDependency.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ServerSideExtensionUsingExternalDependency.java new file mode 100644 index 00000000000..3debe0b73f9 --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ServerSideExtensionUsingExternalDependency.java @@ -0,0 +1,32 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests; + +import org.apache.commons.i18n.bundles.MessageBundle; +import org.sonar.api.ServerExtension; + +public class ServerSideExtensionUsingExternalDependency implements ServerExtension { + + public ServerSideExtensionUsingExternalDependency() { + System.out.print("Loading external dependency from " + getClass().getName() + ": "); + MessageBundle bundle = new MessageBundle("12345"); + System.out.println("OK"); + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/footer/SampleFooter.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/footer/SampleFooter.java new file mode 100644 index 00000000000..6db3846990d --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/footer/SampleFooter.java @@ -0,0 +1,28 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.footer; + +import org.sonar.api.web.Footer; + +public class SampleFooter implements Footer { + public String getHtml() { + return "<div style='background-color: #111;color: #efefef;text-align=left;padding: 5px 10px;'>Sample footer</div>"; + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/languages/LanguageWithoutRulesEngine.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/languages/LanguageWithoutRulesEngine.java new file mode 100644 index 00000000000..787551c058f --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/languages/LanguageWithoutRulesEngine.java @@ -0,0 +1,43 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.languages; + +import org.sonar.api.database.model.ResourceModel; +import org.sonar.api.resources.AbstractLanguage; + +public class LanguageWithoutRulesEngine extends AbstractLanguage { + private static final String[] SUFFIXES = new String[]{"unknown"}; + + public LanguageWithoutRulesEngine() { + super("lwre", "Language without rules engine"); + } + + public ResourceModel getParent(ResourceModel resource) { + return null; + } + + public boolean matchExclusionPattern(ResourceModel resource, String wildcardPattern) { + return false; + } + + public String[] getFileSuffixes() { + return SUFFIXES; + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/GwtSamplePage.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/GwtSamplePage.java new file mode 100644 index 00000000000..e2c045d126d --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/GwtSamplePage.java @@ -0,0 +1,36 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.page; + +import itests.page.client.GwtModule; +import org.sonar.api.web.GwtPage; +import org.sonar.api.web.NavigationSection; + +@NavigationSection({NavigationSection.HOME}) +public class GwtSamplePage extends GwtPage { + + public String getGwtId() { + return GwtModule.GWT_ID; + } + + public String getTitle() { + return "GWT sample"; + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/RubyApiTestsPage.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/RubyApiTestsPage.java new file mode 100644 index 00000000000..021bb584458 --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/RubyApiTestsPage.java @@ -0,0 +1,43 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.page; + +import org.sonar.api.web.AbstractRubyTemplate; +import org.sonar.api.web.NavigationSection; +import org.sonar.api.web.RubyRailsPage; +import org.sonar.api.web.UserRole; + +@NavigationSection({NavigationSection.HOME}) +@UserRole(UserRole.USER) +public class RubyApiTestsPage extends AbstractRubyTemplate implements RubyRailsPage { + + public String getTitle() { + return "Ruby API tests"; + } + + @Override + public String getTemplatePath() { + return "/itests/page/ruby_api_tests_page.html.erb"; + } + + public String getId() { + return this.getClass().getName(); + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/client/GwtModule.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/client/GwtModule.java new file mode 100644 index 00000000000..d65b4a21f90 --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/client/GwtModule.java @@ -0,0 +1,34 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.page.client; + +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.Widget; +import org.sonar.gwt.ui.Page; + +public class GwtModule extends Page { + + public static final String GWT_ID = "itests.page.GwtModule"; + + @Override + protected Widget doOnModuleLoad() { + return new Label("this is a GWT sample"); + } +} diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/SampleResourceTab.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/SampleResourceTab.java new file mode 100644 index 00000000000..8906e4452c7 --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/SampleResourceTab.java @@ -0,0 +1,37 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.resourcetab; + +import itests.resourcetab.client.GwtSampleResourceTab; +import org.sonar.api.web.GwtPage; +import org.sonar.api.web.NavigationSection; +import org.sonar.api.web.UserRole; + +@UserRole(UserRole.USER) +@NavigationSection(NavigationSection.RESOURCE_TAB) +public class SampleResourceTab extends GwtPage { + public String getTitle() { + return "Tab Sample"; + } + + public String getGwtId() { + return GwtSampleResourceTab.GWT_ID; + } +}
\ No newline at end of file diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/client/GwtSampleResourceTab.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/client/GwtSampleResourceTab.java new file mode 100644 index 00000000000..d788e93333e --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/client/GwtSampleResourceTab.java @@ -0,0 +1,35 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.resourcetab.client; + +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Widget; +import org.sonar.gwt.ui.Page; +import org.sonar.wsclient.services.Resource; + +public class GwtSampleResourceTab extends Page { + public static final String GWT_ID = "itests.resourcetab.GwtSampleResourceTab"; + + @Override + protected Widget doOnResourceLoad(Resource resource) { + return new HTML("This is a sample of viewer"); + } + +}
\ No newline at end of file diff --git a/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ws/RubyWebService.java b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ws/RubyWebService.java new file mode 100644 index 00000000000..5ae5ebc7044 --- /dev/null +++ b/tests/integration/sonar-it-reference-plugin/src/main/java/itests/ws/RubyWebService.java @@ -0,0 +1,36 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2009 SonarSource SA + * 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 itests.ws; + +import org.sonar.api.web.AbstractRubyTemplate; +import org.sonar.api.web.RubyRailsWebservice; + +public class RubyWebService extends AbstractRubyTemplate implements RubyRailsWebservice { + + @Override + public String getTemplatePath() { + return "/itests/ws/ruby_ws_controller.rb"; + } + + public String getId() { + return "RubyWebService"; + } + +} |