diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java
index 7db6fdf26f238bbef356cf08b5814d1bcd6426e9..2e6566fc92a2fc92740aedcb3dcfbd21e8afe828 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/menu/TopMenu.java
@@ -17,6 +17,7 @@
 package ch.systemsx.cisd.openbis.generic.client.web.client.application.menu;
 
 import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.button.Button;
 import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
 import com.extjs.gxt.ui.client.widget.toolbar.FillToolItem;
 import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
@@ -131,7 +132,9 @@ public class TopMenu extends LayoutContainer
         if (viewContext.getModel().getApplicationInfo().getWebClientConfiguration()
                 .getEnableTrash())
         {
-            toolBar.add(new TrashButton(viewContext, componentProvider));
+            Button trash = new TrashButton(viewContext, componentProvider);
+            trash.setId("trash-button");
+            toolBar.add(trash);
         }
         toolBar.add(new AdministrationMenu(viewContext, componentProvider));
         toolBar.add(new LoggedUserMenu(viewContext, componentProvider));
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/DeletionGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/DeletionGrid.java
index cdc5603a698c78ecbf697fe01e8c77f2c3bd133a..0e6c4479dfa8d337952bff7c06c1388e63937f70 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/DeletionGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/DeletionGrid.java
@@ -98,6 +98,7 @@ public class DeletionGrid extends TypedTableGrid<Deletion>
 
         EmptyTrashButton emptyTrashButtonMenu =
                 new EmptyTrashButton(viewContext, createRefreshCallback(asActionInvoker()));
+        emptyTrashButtonMenu.setId("empty-trash-button");
         addButton(emptyTrashButtonMenu);
 
         final Button deletePermanentlyButton =
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/EmptyTrashConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/EmptyTrashConfirmationDialog.java
index a338d950bfc7b0d5963fb1b1ecdf7c2289bea677..3b05eed321f485c77e52168de404e95559f61523 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/EmptyTrashConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/EmptyTrashConfirmationDialog.java
@@ -51,6 +51,7 @@ public final class EmptyTrashConfirmationDialog extends
         this.viewContext = viewContext;
         this.callback = callback;
         this.forceOptions = new DeletionForceOptions(viewContext);
+        this.setId("deletion-confirmation-dialog");
     }
 
     @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/PermanentDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/PermanentDeletionConfirmationDialog.java
index ad5641200167b4831c79ac0214c7d1f356a1ed3b..d153b0bf2719bd822f92054e9e6373a29c4990af 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/PermanentDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/deletion/PermanentDeletionConfirmationDialog.java
@@ -51,6 +51,7 @@ public final class PermanentDeletionConfirmationDialog extends
         this.viewContext = viewContext;
         this.callback = callback;
         this.forceOptions = new DeletionForceOptions(viewContext);
+        this.setId("deletion-confirmation-dialog");
     }
 
     public PermanentDeletionConfirmationDialog(IViewContext<ICommonClientServiceAsync> viewContext,
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java
index 118386b2a814d7130cdd506e1bdfc59d2d6a4226..42de1ad77c2b79276f88afd03479471920299276 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/entity_type/AbstractEntityTypeGrid.java
@@ -110,10 +110,10 @@ abstract public class AbstractEntityTypeGrid<T extends EntityType> extends Typed
                                 }
 
                             });
-        editButton.setId("edit-entity-type");
+        editButton.setId("edit-entity-type-" + this.getClass().getName());
         addButton(editButton);
         Button deleteButton = createDeleteButton(viewContext);
-        deleteButton.setId("delete-entity-type");
+        deleteButton.setId("delete-entity-type-" + this.getClass().getName());
         enableButtonOnSelectedItems(deleteButton);
         addButton(deleteButton);
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java
index 9faac3ad7ca5e455f907dffbeac5a7cec9408e29..d30b72cce0ff19ac88bdb79fb3940c5667191451 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java
@@ -88,6 +88,8 @@ public class ExperimentBrowserGrid extends AbstractEntityGrid<Experiment>
 
     public static final String SHOW_DETAILS_BUTTON_ID = BROWSER_ID + "_show-details-button";
 
