aboutsummaryrefslogtreecommitdiffstats
path: root/tests/integration/sonar-it-reference-plugin/src/main/java/itests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/sonar-it-reference-plugin/src/main/java/itests')
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/ITestsPlugin.java71
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/SampleSensor.java54
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/ServerSideExtensionUsingExternalDependency.java32
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/footer/SampleFooter.java28
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/languages/LanguageWithoutRulesEngine.java43
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/GwtSamplePage.java36
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/RubyApiTestsPage.java43
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/page/client/GwtModule.java34
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/SampleResourceTab.java37
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/resourcetab/client/GwtSampleResourceTab.java35
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/java/itests/ws/RubyWebService.java36
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";
+ }
+
+}