From cef16d01e92dae4fd770ac3e694aea5adf05f7f1 Mon Sep 17 00:00:00 2001
From: anttil <anttil>
Date: Tue, 2 Oct 2012 13:38:00 +0000
Subject: [PATCH] SWE-2 / SP-314 : Static tab browsing implemented, some
 cleanup on web element waits.

SVN: 26939
---
 .../application/GuiApplicationRunner.java     | 163 +++++++++++++-----
 .../uitest/infra/webdriver/Context.java       |  28 +++
 .../uitest/infra/webdriver/PageProxy.java     |  21 +++
 .../cisd/openbis/uitest/page/menu/TabBar.java |  44 +++++
 .../cisd/openbis/uitest/page/tab/Browser.java |  29 ++++
 .../openbis/uitest/suite/DataSetTest.java     |   2 +
 .../openbis/uitest/suite/SeleniumTest.java    |   2 +-
 .../openbis/uitest/widget/FilterToolBar.java  |  16 +-
 .../cisd/openbis/uitest/widget/Grid.java      |  16 +-
 .../openbis/uitest/widget/PagingToolBar.java  |  28 +--
 .../cisd/openbis/uitest/widget/Text.java      |  14 --
 11 files changed, 263 insertions(+), 100 deletions(-)
 create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Context.java
 create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TabBar.java

diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/application/GuiApplicationRunner.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/application/GuiApplicationRunner.java
index fa473763211..e9b5592044c 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/application/GuiApplicationRunner.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/application/GuiApplicationRunner.java
@@ -28,6 +28,7 @@ import ch.systemsx.cisd.openbis.uitest.page.dialog.EditSampleTypeDialog;
 import ch.systemsx.cisd.openbis.uitest.page.menu.AdminMenu;
 import ch.systemsx.cisd.openbis.uitest.page.menu.BrowseMenu;
 import ch.systemsx.cisd.openbis.uitest.page.menu.NewMenu;
+import ch.systemsx.cisd.openbis.uitest.page.menu.TabBar;
 import ch.systemsx.cisd.openbis.uitest.page.menu.TopBar;
 import ch.systemsx.cisd.openbis.uitest.page.menu.UserMenu;
 import ch.systemsx.cisd.openbis.uitest.page.tab.AddPropertyType;
@@ -104,6 +105,7 @@ public class GuiApplicationRunner implements ApplicationRunner
         {
             browser.delete();
         }
+        browser.resetFilters();
     }
 
     public void deleteExperimentsFrom(Project project)
@@ -125,6 +127,7 @@ public class GuiApplicationRunner implements ApplicationRunner
         {
             browser.delete();
         }
+        browser.resetFilters();
     }
 
     @Override
@@ -137,6 +140,7 @@ public class GuiApplicationRunner implements ApplicationRunner
         {
             browser.delete();
         }
+        browser.resetFilters();
     }
 
     @Override
@@ -149,6 +153,7 @@ public class GuiApplicationRunner implements ApplicationRunner
         {
             browser.delete();
         }
+        browser.resetFilters();
     }
 
     @Override
@@ -174,6 +179,7 @@ public class GuiApplicationRunner implements ApplicationRunner
         {
             browser.delete();
         }
+        browser.resetFilters();
     }
 
     @Override
@@ -274,6 +280,7 @@ public class GuiApplicationRunner implements ApplicationRunner
         EditSampleTypeDialog dialog = proxy.get(EditSampleTypeDialog.class);
         dialog.fillWith(sampleType);
         dialog.save();
+        browser.resetFilters();
     }
 
     @Override
@@ -356,42 +363,64 @@ public class GuiApplicationRunner implements ApplicationRunner
         load(browserClass).showColumnsOf(browsable);
         load(browserClass).filterTo(browsable);
         List<BrowserRow> rows = load(browserClass).getData();
-        if (rows.size() == 0)
+        try
         {
-            return new BrowserRow();
-        } else if (rows.size() == 1)
+            if (rows.size() == 0)
+            {
+                return new BrowserRow();
+            } else if (rows.size() == 1)
+            {
+                return rows.get(0);
+            } else
+            {
+                throw new IllegalStateException("multiple rows found:\n" + rows);
+            }
+        } finally
         {
-            return rows.get(0);
-        } else
-        {
-            throw new IllegalStateException("multiple rows found:\n" + rows);
+            load(browserClass).resetFilters();
         }
     }
 
     public SampleTypeBrowser browseToSampleTypeBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).sampleTypes();
+        boolean success = load(TabBar.class).selectTab("Sample Types");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).sampleTypes();
+        }
         return getBrowser(SampleTypeBrowser.class);
     }
 
     public ExperimentTypeBrowser browseToExperimentTypeBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).experimentTypes();