+    public static final String DELETE_BUTTON_ID = BROWSER_ID + "_delete-button";
+
     /**
      * Creates a grid without additional toolbar buttons. It can serve as a entity chooser.
      */
@@ -251,6 +253,7 @@ public class ExperimentBrowserGrid extends AbstractEntityGrid<Experiment>
                 }
             });
         changeButtonTitleOnSelectedItems(deleteButton, deleteAllTitle, deleteTitle);
+        deleteButton.setId(DELETE_BUTTON_ID);
         addButton(deleteButton);
 
         if (viewContext.getModel().getApplicationInfo().isArchivingConfigured()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java
index 1b8b279f2b5f091f07c028b2a88bc91f57cdca4d..7566e95a820a47b903b04f990af6ae868e0c9501 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentListDeletionConfirmationDialog.java
@@ -50,6 +50,7 @@ public final class ExperimentListDeletionConfirmationDialog extends
         this.withRadio();
         this.singleDataOrNull = null;
         this.selectedAndDisplayedItemsOrNull = selectedAndDisplayedItems;
+        this.setId("deletion-confirmation-dialog");
     }
 
     public ExperimentListDeletionConfirmationDialog(
@@ -59,6 +60,7 @@ public final class ExperimentListDeletionConfirmationDialog extends
         super(viewContext, Collections.singletonList(experiment), deletionCallback);
         this.singleDataOrNull = experiment;
         this.selectedAndDisplayedItemsOrNull = null;
+        this.setId("deletion-confirmation-dialog");
     }
 
     @SuppressWarnings("unchecked")
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java
index 2e938d178e013ece43dec0c958ac91db4028f3ae..21cf6102367691710f80550c6bb7bd760d902be6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/project/ProjectListDeletionConfirmationDialog.java
@@ -42,6 +42,7 @@ public final class ProjectListDeletionConfirmationDialog extends
     {
         super(viewContext, data, callback);
         this.viewContext = viewContext;
+        this.setId("deletion-confirmation-dialog");
     }
 
     public ProjectListDeletionConfirmationDialog(
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/ManualTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/ManualTest.java
index 37eec512a32e43c9655b4e814c0c3707f59018e4..ba95ee25defd5e2335dd295e70e03144daad2695 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/ManualTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/ManualTest.java
@@ -41,12 +41,16 @@ import ch.systemsx.cisd.openbis.uitest.type.Vocabulary;
 public class ManualTest extends SeleniumTest
 {
 
-    @Test(enabled = false)
+    @Test
     public void basic()
     {
         // 0) Cleanup
+        experimentBrowser().space("sprint-test").deleteAll();
+        trash().empty();
+        projectBrowser().deleteIfExists("Code", "p1");
         spaceBrowser().deleteIfExists("Code", "sprint-test");
         sampleTypeBrowser().deleteIfExists("Code", "sprint_test");
+        experimentTypeBrowser().deleteIfExists("Code", "sprint_test");
         propertyTypeBrowser().deleteIfExists("Code", "sprint-test.text");
         propertyTypeBrowser().deleteIfExists("Code", "sprint-test.real");
         propertyTypeBrowser().deleteIfExists("Code", "sprint-test.animal");
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/SampleTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/SampleTest.java
index 579cac00e38e362c3d450ee53981e6b2784255f9..11e8e23555178a299dd84b3a3fac36e177914cce 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/SampleTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/SampleTest.java
@@ -38,7 +38,7 @@ public class SampleTest extends SeleniumTest
     {
         Sample sample = create(aSample());
 
-        assertThat(sampleBrowser().allSpaces(), lists(sample));
+        assertThat(sampleBrowser(), lists(sample));
     }
 
     @Test
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/ApplicationRunner.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/ApplicationRunner.java
index 69ff48b72fe2cb8d3389f4dc03dc835135d1bc23..d651b8232b6b2460b53e2f3f97d6a949a2cd2e09 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/ApplicationRunner.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/ApplicationRunner.java
@@ -25,6 +25,7 @@ import ch.systemsx.cisd.openbis.uitest.page.dialog.AddVocabularyDialog;
 import ch.systemsx.cisd.openbis.uitest.page.dialog.EditSampleTypeDialog;
 import ch.systemsx.cisd.openbis.uitest.page.tab.AddPropertyType;
 import ch.systemsx.cisd.openbis.uitest.page.tab.AssignSamplePropertyType;
+import ch.systemsx.cisd.openbis.uitest.page.tab.ExperimentBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.ExperimentTypeBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.ProjectBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.PropertyTypeAssignmentBrowser;
@@ -36,6 +37,7 @@ import ch.systemsx.cisd.openbis.uitest.page.tab.RoleAssignmentBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.SampleBrowser;
 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.type.Experiment;
 import ch.systemsx.cisd.openbis.uitest.type.ExperimentType;
@@ -169,6 +171,11 @@ public class ApplicationRunner
         return getMenus().admin().types().experimentTypes();
     }
 
+    public Trash browseToTrash()
+    {
+        return getMenus().trash();
+    }
+
     public AddSampleTypeDialog browseToAddSampleTypeDialog()
     {
         return browseToSampleTypeBrowser().add();
@@ -199,6 +206,11 @@ public class ApplicationRunner
         return getMenus().browse().samples();
     }
 
+    public ExperimentBrowser browseToExperimentBrowser()
+    {
+        return getMenus().browse().experiments();
+    }
+
     public RoleAssignmentBrowser browseToRoleAssignmentBrowser()
     {
         return getMenus().admin().authorization().roles();
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/SeleniumTest.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/SeleniumTest.java
index 699b0be769ee12df244500abb2360e65e9cb686e..2e5c4da1142780baf85fd673f3bdde35f83539da 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/SeleniumTest.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/SeleniumTest.java
@@ -42,6 +42,7 @@ import ch.systemsx.cisd.openbis.uitest.infra.matcher.SampleBrowserSampleTypeDrop
 import ch.systemsx.cisd.openbis.uitest.page.BrowserPage;
 import ch.systemsx.cisd.openbis.uitest.page.Cell;
 import ch.systemsx.cisd.openbis.uitest.page.Page;
+import ch.systemsx.cisd.openbis.uitest.page.tab.ExperimentBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.ExperimentTypeBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.ProjectBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.PropertyTypeAssignmentBrowser;
@@ -50,6 +51,7 @@ import ch.systemsx.cisd.openbis.uitest.page.tab.RegisterSample;
 import ch.systemsx.cisd.openbis.uitest.page.tab.SampleBrowser;
 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.type.Builder;
 import ch.systemsx.cisd.openbis.uitest.type.ExperimentBuilder;
@@ -181,6 +183,16 @@ public abstract class SeleniumTest
         return openbis.browseToSampleBrowser();
     }
 
+    protected ExperimentBrowser experimentBrowser()
+    {
+        return openbis.browseToExperimentBrowser();
+    }
+
+    protected Trash trash()
+    {
+        return openbis.browseToTrash();
+    }
+
     protected SampleTypeBrowser sampleTypeBrowser()
     {
         return openbis.browseToSampleTypeBrowser();
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/BrowserPage.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/BrowserPage.java
index 1350e81e7ff5c3e8950fbb774eab4fbbf3bd1c52..be1becfe5313fb750d8cab570df1c97ae5f30c32 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/BrowserPage.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/BrowserPage.java
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.openqa.selenium.By;
 import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.WebElement;
 
@@ -92,7 +93,8 @@ public abstract class BrowserPage extends NavigationPage
             Cell cell = row.get(column);
             if (cell != null && cell.getText().equalsIgnoreCase(value))
             {
-                cell.getElement().click();
+                cell.getElement().findElement(By.xpath("./..")).click();
+                waitForClickability(getDeleteButton());
                 getDeleteButton().click();
 
                 for (WebElement ellu : this.findElements(cell.getElement(),
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/NavigationPage.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/NavigationPage.java
index 59a6a410bb81556c20965758d3dc6c1d2dcac9bf..549a04d7d7dd684929091532bbced1906b72c3dc 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/NavigationPage.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/NavigationPage.java
@@ -25,6 +25,7 @@ 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.UserMenu;
+import ch.systemsx.cisd.openbis.uitest.page.tab.Trash;
 
 /**
  * @author anttil
@@ -43,6 +44,9 @@ public abstract class NavigationPage extends Page
     @FindBy(id = "new_menu")
     private WebElement newMenuButton;
 
+    @FindBy(id = "trash-button")
+    private WebElement trash;
+
     @FindBy(className = "x-tab-strip-close")
     private List<WebElement> tabCloseButtons;
 
@@ -64,6 +68,12 @@ public abstract class NavigationPage extends Page
         return get(BrowseMenu.class);
     }
 
+    public Trash trash()
+    {
+        trash.click();
+        return get(Trash.class);
+    }
+
     public NewMenu newMenu()
     {
         newMenuButton.click();
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/Page.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/Page.java
index 5cd5b005422cdf0f28d2d6cfe62d3bb28f77b143..19d1894aba5b6609475bb1ddeabf1a42f702012e 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/Page.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/Page.java
@@ -33,6 +33,8 @@ import org.openqa.selenium.interactions.Actions;
 import org.openqa.selenium.support.ui.ExpectedCondition;
 import org.openqa.selenium.support.ui.WebDriverWait;
 
+import com.google.common.base.Function;
+
 import ch.systemsx.cisd.openbis.uitest.infra.PageProxy;
 import ch.systemsx.cisd.openbis.uitest.infra.ScreenShotProxy;
 import ch.systemsx.cisd.openbis.uitest.infra.ScreenShotter;
@@ -110,6 +112,26 @@ public abstract class Page
         new WebDriverWait(SeleniumTest.driver, 10).until(condition);
     }
 
+    public void waitForClickability(final WebElement element)
+    {
+
+        new WebDriverWait(SeleniumTest.driver, 10).until(new Function<WebDriver, Object>()
+            {
+                @Override
+                public Object apply(WebDriver arg0)
+                {
+                    if (element.isDisplayed() && element.isEnabled())
+                    {
+                        return true;
+                    } else
+                    {
+                        return null;
+                    }
+                }
+
+            });
+    }
+
     protected void select(Collection<? extends WebElement> choices, String text)
     {
         Collection<String> found = new HashSet<String>();
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/BrowseMenu.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/BrowseMenu.java
index adbd1af9d04920f263a85e11fca4e69c359a91de..1dd63820d038541e4cd3bf9556ca70da19ecaac1 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/BrowseMenu.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/BrowseMenu.java
@@ -20,6 +20,7 @@ import org.openqa.selenium.WebElement;
 import org.openqa.selenium.support.FindBy;
 
 import ch.systemsx.cisd.openbis.uitest.page.Page;
+import ch.systemsx.cisd.openbis.uitest.page.tab.ExperimentBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.ProjectBrowser;
 import ch.systemsx.cisd.openbis.uitest.page.tab.SampleBrowser;
 
@@ -32,6 +33,9 @@ public class BrowseMenu extends Page
     @FindBy(id = "openbis_top-menu_PROJECT_MENU_BROWSE")
     private WebElement projects;
 
+    @FindBy(id = "openbis_top-menu_EXPERIMENT_MENU_BROWSE")
+    private WebElement experiments;
+
     public SampleBrowser samples()
     {
         samples.click();
@@ -44,4 +48,9 @@ public class BrowseMenu extends Page
         return get(ProjectBrowser.class);
     }
 
+    public ExperimentBrowser experiments()
+    {
+        experiments.click();
+        return get(ExperimentBrowser.class);
+    }
 }
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentBrowser.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7d06f77ec3f4e8b158fbb2f8d85a213d9979cc1
--- /dev/null
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentBrowser.java
@@ -0,0 +1,89 @@
+/*
+ * 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.tab;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+import org.openqa.selenium.support.FindBys;
+
+import ch.systemsx.cisd.openbis.uitest.page.BrowserPage;
+
+public class ExperimentBrowser extends BrowserPage
+{
+
+    @FindBys(
+        {
+                @FindBy(id = "openbis_select-project"),
+                @FindBy(xpath = "..//span[not(*) and @class='gwt-InlineHTML']") })
+    private List<WebElement> spacesAndProjects;
+
+    @FindBy(id = "openbis_experiment-browser_delete-button")
+    private WebElement deleteAllButton;
+
+    public ExperimentBrowser space(String spaceCode)
+    {
+        for (WebElement element : spacesAndProjects)
+        {
+            if (spaceCode.equalsIgnoreCase(element.getText()))
+            {
+                element.click();
+            }
+        }
+        return this;
+    }
+
+    public void deleteAll()
+    {
+        this.deleteAllButton.click();
+        for (WebElement ellu : this.findElements(deleteAllButton,
+                "//*[@id='deletion-confirmation-dialog']//textarea"))
+        {
+            ellu.sendKeys("reason for deletion");
+        }
+
+        List<WebElement> e = new ArrayList<WebElement>(this.findElements(deleteAllButton,
+                "//*[@id='deletion-confirmation-dialog']//button[text()='OK' or text()='Yes']"));
+        if (e.size() > 0)
+        {
+            e.get(0).click();
+        }
+    }
+
+    @Override
+    protected WebElement getDeleteButton()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    protected List<WebElement> getColumns()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    protected List<WebElement> getData()
+    {
+        // TODO Auto-generated method stub
+        return null;
+    }
+}
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentTypeBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentTypeBrowser.java
index c03cb25f2484a97aae39c70d028c0ab7f6839bdc..86c07652ece5daa6ac3b60acf5a73f58120fe2d8 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentTypeBrowser.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ExperimentTypeBrowser.java
@@ -31,10 +31,10 @@ public class ExperimentTypeBrowser extends BrowserPage
     @FindBy(id = "add-entity-type-ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentTypeGrid")
     private WebElement addButton;
 
-    @FindBy(id = "edit-entity-type")
+    @FindBy(id = "edit-entity-type-ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentTypeGrid")
     private WebElement editButton;
 
-    @FindBy(id = "delete-entity-type")
+    @FindBy(id = "delete-entity-type-ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentTypeGrid")
     private WebElement deleteButton;
 
     @FindBys(
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleTypeBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleTypeBrowser.java
index 87f5ab96dc241bf4b9d757968c72052b8be6b00a..aaf1c864f1995142df8adeaaa8a0e729f50815d3 100644
--- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleTypeBrowser.java
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleTypeBrowser.java
@@ -32,10 +32,10 @@ public class SampleTypeBrowser extends BrowserPage
     @FindBy(id = "add-entity-type-ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleTypeGrid")
     private WebElement addSampleTypeButton;
 
-    @FindBy(id = "edit-entity-type")
+    @FindBy(id = "edit-entity-type-ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleTypeGrid")
     private WebElement editSampleTypeButton;
 
-    @FindBy(id = "delete-entity-type")
+    @FindBy(id = "delete-entity-type-ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleTypeGrid")
     private WebElement deleteSampleTypeButton;
 
     @FindBys(
diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Trash.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Trash.java
new file mode 100644
index 0000000000000000000000000000000000000000..870e11cc4ef083cd8bed85000107c445a69e74dc
--- /dev/null
+++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/Trash.java
@@ -0,0 +1,45 @@
+/*
+ * 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.tab;
+
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+
+import ch.systemsx.cisd.openbis.uitest.page.NavigationPage;
+
+public class Trash extends NavigationPage
+{
+
+    @FindBy(id = "empty-trash-button")
+    private WebElement empty;
+
+    public Trash empty()
+    {
+        this.empty.click();
+        findElement(this.empty,
+                "//*[@id='deletion-confirmation-dialog']//button[text()='OK' or text()='Yes']")
+                .click();
+
+        return get(Trash.class);
+    }
+
+    @Override
+    public String toString()
+    {
+        return "Trash";
+    }
+}