aboutsummaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorSauli Tähkäpää <sauli@vaadin.com>2014-04-02 08:51:27 +0300
committerJonatan Kronqvist <jonatan@vaadin.com>2014-04-09 05:08:12 +0000
commit5057c59a02b6570f6a314dee3379688f0a48981b (patch)
tree28d2df7c8d84afb2698adf7f6856a3dafab26e3d /uitest
parent08b0589d05e69da58b58c42b96a69c9331fdce25 (diff)
downloadvaadin-framework-5057c59a02b6570f6a314dee3379688f0a48981b.tar.gz
vaadin-framework-5057c59a02b6570f6a314dee3379688f0a48981b.zip
Added integration test for WebSphere Portal. (#13309)
Change-Id: I576fb145cd34f98ffa90657e20f5a7c1854f470c
Diffstat (limited to 'uitest')
-rw-r--r--uitest/integration_tests.xml30
-rw-r--r--uitest/ivy.xml4
-rw-r--r--uitest/src/com/vaadin/tests/integration/WebSpherePortalIntegrationTest.java163
3 files changed, 189 insertions, 8 deletions
diff --git a/uitest/integration_tests.xml b/uitest/integration_tests.xml
index 77c5a94e26..c0d73580bb 100644
--- a/uitest/integration_tests.xml
+++ b/uitest/integration_tests.xml
@@ -114,7 +114,7 @@
<property name="server.report.dir" location="${report.dir}/integration-test-tb3/${server-name}" />
<!-- The junit task does not create the report dir... -->
<mkdir dir="${server.report.dir}" />
-
+
<junit showoutput="no" printsummary="no" fork="yes">
<formatter type="xml" />
<classpath refid="classpath.tb3" />
@@ -123,6 +123,7 @@
<jvmarg value="-Ddeployment.url=${deployment.url}" />
<jvmarg value="-Dserver-name=${server-name}" />
<jvmarg value="-Djava.awt.headless=true" />
+ <jvmarg value="-Ddemo.war=${demo.war}" />
<test name="${junit.test.suite}" todir="${server.report.dir}" />
</junit>
</target>
@@ -343,6 +344,20 @@
</antcall>
</target>
+ <target name="integration-test-websphereportal8">
+ <concat>##teamcity[testStarted name='websphereportal8' flowId='websphereportal8']</concat>
+ <antcall target="run-tb3-test" inheritall="true">
+ <param name="junit.test.suite" value="com.vaadin.tests.integration.WebSpherePortalIntegrationTest" />
+ <param name="server-name" value="websphereportal8" />
+
+ <!-- Fill out dummy values for params required by run-tb3-test target -->
+ <param name="test.integration.server" value="" />
+ <param name="test.integration.user" value="" />
+ <param name="test.integration.antfile" value="" />
+ </antcall>
+ <concat>##teamcity[testFinished name='websphereportal8' flowId='websphereportal8']"</concat>
+ </target>
+
<target name="integration-test-weblogic10">
<antcall target="run-generic-integration-test">
<param name="startDelay" value="600" />
@@ -375,7 +390,7 @@
<antcall target="integration-test-test-GAE" />
</target>
- <!-- Upload demo, clean error screenshots and test deployment on all
+ <!-- Upload demo, clean error screenshots and test deployment on all
servers -->
<target name="integration-test-all" unless="tests.integration.skip">
<property name="passphrase" value="${passphrase}" />
@@ -387,7 +402,7 @@
<parallel>
<antcontrib:trycatch property="tried">
<try>
- <!-- Still running GAE test from the old server which
+ <!-- Still running GAE test from the old server which
requires its own lock -->
<echo message="Getting lock" />
@@ -439,6 +454,7 @@
<antcall target="integration-test-tomcat8" />
<antcall target="integration-test-tomcat7apacheproxy" />
<antcall target="integration-test-websphere8" />
+ <antcall target="integration-test-websphereportal8" />
</parallel>
</target>
@@ -468,11 +484,11 @@
</fileset>
</scp>
- <!-- trycatch probably not needed any more as it just fails with
+ <!-- trycatch probably not needed any more as it just fails with
the original message and doesn't do anything in the finally block -->
<antcontrib:trycatch property="error_message">
<try>
- <!-- timeout in one hour (remote end should timeout in 55
+ <!-- timeout in one hour (remote end should timeout in 55
minutes) -->
<sshexec host="${target-host}" outputproperty="lock-output" timeout="3600000" username="${user}" keyfile="${sshkey.file}" trust="yes" command="chmod +x *.sh; ant -f deploy.xml get-lock" />
<antcall target="echo-prefix">
@@ -515,7 +531,7 @@
</antcontrib:else>
</antcontrib:if>
- <!-- Run theme tests in all browsers if there's a property
+ <!-- Run theme tests in all browsers if there's a property
with the test files -->
<antcontrib:if>
<isset property="testfiles-theme" />
@@ -565,7 +581,7 @@
<target name="teamcity-escape">
<property name="returnTo" value="return" />
- <!-- Should also perform other escaping (\u0085, \u2028 and \u2029)
+ <!-- Should also perform other escaping (\u0085, \u2028 and \u2029)
- see http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity -->
<!-- Immutable properties -> needs to create a new one every time -->
<antcontrib:propertyregex property="details-escaped1" input="${message}" regexp="['|\[\]]" replace="|\0" global="true" defaultValue="${message}" />
diff --git a/uitest/ivy.xml b/uitest/ivy.xml
index 3ed5609319..add29985f1 100644
--- a/uitest/ivy.xml
+++ b/uitest/ivy.xml
@@ -57,7 +57,9 @@
<!-- For compiling TestingWidgetSet -->
<dependency org="com.vaadin" name="vaadin-client-compiler"
- rev="${vaadin.version}" conf="build-provided-> build"></dependency>
+ rev="${vaadin.version}" conf="build-provided-> build">
+ <exclude type="pom" />
+ </dependency>
<!-- Servlet 3.0 API -->
<dependency org="javax.servlet" name="javax.servlet-api"
diff --git a/uitest/src/com/vaadin/tests/integration/WebSpherePortalIntegrationTest.java b/uitest/src/com/vaadin/tests/integration/WebSpherePortalIntegrationTest.java
new file mode 100644
index 0000000000..16c4d80b6e
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/integration/WebSpherePortalIntegrationTest.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.integration;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.support.ui.ExpectedConditions;
+import org.openqa.selenium.support.ui.WebDriverWait;
+
+import com.jcraft.jsch.ChannelExec;
+import com.jcraft.jsch.ChannelSftp;
+import com.jcraft.jsch.JSch;
+import com.jcraft.jsch.JSchException;
+import com.jcraft.jsch.Session;
+import com.jcraft.jsch.SftpException;
+import com.vaadin.tests.tb3.PrivateTB3Configuration;
+
+public class WebSpherePortalIntegrationTest extends PrivateTB3Configuration {
+
+ @BeforeClass
+ public static void deployPortlet() throws JSchException, SftpException {
+ Session session = openSession();
+
+ uploadDemoApplication(session);
+
+ sendCommand(session, "ant -f deploy.xml get-lock startup-and-deploy");
+
+ session.disconnect();
+ }
+
+ private static void uploadDemoApplication(Session session)
+ throws JSchException, SftpException {
+ ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
+ sftpChannel.connect();
+
+ String applicationPath = System.getProperty("demo.war");
+ if (new File(applicationPath).exists()) {
+ sftpChannel.put(applicationPath, "demo.war");
+ sftpChannel.disconnect();
+ } else {
+ sftpChannel.disconnect();
+ throw new AssertionError("Demo application not found at "
+ + applicationPath);
+ }
+ }
+
+ private static void sendCommand(Session session, String command)
+ throws JSchException {
+ ChannelExec channel = (ChannelExec) session.openChannel("exec");
+ channel.setCommand(command);
+ BufferedReader in;
+ try {
+ in = new BufferedReader(new InputStreamReader(
+ channel.getInputStream()));
+
+ channel.connect();
+
+ String msg = null;
+
+ while ((msg = in.readLine()) != null) {
+ System.out.println(msg);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ channel.disconnect();
+ }
+
+ private static Session openSession() throws JSchException {
+ JSch jsch = new JSch();
+ Session session = jsch.getSession("integration",
+ "websphereportal8.devnet.vaadin.com", 22);
+ jsch.addIdentity("~/.ssh/id_dsa");
+ session.setConfig("StrictHostKeyChecking", "no");
+
+ session.connect();
+ return session;
+ }
+
+ @AfterClass
+ public static void teardown() throws JSchException {
+ Session session = openSession();
+
+ sendCommand(session, "ant -f deploy.xml release-lock");
+
+ session.disconnect();
+ }
+
+ @Override
+ protected java.lang.String getTestUrl() {
+ return "http://websphereportal8.devnet.vaadin.com:10039/wps/portal";
+ }
+
+ @Override
+ public void setup() throws Exception {
+ super.setup();
+
+ openTestURL();
+
+ if (!isLoggedIn()) {
+ login();
+ }
+
+ waitUntilPortletIsLoaded();
+ }
+
+ private void waitUntilPortletIsLoaded() {
+ WebDriverWait wait = new WebDriverWait(driver, 15);
+ wait.until(ExpectedConditions.visibilityOfElementLocated(By
+ .className("v-app")));
+ }
+
+ private boolean isLoggedIn() {
+ return driver.findElements(By.linkText("Log Out")).size() == 1;
+ }
+
+ private void login() {
+ driver.findElement(By.linkText("Log In")).click();
+ driver.findElement(By.id("userID")).sendKeys("test");
+ driver.findElement(By.id("password")).sendKeys("testtest");
+
+ hitButton("login.button.login");
+ }
+
+ @Test
+ public void portletHasExpectedLayout() throws IOException {
+ compareScreen("initial");
+ }
+
+ @Test
+ public void viewModeIsSetToEdit() throws IOException {
+ driver.findElement(By.linkText("Edit")).click();
+
+ assertThat(driver.findElement(By.tagName("input")).isEnabled(),
+ is(true));
+
+ }
+
+}