+        boolean success = load(TabBar.class).selectTab("Experiment Types");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).experimentTypes();
+        }
         return getBrowser(ExperimentTypeBrowser.class);
     }
 
     public DataSetTypeBrowser browseToDataSetTypeBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).dataSetTypes();
+        boolean success = load(TabBar.class).selectTab("Data Set Types");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).dataSetTypes();
+        }
         return getBrowser(DataSetTypeBrowser.class);
     }
 
     public void emptyTrash()
     {
-        getMenus().trash();
+        boolean success = load(TabBar.class).selectTab("Trash");
+        if (!success)
+        {
+            getMenus().trash();
+        }
         load(Trash.class).empty();
     }
 
@@ -409,15 +438,23 @@ public class GuiApplicationRunner implements ApplicationRunner
 
     public SpaceBrowser browseToSpaceBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).spaces();
+        boolean success = load(TabBar.class).selectTab("Space Browser");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).spaces();
+        }
         return getBrowser(SpaceBrowser.class);
     }
 
     public ProjectBrowser browseToProjectBrowser()
     {
-        getMenus().browse();
-        load(BrowseMenu.class).projects();
+        boolean success = load(TabBar.class).selectTab("Project Browser");
+        if (!success)
+        {
+            getMenus().browse();
+            load(BrowseMenu.class).projects();
+        }
         return getBrowser(ProjectBrowser.class);
     }
 
@@ -429,30 +466,45 @@ public class GuiApplicationRunner implements ApplicationRunner
 
     public SampleBrowser browseToSampleBrowser()
     {
-        getMenus().browse();
-        load(BrowseMenu.class).samples();
-        load(SampleBrowser.class).allSpaces();
+        boolean success = load(TabBar.class).selectTab("Sample Browser");
+        if (!success)
+        {
+            getMenus().browse();
+            load(BrowseMenu.class).samples();
+        }
         return getBrowser(SampleBrowser.class);
     }
 
     public ExperimentBrowser browseToExperimentBrowser()
     {
-        getMenus().browse();
-        load(BrowseMenu.class).experiments();
+        boolean success = load(TabBar.class).selectTab("Experiment Browser");
+        if (!success)
+        {
+            getMenus().browse();
+            load(BrowseMenu.class).experiments();
+        }
         return load(ExperimentBrowser.class);
     }
 
     public RoleAssignmentBrowser browseToRoleAssignmentBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).roles();
+        boolean success = load(TabBar.class).selectTab("Role Assignment Browser");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).roles();
+        }
         return getBrowser(RoleAssignmentBrowser.class);
     }
 
     public VocabularyBrowser browseToVocabularyBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).vocabularies();
+        boolean success = load(TabBar.class).selectTab("Vocabulary Browser");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).vocabularies();
+        }
         return getBrowser(VocabularyBrowser.class);
     }
 
@@ -464,50 +516,78 @@ public class GuiApplicationRunner implements ApplicationRunner
 
     public PropertyTypeBrowser browseToPropertyTypeBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).browsePropertyTypes();
+        boolean success = load(TabBar.class).selectTab("Property Types");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).browsePropertyTypes();
+        }
         return getBrowser(PropertyTypeBrowser.class);
     }
 
     public AddPropertyType browseToAddPropertyType()
     {
-        getMenus().admin();
-        load(AdminMenu.class).newPropertyType();
+        boolean success = load(TabBar.class).selectTab("Property Type Registration");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).newPropertyType();
+        }
         return load(AddPropertyType.class);
     }
 
     public AssignSamplePropertyType browseToAssignSamplePropertyType()
     {
-        getMenus().admin();
-        load(AdminMenu.class).assignPropertyTypeToSampleType();
+        boolean success = load(TabBar.class).selectTab("Assign Sample Property Type");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).assignPropertyTypeToSampleType();
+        }
         return load(AssignSamplePropertyType.class);
     }
 
     public PropertyTypeAssignmentBrowser browseToPropertyTypeAssignmentBrowser()
     {
-        getMenus().admin();
-        load(AdminMenu.class).browsePropertyTypeAssignments();
+        boolean success = load(TabBar.class).selectTab("Property Type Assignments");
+        if (!success)
+        {
+            getMenus().admin();
+            load(AdminMenu.class).browsePropertyTypeAssignments();
+        }
         return getBrowser(PropertyTypeAssignmentBrowser.class);
     }
 
     public RegisterSample browseToRegisterSample()
     {
-        getMenus().newMenu();
-        load(NewMenu.class).sample();
+        boolean success = load(TabBar.class).selectTab("Sample Registration");
+        if (!success)
+        {
+            getMenus().newMenu();
+            load(NewMenu.class).sample();
+        }
         return load(RegisterSample.class);
     }
 
     public RegisterExperiment browseToRegisterExperiment()
     {
-        getMenus().newMenu();
-        load(NewMenu.class).experiment();
+        boolean success = load(TabBar.class).selectTab("Experiment Registration");
+        if (!success)
+        {
+            getMenus().newMenu();
+            load(NewMenu.class).experiment();
+        }
         return load(RegisterExperiment.class);
     }
 
     public RegisterProject browseToRegisterProject()
     {
-        getMenus().newMenu();
-        load(NewMenu.class).project();
+        boolean success = load(TabBar.class).selectTab("Project Registration");
+        if (!success)
+        {
+            getMenus().newMenu();
+            load(NewMenu.class).project();
+        }
         return load(RegisterProject.class);
     }
 
