From 7be040c3ecface45e8143580f19ea45d4643ee5b Mon Sep 17 00:00:00 2001
From: anttil <anttil>
Date: Wed, 26 Sep 2012 15:16:05 +0000
Subject: [PATCH] SWE-2 / SP-263: Fix Hudson run

SVN: 26826
---
 .../uitest/infra/webdriver/WidgetContext.java     |  5 +++++
 .../cisd/openbis/uitest/suite/SampleTypeTest.java |  2 +-
 .../cisd/openbis/uitest/suite/SeleniumTest.java   | 13 +++++++++++--
 .../cisd/openbis/uitest/widget/DropDown.java      |  9 ++++++++-
 .../systemsx/cisd/openbis/uitest/widget/Text.java | 15 ++++++++++++++-
 5 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WidgetContext.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WidgetContext.java
index f520d771c13..50da9ad351a 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WidgetContext.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WidgetContext.java
@@ -43,6 +43,11 @@ public class WidgetContext
         element.click();
     }
 
+    public boolean isInteractable()
+    {
+        return element.isDisplayed() && element.isEnabled();
+    }
+
     public String getAttribute(String key)
     {
         return element.getAttribute(key);
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTypeTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTypeTest.java
index b6718c197f4..0a1cae21676 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTypeTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTypeTest.java
@@ -57,7 +57,7 @@ public class SampleTypeTest extends SeleniumTest
         assertThat(sampleBrowser(), doesNotShowInToolBar(sampleType));
     }
 
-    @Test(enabled = false)
+    @Test
     public void changingSampleTypeToBeListableMakesItVisibleInSampleBrowserDropDownMenu()
     {
         SampleType sampleType = create(aSampleType().thatIsNotListable());
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SeleniumTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SeleniumTest.java
index 53f00be5167..c4e56016f36 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SeleniumTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SeleniumTest.java
@@ -18,12 +18,14 @@ package ch.systemsx.cisd.openbis.uitest.suite;
 
 import static org.hamcrest.CoreMatchers.not;
 
+import java.awt.Toolkit;
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.util.concurrent.TimeUnit;
 
 import org.hamcrest.Matcher;
+import org.openqa.selenium.Dimension;
 import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.firefox.FirefoxDriver;
@@ -89,7 +91,7 @@ import ch.systemsx.cisd.openbis.uitest.type.VocabularyBuilder;
 
 public abstract class SeleniumTest
 {
-    public static int IMPLICIT_WAIT = 20;
+    public static int IMPLICIT_WAIT = 30;
 
     public static String ADMIN_USER = "selenium";
 
@@ -105,7 +107,7 @@ public abstract class SeleniumTest
 
     protected GuiApplicationRunner openbis;
 
-    private ApplicationRunner openbisApi;
+    private static ApplicationRunner openbisApi;
 
     @BeforeSuite
     public void initWebDriver() throws Exception
@@ -144,6 +146,13 @@ public abstract class SeleniumTest
         setImplicitWaitToDefault();
         delete(new File("targets/dist"));
         driver.manage().deleteAllCookies();
+
+        Toolkit toolkit = Toolkit.getDefaultToolkit();
+        Dimension screenResolution =
+                new Dimension((int) toolkit.getScreenSize().getWidth(), (int) toolkit
+                        .getScreenSize().getHeight());
+        driver.manage().window().setSize(screenResolution);
+
         driver.get(startPage);
 
         uid = new DictionaryUidGenerator(new File("resource/corncob_lowercase.txt"));
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DropDown.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DropDown.java
index 72fd3dbaa96..e777021d776 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DropDown.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DropDown.java
@@ -74,7 +74,14 @@ public class DropDown implements AtomicWidget, Fillable
     private List<WebElement> getChoiceElements()
     {
         context.click();
-        return SeleniumTest.driver.findElements(By.className("x-combo-list-item"));
+        List<WebElement> wlist =
+                SeleniumTest.driver.findElements(By.className("x-combo-list-item"));
+        if (wlist.size() == 0)
+        {
+            System.out.println("dropdown retry");
+            return getChoiceElements();
+        }
+        return wlist;
     }
 
     @Override
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Text.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Text.java
index 625a3d5e6bb..b707344d499 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Text.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Text.java
@@ -18,7 +18,6 @@ package ch.systemsx.cisd.openbis.uitest.widget;
 
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WidgetContext;
 
-
 /**
  * @author anttil
  */
@@ -39,6 +38,20 @@ public class Text implements AtomicWidget, Fillable
 
     public void append(String text)
     {
+        if (context.isInteractable() == false)
+        {
+            System.out.println("text retry");
+            try
+            {
+                Thread.sleep(500);
+            } catch (InterruptedException ex)
+            {
+                // TODO Auto-generated catch block
+                ex.printStackTrace();
+            }
+            append(text);
+            return;
+        }
         context.sendKeys(text);
     }
 
-- 
GitLab