From 6cb6441667e0df730353d335f2b7eb8ca8eb2f7e Mon Sep 17 00:00:00 2001
From: anttil <anttil>
Date: Wed, 3 Oct 2012 10:55:37 +0000
Subject: [PATCH] SWE-2 / SP-314 : Broke tests to multiple suites

SVN: 26946
---
 .../application/GuiApplicationRunner.java     |   2 +-
 .../{suite => infra/dsl}/SeleniumTest.java    |  15 +-
 .../{WebElementProxy.java => LazyLoader.java} |  23 +--
 .../uitest/infra/webdriver/PageProxy.java     | 132 ++++--------------
 .../uitest/infra/webdriver/WidgetContext.java |   2 +-
 .../uitest/page/tab/RegisterExperiment.java   |   2 +-
 .../AuthenticationTest.java}                  |   5 +-
 .../uitest/suite/{ => main}/DataSetTest.java  |   3 +-
 .../suite/{ => main}/ExperimentTest.java      |   3 +-
 .../suite/{ => main}/ExperimentTypeTest.java  |   3 +-
 .../uitest/suite/{ => main}/ProjectTest.java  |   3 +-
 .../PropertyTypeAssignmentTest.java           |   3 +-
 .../suite/{ => main}/PropertyTypeTest.java    |   3 +-
 .../uitest/suite/{ => main}/SampleTest.java   |   3 +-
 .../suite/{ => main}/SampleTypeTest.java      |   3 +-
 .../uitest/suite/{ => main}/SpaceTest.java    |   3 +-
 .../suite/{ => main}/VocabularyTest.java      |   3 +-
 .../uitest/suite/{ => sprint}/SprintTest.java |   5 +-
 .../cisd/openbis/uitest/widget/DropDown.java  |   2 +-
 .../cisd/openbis/uitest/widget/Grid.java      |   2 +-
 ui-test/source/java/tests.xml                 |  14 +-
 21 files changed, 98 insertions(+), 136 deletions(-)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/{suite => infra/dsl}/SeleniumTest.java (97%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/{WebElementProxy.java => LazyLoader.java} (73%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{AuthorizationTest.java => authentication/AuthenticationTest.java} (89%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/DataSetTest.java (92%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/ExperimentTest.java (93%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/ExperimentTypeTest.java (80%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/ProjectTest.java (78%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/PropertyTypeAssignmentTest.java (94%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/PropertyTypeTest.java (90%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/SampleTest.java (96%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/SampleTypeTest.java (94%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/SpaceTest.java (84%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => main}/VocabularyTest.java (79%)
 rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/{ => sprint}/SprintTest.java (97%)

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 16359bb2fdf..e0a4e8ccba8 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
@@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit;
 
 import org.openqa.selenium.NoSuchElementException;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.infra.uid.UidGenerator;
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.PageProxy;
 import ch.systemsx.cisd.openbis.uitest.page.dialog.AddExperimentTypeDialog;
@@ -54,7 +55,6 @@ import ch.systemsx.cisd.openbis.uitest.page.tab.SampleTypeBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.SpaceBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.Trash;
 import ch.systemsx.cisd.openbis.uitest.page.tab.VocabularyBrowser;
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.Browsable;
 import ch.systemsx.cisd.openbis.uitest.type.DataSet;
 import ch.systemsx.cisd.openbis.uitest.type.DataSetType;
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/infra/dsl/SeleniumTest.java
similarity index 97%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SeleniumTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/dsl/SeleniumTest.java
index af1957b42e2..247f47307d2 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SeleniumTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/dsl/SeleniumTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.infra.dsl;
 
 import static org.hamcrest.CoreMatchers.not;
 
@@ -30,17 +30,16 @@ import org.openqa.selenium.Dimension;
 import org.openqa.selenium.TakesScreenshot;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.firefox.FirefoxDriver;
-import org.testng.annotations.AfterGroups;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeGroups;
+import org.testng.annotations.AfterTest;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.BeforeSuite;
+import org.testng.annotations.BeforeTest;
 
 import ch.systemsx.cisd.openbis.uitest.infra.application.ApplicationRunner;
 import ch.systemsx.cisd.openbis.uitest.infra.application.GuiApplicationRunner;
 import ch.systemsx.cisd.openbis.uitest.infra.application.PublicApiApplicationRunner;
-import ch.systemsx.cisd.openbis.uitest.infra.dsl.DslSampleBrowser;
 import ch.systemsx.cisd.openbis.uitest.infra.matcher.CellContentMatcher;
 import ch.systemsx.cisd.openbis.uitest.infra.matcher.CollectionContainsMatcher;
 import ch.systemsx.cisd.openbis.uitest.infra.matcher.CurrentPageMatcher;
@@ -166,9 +165,11 @@ public abstract class SeleniumTest
         driver.quit();
     }
 
-    @BeforeGroups(groups = "login-admin")
+    @BeforeTest(groups =
+        { "login-admin", "sprint-test" })
     public void loginAsAdmin()
     {
+        System.out.println("LOGIN");
         this.openbis = new GuiApplicationRunner(new PageProxy(new ScreenShotter()
             {
                 @Override
@@ -183,9 +184,11 @@ public abstract class SeleniumTest
         openbisApi.login(ADMIN_USER, ADMIN_PASSWORD);
     }
 
-    @AfterGroups(groups = "login-admin")
+    @AfterTest(groups =
+        { "login-admin", "sprint-test" })
     public void logout()
     {
+        System.out.println("LOGOUT!");
         this.openbis = new GuiApplicationRunner(new PageProxy(new ScreenShotter()
             {
                 @Override
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WebElementProxy.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/LazyLoader.java
similarity index 73%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WebElementProxy.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/LazyLoader.java
index bf6472d69e3..d11bada1195 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WebElementProxy.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/LazyLoader.java
@@ -23,25 +23,27 @@ import java.lang.reflect.Method;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 
-public class WebElementProxy implements InvocationHandler
+public class LazyLoader implements InvocationHandler
 {
 
     private String id;
 
     private String tag;
 
+    private WebElement element;
+
     public static Object newInstance(String id, String tag)
     {
         return java.lang.reflect.Proxy.newProxyInstance(
                 WebElement.class.getClassLoader(),
                 new Class<?>[]
                     { WebElement.class },
-                new WebElementProxy(id, tag));
+                new LazyLoader(id, tag));
     }
 
-    private WebElementProxy(String id, String tag)
+    private LazyLoader(String id, String tag)
     {
         this.id = id;
         this.tag = tag;
@@ -52,12 +54,17 @@ public class WebElementProxy implements InvocationHandler
     {
         try
         {
-            WebElement e = SeleniumTest.driver.findElement(By.id(id));
-            if (tag != null && !tag.equals(e.getTagName()))
+            if (element == null)
             {
-                e = e.findElement(By.xpath(".//" + tag));
+                WebElement e = SeleniumTest.driver.findElement(By.id(id));
+                if (tag != null && !tag.equals(e.getTagName()))
+                {
+                    e = e.findElement(By.xpath(".//" + tag));
+                }
+
+                element = e;
             }
-            return m.invoke(e, args);
+            return m.invoke(element, args);
         } catch (InvocationTargetException e)
         {
             throw e.getTargetException();
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 2d71071e74f..557447b710f 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
@@ -17,18 +17,12 @@
 package ch.systemsx.cisd.openbis.uitest.infra.webdriver;
 
 import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import javassist.util.proxy.MethodHandler;
-import javassist.util.proxy.ProxyFactory;
 
 import org.openqa.selenium.By;
-import org.openqa.selenium.StaleElementReferenceException;
 import org.openqa.selenium.WebElement;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.infra.screenshot.ScreenShotter;
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.widget.AtomicWidget;
 import ch.systemsx.cisd.openbis.uitest.widget.Widget;
 
@@ -47,71 +41,17 @@ public class PageProxy
     @SuppressWarnings("unchecked")
     public <T> T get(final Class<T> clazz)
     {
-
-        ProxyFactory factory = new ProxyFactory();
-        factory.setSuperclass(clazz);
-
-        MethodHandler handler = new MethodHandler()
-            {
-                @Override
-                public Object invoke(Object self, Method thisMethod, Method proceed, Object[] args)
-                        throws Throwable
-                {
-                    try
-                    {
-                        return proceed.invoke(self, args);
-                    } catch (InvocationTargetException e)
-                    {
-                        if (e.getTargetException() instanceof StaleElementReferenceException)
-                        {
-                            initLocateFields(clazz, (T) self);
-                            return proceed.invoke(self, args);
-                        } else
-                        {
-                            throw e.getTargetException();
-                        }
-                    }
-                }
-            };
-
-        T t;
         try
         {
-            t = (T) factory.create(new Class<?>[0], new Object[0], handler);
-        } catch (IllegalArgumentException ex1)
-        {
-            throw new RuntimeException(ex1);
-        } catch (NoSuchMethodException ex1)
-        {
-            throw new RuntimeException(ex1);
-        } catch (InstantiationException ex1)
-        {
-            throw new RuntimeException(ex1);
-        } catch (IllegalAccessException ex1)
-        {
-            throw new RuntimeException(ex1);
-        } catch (InvocationTargetException ex1)
-        {
-            throw new RuntimeException(ex1);
-        }
-
-        initLocateFields(clazz, t);
+            T t = clazz.newInstance();
 
-        return t;
-    }
-
-    @SuppressWarnings("unchecked")
-    private <T> void initLocateFields(Class<T> clazz, T t)
-    {
-        Class<T> pageClass = clazz;
-        while (pageClass != null)
-        {
-            for (Field field : pageClass.getDeclaredFields())
+            Class<T> pageClass = clazz;
+            while (pageClass != null)
             {
-                Locate locate = field.getAnnotation(Locate.class);
-                if (locate != null)
+                for (Field field : pageClass.getDeclaredFields())
                 {
-                    try
+                    Locate locate = field.getAnnotation(Locate.class);
+                    if (locate != null)
                     {
                         field.setAccessible(true);
                         Widget widget = (Widget) field.getType().newInstance();
@@ -126,7 +66,7 @@ public class PageProxy
                         if (field.getAnnotation(Lazy.class) != null)
                         {
                             element =
-                                    (WebElement) WebElementProxy.newInstance(locate.value(),
+                                    (WebElement) LazyLoader.newInstance(locate.value(),
                                             tagName);
                         } else
                         {
@@ -139,46 +79,36 @@ public class PageProxy
 
                         widget.setContext(new WidgetContext(element, shotter));
                         field.set(t, widget);
-                    } catch (IllegalArgumentException ex)
-                    {
-                        // TODO Auto-generated catch block
-                        ex.printStackTrace();
-                        throw ex;
-                    } catch (IllegalAccessException ex)
-                    {
-                        ex.printStackTrace();
-                        throw new RuntimeException(ex);
-                    } catch (InstantiationException ex)
-                    {
-                        // TODO Auto-generated catch block
-                        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)
+                    Context context = field.getAnnotation(Context.class);
+                    if (context != null)
                     {
-                        ex.printStackTrace();
-                        throw new RuntimeException(ex);
+                        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);
+                        }
                     }
                 }
+
+                pageClass = (Class<T>) pageClass.getSuperclass();
             }
 
-            pageClass = (Class<T>) pageClass.getSuperclass();
+            return t;
+        } catch (Exception e)
+        {
+            throw new RuntimeException(e);
         }
     }
 }
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 c7c51b42317..f62203ac6dc 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
@@ -25,8 +25,8 @@ import org.openqa.selenium.Point;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.interactions.Actions;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.infra.screenshot.ScreenShotter;
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.widget.AtomicWidget;
 
 /**
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RegisterExperiment.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RegisterExperiment.java
index e0cb990d065..870edcc3cb8 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RegisterExperiment.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RegisterExperiment.java
@@ -18,9 +18,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab;
 
 import java.util.concurrent.TimeUnit;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Lazy;
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate;
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.Experiment;
 import ch.systemsx.cisd.openbis.uitest.type.ExperimentType;
 import ch.systemsx.cisd.openbis.uitest.type.Sample;
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/AuthorizationTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/authentication/AuthenticationTest.java
similarity index 89%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/AuthorizationTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/authentication/AuthenticationTest.java
index 7a255b1632f..ad22bab8352 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/AuthorizationTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/authentication/AuthenticationTest.java
@@ -1,10 +1,11 @@
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.authentication;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.page.dialog.InvalidPasswordDialog;
 import ch.systemsx.cisd.openbis.uitest.page.menu.AdminMenu;
 import ch.systemsx.cisd.openbis.uitest.page.menu.TopBar;
@@ -12,7 +13,7 @@ import ch.systemsx.cisd.openbis.uitest.page.tab.RoleAssignmentBrowser;
 
 @Test(groups =
     { "no-login" })
-public class AuthorizationTest extends SeleniumTest
+public class AuthenticationTest extends SeleniumTest
 {
 
     @Test
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/main/DataSetTest.java
similarity index 92%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/DataSetTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/DataSetTest.java
index 9c22e1e7d67..876579c6732 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/main/DataSetTest.java
@@ -14,10 +14,11 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.DataSet;
 import ch.systemsx.cisd.openbis.uitest.type.Experiment;
 import ch.systemsx.cisd.openbis.uitest.type.Sample;
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ExperimentTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ExperimentTest.java
similarity index 93%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ExperimentTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ExperimentTest.java
index 8bd43edf472..e406f65f55f 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ExperimentTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ExperimentTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.Experiment;
 import ch.systemsx.cisd.openbis.uitest.type.Project;
 import ch.systemsx.cisd.openbis.uitest.type.Sample;
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ExperimentTypeTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ExperimentTypeTest.java
similarity index 80%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ExperimentTypeTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ExperimentTypeTest.java
index 492f1116360..3df66a899ac 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ExperimentTypeTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ExperimentTypeTest.java
@@ -1,9 +1,10 @@
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.ExperimentType;
 
 @Test(groups =
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ProjectTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ProjectTest.java
similarity index 78%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ProjectTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ProjectTest.java
index 81e57ad8d45..b11ffc657ab 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/ProjectTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/ProjectTest.java
@@ -1,9 +1,10 @@
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.Project;
 
 @Test(groups =
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/PropertyTypeAssignmentTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/PropertyTypeAssignmentTest.java
similarity index 94%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/PropertyTypeAssignmentTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/PropertyTypeAssignmentTest.java
index d6e4338c6bb..30ab5f44293 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/PropertyTypeAssignmentTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/PropertyTypeAssignmentTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.PropertyType;
 import ch.systemsx.cisd.openbis.uitest.type.PropertyTypeAssignment;
 import ch.systemsx.cisd.openbis.uitest.type.Sample;
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/PropertyTypeTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/PropertyTypeTest.java
similarity index 90%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/PropertyTypeTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/PropertyTypeTest.java
index 722f3034225..c9e19480c51 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/PropertyTypeTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/PropertyTypeTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.PropertyType;
 
 /**
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SampleTest.java
similarity index 96%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SampleTest.java
index e3fab77404c..efac6d85932 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SampleTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.PropertyType;
 import ch.systemsx.cisd.openbis.uitest.type.Sample;
 import ch.systemsx.cisd.openbis.uitest.type.SampleType;
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/main/SampleTypeTest.java
similarity index 94%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SampleTypeTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SampleTypeTest.java
index 267de63cfb2..18662623aa5 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/main/SampleTypeTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.page.dialog.AddSampleTypeDialog;
 import ch.systemsx.cisd.openbis.uitest.type.SampleType;
 
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SpaceTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SpaceTest.java
similarity index 84%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SpaceTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SpaceTest.java
index 8a510a4abe5..4c5e88d7bd6 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SpaceTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/SpaceTest.java
@@ -1,9 +1,10 @@
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.Space;
 
 @Test(groups =
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/VocabularyTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/VocabularyTest.java
similarity index 79%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/VocabularyTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/VocabularyTest.java
index bdbce6eb4ab..5e7d349f75b 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/VocabularyTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/main/VocabularyTest.java
@@ -1,9 +1,10 @@
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.main;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.type.Vocabulary;
 
 @Test(groups =
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SprintTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/sprint/SprintTest.java
similarity index 97%
rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SprintTest.java
rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/sprint/SprintTest.java
index 2e849172abe..301616cfe4d 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/SprintTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/suite/sprint/SprintTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package ch.systemsx.cisd.openbis.uitest.suite;
+package ch.systemsx.cisd.openbis.uitest.suite.sprint;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 
 import org.testng.annotations.Test;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.page.dialog.AddSampleTypeDialog;
 import ch.systemsx.cisd.openbis.uitest.page.menu.AdminMenu;
 import ch.systemsx.cisd.openbis.uitest.page.menu.TopBar;
@@ -37,7 +38,7 @@ import ch.systemsx.cisd.openbis.uitest.type.Vocabulary;
  * @author anttil
  */
 @Test(groups =
-    { "login-admin" })
+    { "sprint-test" })
 public class SprintTest extends SeleniumTest
 {
 
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 e777021d776..bdf3b8e1781 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
@@ -25,8 +25,8 @@ import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.interactions.Actions;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WidgetContext;
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
 
 /**
  * @author anttil
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 39b1d3ac33d..3928e57776c 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
@@ -25,10 +25,10 @@ import java.util.concurrent.TimeUnit;
 import org.openqa.selenium.By;
 import org.openqa.selenium.WebElement;
 
+import ch.systemsx.cisd.openbis.uitest.infra.dsl.SeleniumTest;
 import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WidgetContext;
 import ch.systemsx.cisd.openbis.uitest.page.tab.BrowserCell;
 import ch.systemsx.cisd.openbis.uitest.page.tab.BrowserRow;
-import ch.systemsx.cisd.openbis.uitest.suite.SeleniumTest;
 
 /**
  * @author anttil
diff --git a/ui-test/source/java/tests.xml b/ui-test/source/java/tests.xml
index 519f62ac4d2..d18eef456ea 100644
--- a/ui-test/source/java/tests.xml
+++ b/ui-test/source/java/tests.xml
@@ -1,7 +1,17 @@
 <suite name="All" verbose="2" >
-  <test name="All" annotations="JDK">
+  <test name="Main" annotations="JDK">
     <packages>
-      <package name="ch.systemsx.cisd.openbis.uitest.suite.*" />
+      <package name="ch.systemsx.cisd.openbis.uitest.suite.main.*" />
+    </packages>
+  </test>
+  <test name="Sprint" annotations="JDK">
+    <packages>
+      <package name="ch.systemsx.cisd.openbis.uitest.suite.sprint.*" />
+    </packages>
+  </test>
+  <test name="Authentication" annotations="JDK">
+    <packages>
+      <package name="ch.systemsx.cisd.openbis.uitest.suite.authentication.*" />
     </packages>
   </test>
 </suite>
-- 
GitLab