@@ -519,7 +599,6 @@ public class GuiApplicationRunner implements ApplicationRunner
     private <T extends Browser<?>> T getBrowser(Class<T> clazz)
     {
         T browser = load(clazz);
-        browser.resetFilters();
         return browser;
     }
 
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Context.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Context.java
new file mode 100644
index 00000000000..f29277cc043
--- /dev/null
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Context.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright 2012 ETH Zuerich, CISD
+ *
+ * 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 ch.systemsx.cisd.openbis.uitest.infra.webdriver;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Context
+{
+}
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/PageProxy.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/PageProxy.java
index 2d23e32abda..2d71071e74f 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/PageProxy.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/PageProxy.java
@@ -154,6 +154,27 @@ public class PageProxy
                         ex.printStackTrace();
                         throw new RuntimeException(ex);
                     }
+
+                }
+
+                Context context = field.getAnnotation(Context.class);
+                if (context != null)
+                {
+                    field.setAccessible(true);
+                    try
+                    {
+                        field.set(t, new WidgetContext(SeleniumTest.driver.findElement(By
+                                .xpath("/html")),
+                                shotter));
+                    } catch (IllegalArgumentException ex)
+                    {
+                        ex.printStackTrace();
+                        throw new RuntimeException(ex);
+                    } catch (IllegalAccessException ex)
+                    {
+                        ex.printStackTrace();
+                        throw new RuntimeException(ex);
+                    }
                 }
             }
 
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TabBar.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TabBar.java
new file mode 100644
index 00000000000..9dd262a8223
--- /dev/null
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TabBar.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2012 ETH Zuerich, CISD
+ *
+ * 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 ch.systemsx.cisd.openbis.uitest.page.menu;
+
+import org.openqa.selenium.WebElement;
+
+import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Context;
+import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WidgetContext;
+
+public class TabBar
+{
+    @Context
+    private WidgetContext context;
+
+    public boolean selectTab(String label)
+    {
+
+        for (WebElement link : context
+                .findAll("//li[starts-with(@id, 'openbis_main-tab-panel__')]"))
+        {
+            if (link.getText().equals(label))
+            {
+                link.click();
+                return true;
+            }
+        }
+        return false;
+    }
+
+}
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Browser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Browser.java
index 72f7267ee6c..3f108fc0451 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Browser.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Browser.java
@@ -17,6 +17,11 @@
 package ch.systemsx.cisd.openbis.uitest.page.tab;
 
 import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import org.openqa.selenium.support.ui.FluentWait;
+
+import com.google.common.base.Predicate;
 
 import ch.systemsx.cisd.openbis.uitest.type.Browsable;
 import ch.systemsx.cisd.openbis.uitest.widget.FilterToolBar;
@@ -45,18 +50,24 @@ public abstract class Browser<T extends Browsable>
 
     public final void filterTo(T browsable)
     {
+        waitForPagingToolBar();
         getPaging().filters();
         getFilters().setCode(browsable.getCode(), getPaging());
     }
 
     public final void resetFilters()
     {
+        waitForPagingToolBar();
         getPaging().filters();
         getFilters().reset();
     }
 
     public final void showColumnsOf(T browsable)
     {
+        if (getGrid().getColumnNames().containsAll(browsable.getColumns()))
+        {
+            return;
+        }
         getPaging().settings();
         getSettings().showColumnsOf(browsable);
     }
@@ -73,4 +84,22 @@ public abstract class Browser<T extends Browsable>
         return s + getGrid().toString();
     }
 
