aboutsummaryrefslogtreecommitdiffstats
path: root/tests/integration/sonar-it-reference-plugin
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2010-11-08 15:10:44 +0000
committersimonbrandhof <simon.brandhof@gmail.com>2010-11-08 15:10:44 +0000
commit5b8fdc0fefa57b102971e073208955003c0e6f3c (patch)
tree17851978750de206d6ac7ad1d1acde736afa492b /tests/integration/sonar-it-reference-plugin
parent4da46394fddf9e62501f274d4f92188b0557d0ae (diff)
downloadsonarqube-5b8fdc0fefa57b102971e073208955003c0e6f3c.tar.gz
sonarqube-5b8fdc0fefa57b102971e073208955003c0e6f3c.zip
improve integration tests: rename the reference plugin with standard convention of artifact ids
Diffstat (limited to 'tests/integration/sonar-it-reference-plugin')
-rw-r--r--tests/integration/sonar-it-reference-plugin/pom.xml139
-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
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/GwtModule.gwt.xml10
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/ruby_api_tests_page.html.erb34
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/GwtSampleResourceTab.gwt.xml10
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/public/sample.html37
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/resources/itests/ws/ruby_ws_controller.rb32
-rw-r--r--tests/integration/sonar-it-reference-plugin/src/main/resources/static/file.html5
18 files changed, 716 insertions, 0 deletions
diff --git a/tests/integration/sonar-it-reference-plugin/pom.xml b/tests/integration/sonar-it-reference-plugin/pom.xml
new file mode 100644
index 00000000000..3e256ae9fbe
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/pom.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.codehaus.sonar.tests</groupId>
+ <artifactId>integration</artifactId>
+ <version>2.4-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>sonar-it-reference-plugin</artifactId>
+ <name>Sonar :: Integration Tests :: Reference Plugin</name>
+ <packaging>sonar-plugin</packaging>
+ <description>My Sonar plugin</description>
+
+ <licenses>
+ <license>
+ <name>LGPL 3</name>
+ </license>
+ </licenses>
+
+ <organization>
+ <name>SonarSource</name>
+ <url>http://www.sonarsource.org</url>
+ </organization>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.sonar</groupId>
+ <artifactId>sonar-plugin-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.sonar</groupId>
+ <artifactId>sonar-gwt-api</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+
+ <!-- required dependencies which are not provided by sonar -->
+ <dependency>
+ <groupId>commons-i18n</groupId>
+ <artifactId>commons-i18n</artifactId>
+ <version>0.5</version>
+ </dependency>
+
+ <!-- external dependencies -->
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>2.0.7</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>2.0.7</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>2.0.7</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- only for GWT extensions -->
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-user</artifactId>
+ <version>2.0.3</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.gwt</groupId>
+ <artifactId>gwt-incubator</artifactId>
+ <version>2.0.1</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- unit tests -->
+ <dependency>
+ <groupId>org.codehaus.sonar</groupId>
+ <artifactId>sonar-testing-harness</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.sonar</groupId>
+ <artifactId>sonar-packaging-maven-plugin</artifactId>
+ <version>0.4</version>
+ <extensions>true</extensions>
+ <configuration>
+ <pluginClass>itests.ITestsPlugin</pluginClass>
+ </configuration>
+ </plugin>
+
+ <plugin>
+ <!-- build GWT extensions -->
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>gwt-maven-plugin</artifactId>
+ <version>1.2</version>
+ <executions>
+ <execution>
+ <configuration>
+ <modules>
+ <module>itests.resourcetab.GwtSampleResourceTab</module>
+ <module>itests.page.GwtModule</module>
+ </modules>
+ <webappDirectory>${project.build.directory}/classes</webappDirectory>
+
+ <!-- do not break on two lines -->
+ <extraJvmArgs>-Xmx512m -Dgwt.jjs.permutationWorkerFactory=com.google.gwt.dev.ThreadedPermutationWorkerFactory</extraJvmArgs>
+ </configuration>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <!-- Java 1.5 -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ <encoding>UTF-8</encoding>
+ </configuration>
+ </plugin>
+
+ </plugins>
+ </build>
+</project>
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";
+ }
+
+}
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/GwtModule.gwt.xml b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/GwtModule.gwt.xml
new file mode 100644
index 00000000000..9046f23e85e
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/GwtModule.gwt.xml
@@ -0,0 +1,10 @@
+<module>
+
+ <inherits name='com.google.gwt.user.User'/>
+ <inherits name="com.google.gwt.json.JSON"/>
+ <inherits name="com.google.gwt.http.HTTP"/>
+ <inherits name="org.sonar.Sonar"/>
+
+ <entry-point class='itests.page.client.GwtModule'/>
+
+</module>
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/ruby_api_tests_page.html.erb b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/ruby_api_tests_page.html.erb
new file mode 100644
index 00000000000..8326ef10ebf
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/page/ruby_api_tests_page.html.erb
@@ -0,0 +1,34 @@
+<h1>Ruby API tests</h1>
+
+
+<% success=true %>
+
+<% if logged_in? %>
+ <h2>User Properties</h2>
+ <ul id="user_properties">
+ <%
+ current_user.set_property({:prop_key => 'foo', :text_value => 'bar'})
+ test=current_user.property_value('foo')=='bar'
+ success&=test
+ %>
+ <li>create: <%= 'OK' if test -%></li>
+
+ <%
+ current_user.delete_property('foo')
+ test=current_user.property('foo').nil?
+ success&=test
+ %>
+ <li>delete: <%= 'OK' if test -%></li>
+
+ <%
+ current_user.set_property({:prop_key => 'foo', :text_value => 'bar'})
+ current_user.set_property({:prop_key => 'foo', :text_value => 'newbar'})
+ test=current_user.property_value('foo')=='newbar'
+ success&=test
+ %>
+ <li>update: <%= 'OK' if test -%></li>
+ </ul>
+<% end %>
+
+<br/>
+<p>Result: <span id="result"><%= success ? 'OK' : 'FAIL' %></span></p> \ No newline at end of file
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/GwtSampleResourceTab.gwt.xml b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/GwtSampleResourceTab.gwt.xml
new file mode 100644
index 00000000000..5c6f660ab10
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/GwtSampleResourceTab.gwt.xml
@@ -0,0 +1,10 @@
+<module>
+
+ <inherits name='com.google.gwt.user.User'/>
+ <inherits name="com.google.gwt.json.JSON"/>
+ <inherits name="com.google.gwt.http.HTTP"/>
+ <inherits name="org.sonar.Sonar"/>
+
+ <entry-point class='itests.resourcetab.client.GwtSampleResourceTab'/>
+
+</module>
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/public/sample.html b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/public/sample.html
new file mode 100644
index 00000000000..6aecf69f757
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/resourcetab/public/sample.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <title>Metrics</title>
+ <link href="http://localhost:9000/dev/stylesheets/reset-fonts-grids-2.2.2.css" media="all" rel="Stylesheet" type="text/css" />
+ <link href="http://localhost:9000/dev/stylesheets/style.css" media="all" rel="Stylesheet" type="text/css" />
+ <link href="http://localhost:9000/dev/stylesheets/style-gwt.css" media="all" rel="Stylesheet" type="text/css" />
+ <script src="http://localhost:9000/dev/javascripts/application.js" type="text/javascript"></script>
+ <script src="http://localhost:9000/dev/javascripts/prototype.js" type="text/javascript"></script>
+ <script src="http://localhost:9000/dev/javascripts/scriptaculous.js" type="text/javascript"></script>
+</head>
+
+<body>
+<script type="text/javascript">
+var config = {
+ "sonar_url": "http://localhost:9000/dev",
+ "sourceviewer_source_key": "org.sonar.samples:main-sample:org.sonar.samples.ClassUnderTest"
+};
+var sourceviewers = {
+ "Sample": "itests.sourceviewer.GwtSampleSourceViewer"
+};
+</script>
+<div class="error" id="error" style="display:none"><span id="errormsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('error').hide();return false;">hide</a>]</div>
+<div class="warning" id="warning" style="display:none"><span id="warningmsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('warning').hide();return false;">hide</a>]</div>
+<div class="notice" id="info" style="display:none"><span id="infomsg"></span> &nbsp;&nbsp;[<a href="#" onclick="javascript:$('info').hide();return false;">hide</a>]</div>
+
+
+<a href="#" onclick="load_itests_sourceviewer_GwtSampleSourceViewer();">load source</a>
+
+
+<div id="sourceviewers"></div>
+<script type="text/javascript" language="javascript" src="itests.sourceviewer.GwtSampleSourceViewer.nocache.js"></script>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/ws/ruby_ws_controller.rb b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/ws/ruby_ws_controller.rb
new file mode 100644
index 00000000000..e48166dc4bb
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/src/main/resources/itests/ws/ruby_ws_controller.rb
@@ -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
+#
+class Api::RubyWebServiceController < Api::RestController
+
+ def custom_method
+ render :text => "Custom method output"
+ end
+
+ private
+
+ def rest_call
+ render :text => "Rest method output"
+ end
+
+end \ No newline at end of file
diff --git a/tests/integration/sonar-it-reference-plugin/src/main/resources/static/file.html b/tests/integration/sonar-it-reference-plugin/src/main/resources/static/file.html
new file mode 100644
index 00000000000..5ae990c1af3
--- /dev/null
+++ b/tests/integration/sonar-it-reference-plugin/src/main/resources/static/file.html
@@ -0,0 +1,5 @@
+<html>
+<body>
+Text from static resource
+</body>
+</html>