aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests
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/src/com/vaadin/tests
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/src/com/vaadin/tests')
-rw-r--r--uitest/src/com/vaadin/tests/integration/WebSpherePortalIntegrationTest.java163
1 files changed, 163 insertions, 0 deletions
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));
+
+ }
+
+}