You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2013/09/28 07:29:59 UTC

svn commit: r1527152 - in /openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium: SeleniumUtils.java TestSeleniumSmokeTest.java

Author: sebawagner
Date: Sat Sep 28 05:29:59 2013
New Revision: 1527152

URL: http://svn.apache.org/r1527152
Log:
OPENMEETINGS-792 Fix test to successfully do install, in case it detects it is not installed yet, timeout for installation wizzard progress is 120seconds, but it will check in 3 second intervals for the link in the complete screen 

Modified:
    openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java
    openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/TestSeleniumSmokeTest.java

Modified: openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java?rev=1527152&r1=1527151&r2=1527152&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java (original)
+++ openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/SeleniumUtils.java Sat Sep 28 05:29:59 2013
@@ -50,6 +50,34 @@ public class SeleniumUtils {
 		WebElement element = SeleniumUtils.findElement(driver, search, true);
 		element.click();
 	}
+	
+	/**
+	 * 
+	 * @param driver
+	 * @param search
+	 * @param throwException
+	 *            under some circumstance you do't want to exit the test here
+	 * @return
+	 * @throws Exception
+	 */
+	public static List<WebElement> findElements(WebDriver driver, String search,
+			boolean throwException) throws Exception {
+		for (int i = 0; i < numberOfRetries; i++) {
+			List<WebElement> elements = _findElement(driver, search);
+			if (elements != null) {
+				return elements;
+			}
+
+			Thread.sleep(defaultSleepInterval);
+		}
+
+		if (throwException) {
+			throw new Exception("Could not find element with specified path "
+					+ search);
+		}
+
+		return null;
+	}
 
 	/**
 	 * 
@@ -63,9 +91,9 @@ public class SeleniumUtils {
 	public static WebElement findElement(WebDriver driver, String search,
 			boolean throwException) throws Exception {
 		for (int i = 0; i < numberOfRetries; i++) {
-			WebElement element = _findElement(driver, search);
-			if (element != null) {
-				return element;
+			List<WebElement> elements = _findElement(driver, search);
+			if (elements != null) {
+				return elements.get(0);
 			}
 
 			Thread.sleep(defaultSleepInterval);
@@ -89,12 +117,15 @@ public class SeleniumUtils {
 		}
 	}
 
-	private static WebElement _findElement(WebDriver driver, String search) {
+	private static List<WebElement> _findElement(WebDriver driver, String search) {
 		for (By by : _getSearchArray(search)) {
 			try {
-				WebElement element = driver.findElement(by);
-				if (element != null) {
-					return element;
+				
+				
+				
+				List<WebElement> elements = driver.findElements(by);
+				if (elements != null && elements.size() > 0) {
+					return elements;
 				}
 			} catch (Exception e) {
 				// Do not show any warnings

Modified: openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/TestSeleniumSmokeTest.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/TestSeleniumSmokeTest.java?rev=1527152&r1=1527151&r2=1527152&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/TestSeleniumSmokeTest.java (original)
+++ openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/selenium/TestSeleniumSmokeTest.java Sat Sep 28 05:29:59 2013
@@ -18,17 +18,19 @@
  */
 package org.apache.openmeetings.test.selenium;
 
+import java.util.List;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.Keys;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.firefox.FirefoxDriver;
 
 public class TestSeleniumSmokeTest {
 
-	public static String BASE_URL = "http://localhost:20080/openmeetings";
+	public static String BASE_URL = "http://localhost:5080/openmeetings";
 	public static String username = "swagner";
 	public static String userpass = "qweqwe";
 	private static final String orgname = "seleniumtest";
@@ -86,9 +88,9 @@ public class TestSeleniumSmokeTest {
 	private void doInstallation() throws Exception {
 		Thread.sleep(3000L);
 		
-		WebElement buttons_next = SeleniumUtils.findElement(driver, "buttons:next", true);
+		List<WebElement> buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
 		
-		((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttons_next);
+		buttons_next.get(1).sendKeys(Keys.RETURN);
 		
 		Thread.sleep(1000L);
 		
@@ -97,39 +99,57 @@ public class TestSeleniumSmokeTest {
 		SeleniumUtils.inputText(driver, "view:cfg.email", email);
 		SeleniumUtils.inputText(driver, "view:cfg.group", orgname);
 		
-		buttons_next = SeleniumUtils.findElement(driver, "buttons:next", true);
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
 		
-		((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttons_next);
+		buttons_next.get(1).sendKeys(Keys.RETURN);
 		
 		Thread.sleep(1000L);
 		
-		buttons_next = SeleniumUtils.findElement(driver, "buttons:next", true);
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
 		
-		((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttons_next);
+		buttons_next.get(1).sendKeys(Keys.RETURN);
 		
 		Thread.sleep(1000L);
 		
-		buttons_next = SeleniumUtils.findElement(driver, "buttons:next", true);
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
 		
-		((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttons_next);
+		buttons_next.get(1).sendKeys(Keys.RETURN);
 		
 		Thread.sleep(1000L);
 		
-		buttons_next = SeleniumUtils.findElement(driver, "buttons:next", true);
+		buttons_next = SeleniumUtils.findElements(driver, "buttons:next", true);
 		
-		((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttons_next);
+		buttons_next.get(1).sendKeys(Keys.RETURN);
 		
-		Thread.sleep(1000L);
+		Thread.sleep(2000L);
+		
+		List<WebElement> elements = SeleniumUtils.findElements(driver, "buttons:finish", true);
 		
-		WebElement buttons_finish = SeleniumUtils.findElement(driver, "buttons:finish", true);
+		elements.get(1).sendKeys(Keys.RETURN);
 		
-		((JavascriptExecutor) driver).executeScript("arguments[0].click();", buttons_finish);
+		long maxMilliSecondsWait = 120000;
 		
-		//Installation takes a while
-		Thread.sleep(30000L);
+		while (maxMilliSecondsWait > 0) {
+			
+			//check if installation is complete by searching for the link on the success page
+			WebElement enterApplicationLink = SeleniumUtils.findElement(driver, 
+								"//a[contains(@href,'install')]", false);
+			
+			if (enterApplicationLink == null) {
+				System.out.println("Installation running - wait 3 more seconds and check again");
+				
+				Thread.sleep(3000L);
+				maxMilliSecondsWait -= 3000;
+			} else {
+				maxMilliSecondsWait = 0;
+				
+				enterApplicationLink.click();
+				
+				return;
+			}
+		}
 		
-		//the ajax loading thing does not work, just goto the main page
-		driver.get(BASE_URL);
+		throw new Exception("Timeout during installation");
 	}
 
 	@After