+    private void waitForPagingToolBar()
+    {
+        new FluentWait<PagingToolBar>(getPaging())
+            {
+
+            }.withTimeout(30, TimeUnit.SECONDS).pollingEvery(100, TimeUnit.MILLISECONDS).until(
+                new Predicate<PagingToolBar>()
+                    {
+
+                        @Override
+                        public boolean apply(PagingToolBar paging)
+                        {
+                            System.out.println("waiting for paging toolbar to get enabled");
+                            return paging.isEnabled();
+                        }
+                    });
+    }
+
 }
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/DataSetTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/DataSetTest.java
index ba77424da99..9c22e1e7d67 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/DataSetTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/DataSetTest.java
@@ -40,6 +40,8 @@ public class DataSetTest extends SeleniumTest
 
         System.out.println(dataset.getCode());
 
+        // assertThat(detailsOf(sample), containsDataSet(dataset));
+
         // assertThat(dataSetBrowserOf(sample), lists(dataset));
     }
 
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 e169579a487..19e778653bf 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
@@ -177,7 +177,7 @@ public abstract class SeleniumTest
             }), uid);
         openbis.login(ADMIN_USER, ADMIN_PASSWORD);
         // this is because of BIS-184
-        openbis.browseToSampleBrowser();
+        openbis.browseToSampleBrowser().allSpaces();
 
         openbisApi.login(ADMIN_USER, ADMIN_PASSWORD);
     }
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/FilterToolBar.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/FilterToolBar.java
index 2966475c37c..7dd52cd5a01 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/FilterToolBar.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/FilterToolBar.java
@@ -40,14 +40,6 @@ public class FilterToolBar implements Widget
                         @Override
                         public Void execute()
                         {
-                            try
-                            {
-                                Thread.sleep(2000);
-                            } catch (InterruptedException ex)
-                            {
-                                // TODO Auto-generated catch block
-                                ex.printStackTrace();
-                            }
                             t.clear();
                             t.sendKeys(text);
                             return null;
@@ -59,13 +51,7 @@ public class FilterToolBar implements Widget
     public void reset()
     {
         WebElement b = context.find(".//button[text()='Reset']");
-        if (b.isEnabled() && b.isDisplayed())
-        {
-            b.click();
-        } else
-        {
-            reset();
-        }
+        b.click();
     }
 
     @Override
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Grid.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Grid.java
index 95195dbc30d..39b1d3ac33d 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Grid.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Grid.java
@@ -93,11 +93,7 @@ public class Grid implements Widget
 
     public List<BrowserRow> getData()
     {
-        List<String> columns = new ArrayList<String>();
-        for (WebElement column : getColumns())
-        {
-            columns.add(column.getText());
-        }
+        List<String> columns = getColumnNames();
 
         List<BrowserRow> result = new ArrayList<BrowserRow>();
         Map<String, BrowserCell> map = new HashMap<String, BrowserCell>();
@@ -118,6 +114,16 @@ public class Grid implements Widget
         return result;
     }
 
+    public List<String> getColumnNames()
+    {
+        List<String> columns = new ArrayList<String>();
+        for (WebElement column : getColumns())
+        {
+            columns.add(column.getText());
+        }
+        return columns;
+    }
+
     private List<WebElement> getColumns()
     {
         return context
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/PagingToolBar.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/PagingToolBar.java
index 0d6ba180be2..820a348bf25 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/PagingToolBar.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/PagingToolBar.java
@@ -16,13 +16,6 @@
 
 package ch.systemsx.cisd.openbis.uitest.widget;
 
-import java.util.concurrent.TimeUnit;
-
-import org.openqa.selenium.WebElement;
-import org.openqa.selenium.support.ui.FluentWait;
-
-import com.google.common.base.Predicate;
-
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WidgetContext;
 
 /**
@@ -45,22 +38,6 @@ public class PagingToolBar implements Widget, Refreshable
     public void settings()
     {
         Button b = context.find(".//button[text()='Settings']", Button.class);
-
-        new FluentWait<WebElement>(context)
-            {
-
-            }.withTimeout(30, TimeUnit.SECONDS).pollingEvery(100, TimeUnit.MILLISECONDS).until(
-                new Predicate<WebElement>()
-                    {
-
-                        @Override
-                        public boolean apply(WebElement element)
-                        {
-                            System.out.println("waiting for paging toolbar to get enabled");
-                            return !context.getAttribute("class").contains("x-item-disabled");
-                        }
-                    });
-
         b.click();
     }
 
@@ -98,4 +75,9 @@ public class PagingToolBar implements Widget, Refreshable
         }
         return result;
     }
+
+    public boolean isEnabled()
+    {
+        return !context.getAttribute("class").contains("x-item-disabled");
+    }
 }
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 b707344d499..2d8655aff46 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
@@ -38,20 +38,6 @@ 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