From c454bc7054f1a791a0b046eb8bb9f853a9e89e50 Mon Sep 17 00:00:00 2001 From: anttil <anttil> Date: Thu, 20 Sep 2012 12:37:19 +0000 Subject: [PATCH] SWE-2 / SP-263: Working towards controlling the filters in all the browsing pages SVN: 26703 --- .../uitest/infra/ApplicationRunner.java | 38 ++-------- .../cisd/openbis/uitest/infra/Browsable.java | 1 - .../cisd/openbis/uitest/infra/Browser.java | 2 - .../uitest/{page/common => infra}/Cell.java | 13 +--- .../cisd/openbis/uitest/infra/Filterable.java | 27 +++++++ .../uitest/{page/common => infra}/Row.java | 2 +- .../matcher/BrowserListsElementMatcher.java | 3 +- .../infra/matcher/CellDisplaysMatcher.java | 2 +- .../infra/matcher/CellLinksToMatcher.java | 2 +- .../uitest/infra/webdriver/Refreshing.java | 25 +++++++ .../infra/webdriver/WaitForRefreshOf.java | 49 ++++++++++++ .../uitest/page/{common => menu}/TopBar.java | 2 +- .../uitest/page/tab/ExperimentBrowser.java | 4 +- .../page/tab/ExperimentTypeBrowser.java | 4 +- .../page/{common => tab}/LoginPage.java | 2 +- .../uitest/page/tab/ProjectBrowser.java | 4 +- .../tab/PropertyTypeAssignmentBrowser.java | 4 +- .../uitest/page/tab/PropertyTypeBrowser.java | 4 +- .../page/tab/RoleAssignmentBrowser.java | 4 +- .../uitest/page/tab/SampleBrowser.java | 4 +- .../uitest/page/tab/SampleTypeBrowser.java | 4 +- .../openbis/uitest/page/tab/SpaceBrowser.java | 56 +++++++++++++- .../uitest/page/tab/VocabularyBrowser.java | 4 +- .../uitest/suite/AuthorizationTest.java | 4 +- .../openbis/uitest/suite/SeleniumTest.java | 2 +- .../cisd/openbis/uitest/suite/SpaceTest.java | 2 +- .../cisd/openbis/uitest/type/Experiment.java | 4 +- .../openbis/uitest/type/ExperimentType.java | 4 +- .../cisd/openbis/uitest/type/Project.java | 4 +- .../openbis/uitest/type/PropertyType.java | 4 +- .../uitest/type/PropertyTypeAssignment.java | 4 +- .../cisd/openbis/uitest/type/Sample.java | 4 +- .../cisd/openbis/uitest/type/SampleType.java | 4 +- .../cisd/openbis/uitest/type/Space.java | 4 +- .../cisd/openbis/uitest/type/Vocabulary.java | 4 +- .../uitest/widget/AlertMessageBox.java | 3 +- .../cisd/openbis/uitest/widget/Button.java | 13 +++- .../cisd/openbis/uitest/widget/Checkbox.java | 3 +- .../widget/DeletionConfirmationBox.java | 7 +- .../cisd/openbis/uitest/widget/DropDown.java | 2 +- .../openbis/uitest/widget/FilterToolBar.java | 38 ++++++++++ .../cisd/openbis/uitest/widget/Form.java | 4 +- .../cisd/openbis/uitest/widget/Grid.java | 75 +++++++++++++++---- .../openbis/uitest/widget/PagingToolBar.java | 37 +++++++++ .../cisd/openbis/uitest/widget/Text.java | 3 +- .../cisd/openbis/uitest/widget/TextArea.java | 8 +- .../cisd/openbis/uitest/widget/TreeGrid.java | 4 +- .../cisd/openbis/uitest/widget/Widget.java | 13 ++++ 48 files changed, 380 insertions(+), 134 deletions(-) rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/{page/common => infra}/Cell.java (81%) create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Filterable.java rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/{page/common => infra}/Row.java (95%) create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Refreshing.java create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WaitForRefreshOf.java rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/{common => menu}/TopBar.java (96%) rename ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/{common => tab}/LoginPage.java (95%) create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/FilterToolBar.java create mode 100644 ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/PagingToolBar.java 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 47e3eccd8e3..6eca934070d 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 @@ -18,8 +18,6 @@ package ch.systemsx.cisd.openbis.uitest.infra; 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.common.LoginPage; -import ch.systemsx.cisd.openbis.uitest.page.common.TopBar; import ch.systemsx.cisd.openbis.uitest.page.dialog.AddExperimentTypeDialog; import ch.systemsx.cisd.openbis.uitest.page.dialog.AddSampleTypeDialog; import ch.systemsx.cisd.openbis.uitest.page.dialog.AddSpaceDialog; @@ -30,12 +28,14 @@ import ch.systemsx.cisd.openbis.uitest.page.menu.AuthorizationMenu; import ch.systemsx.cisd.openbis.uitest.page.menu.BrowseMenu; import ch.systemsx.cisd.openbis.uitest.page.menu.MetadataMenu; import ch.systemsx.cisd.openbis.uitest.page.menu.NewMenu; +import ch.systemsx.cisd.openbis.uitest.page.menu.TopBar; import ch.systemsx.cisd.openbis.uitest.page.menu.TypesMenu; import ch.systemsx.cisd.openbis.uitest.page.menu.UserMenu; 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.LoginPage; import ch.systemsx.cisd.openbis.uitest.page.tab.ProjectBrowser; import ch.systemsx.cisd.openbis.uitest.page.tab.PropertyTypeAssignmentBrowser; import ch.systemsx.cisd.openbis.uitest.page.tab.PropertyTypeBrowser; @@ -89,34 +89,10 @@ public class ApplicationRunner public void delete(Space space) { - /* SpaceBrowser browser = browseToSpaceBrowser(); - - PagingToolBar paging = get(PagingToolBar.class); - paging.showFilters(); - - FilterToolBar bar = get(FilterToolBar.class).reset(); - Widget filter = null; - for (Widget widget : bar.getFilters()) { - if (widget.getValue().equalsIgnoreCase("code")) { - filter = widget; - } - } - if (filter == null) { - Setting settings = paging.settings(); - settings.enableFilter("Code"); - } - // then re-find filter - - filter.write(space.code(); - - Row row = browser.getRow(space); - if (row != null) - { - row.select(); - browser.deleteSelection(); - } - */ + browser.filter(space.getCode()); + browser.select(space); + browser.delete(); } public Project create(Project project) @@ -249,7 +225,9 @@ public class ApplicationRunner { getMenus().admin(); load(AdminMenu.class).spaces(); - return load(SpaceBrowser.class); + SpaceBrowser browser = load(SpaceBrowser.class); + browser.resetFilters(); + return browser; } public ProjectBrowser browseToProjectBrowser() diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browsable.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browsable.java index 5b91eef45fc..502bc5b563e 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browsable.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browsable.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.infra; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browser.java index 013edb56a2b..06d7a15e7b7 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Browser.java @@ -16,8 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.infra; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/Cell.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Cell.java similarity index 81% rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/Cell.java rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Cell.java index 0f981d4b1e4..e704e0bb481 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/Cell.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Cell.java @@ -14,9 +14,8 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.uitest.page.common; +package ch.systemsx.cisd.openbis.uitest.infra; -import org.openqa.selenium.WebElement; /** * @author anttil @@ -27,13 +26,10 @@ public class Cell private final String url; - private final WebElement element; - - public Cell(String text, String url, WebElement element) + public Cell(String text, String url) { this.text = text; this.url = url; - this.element = element; } public String getText() @@ -46,11 +42,6 @@ public class Cell return url; } - public WebElement getElement() - { - return this.element; - } - public boolean hasLink() { return this.url != null; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Filterable.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Filterable.java new file mode 100644 index 00000000000..5a4de0c1c82 --- /dev/null +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Filterable.java @@ -0,0 +1,27 @@ +/* + * 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; + +/** + * @author anttil + */ +public interface Filterable +{ + public void filter(String code); + + public void resetFilters(); +} diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/Row.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Row.java similarity index 95% rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/Row.java rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Row.java index 698dde00b6a..8fbf677284e 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/Row.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/Row.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.uitest.page.common; +package ch.systemsx.cisd.openbis.uitest.infra; import java.util.Map; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/BrowserListsElementMatcher.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/BrowserListsElementMatcher.java index 0945747f61f..be8a3875e19 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/BrowserListsElementMatcher.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/BrowserListsElementMatcher.java @@ -21,7 +21,7 @@ import org.hamcrest.TypeSafeMatcher; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; import ch.systemsx.cisd.openbis.uitest.infra.Browser; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil @@ -45,7 +45,6 @@ public class BrowserListsElementMatcher<T extends Browsable, U extends Browser<T @Override public boolean matchesSafely(U browser) { - Row row = browser.row(expected); if (row.exists()) { diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellDisplaysMatcher.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellDisplaysMatcher.java index 63c63c9306c..e33e2fbb61c 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellDisplaysMatcher.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellDisplaysMatcher.java @@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.uitest.infra.matcher; import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellLinksToMatcher.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellLinksToMatcher.java index 351701f65be..4990bb93398 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellLinksToMatcher.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/matcher/CellLinksToMatcher.java @@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.uitest.infra.matcher; import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Refreshing.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Refreshing.java new file mode 100644 index 00000000000..369103f9652 --- /dev/null +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/Refreshing.java @@ -0,0 +1,25 @@ +/* + * 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; + +/** + * @author anttil + */ +public interface Refreshing +{ + public boolean hasRefreshed(); +} diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WaitForRefreshOf.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WaitForRefreshOf.java new file mode 100644 index 00000000000..5ebe8131da4 --- /dev/null +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/infra/webdriver/WaitForRefreshOf.java @@ -0,0 +1,49 @@ +/* + * 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.util.concurrent.TimeUnit; + +import org.openqa.selenium.support.ui.FluentWait; + +import com.google.common.base.Predicate; + +/** + * @author anttil + */ +public class WaitForRefreshOf extends FluentWait<Refreshing> +{ + + public WaitForRefreshOf(Refreshing widget) + { + super(widget); + } + + public void withTimeoutOf(int seconds) + { + this.withTimeout(seconds, TimeUnit.SECONDS) + .pollingEvery(100, TimeUnit.MILLISECONDS) + .until(new Predicate<Refreshing>() + { + @Override + public boolean apply(Refreshing widget) + { + return widget.hasRefreshed(); + } + }); + } +} diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/TopBar.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TopBar.java similarity index 96% rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/TopBar.java rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TopBar.java index 47f27b166a8..1405297b88c 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/TopBar.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/menu/TopBar.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.uitest.page.common; +package ch.systemsx.cisd.openbis.uitest.page.menu; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; import ch.systemsx.cisd.openbis.uitest.widget.Button; 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 index 3545589586e..5ebf219f997 100644 --- 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 @@ -17,10 +17,10 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Lazy; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.Experiment; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.DeletionConfirmationBox; 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 a4f64a22f52..1b15fc476c3 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 @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.ExperimentType; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.Grid; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/LoginPage.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/LoginPage.java similarity index 95% rename from ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/LoginPage.java rename to ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/LoginPage.java index 6c417e1c42d..77c1faa36a3 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/common/LoginPage.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/LoginPage.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ch.systemsx.cisd.openbis.uitest.page.common; +package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; import ch.systemsx.cisd.openbis.uitest.widget.Button; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ProjectBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ProjectBrowser.java index 06854817381..d3fd5b13a59 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ProjectBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/ProjectBrowser.java @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.Project; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.Grid; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeAssignmentBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeAssignmentBrowser.java index 2dcec5c6d1d..1f64e2f1055 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeAssignmentBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeAssignmentBrowser.java @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.PropertyTypeAssignment; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.Grid; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeBrowser.java index abbbdf47700..728586cc953 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/PropertyTypeBrowser.java @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.PropertyType; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.Grid; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RoleAssignmentBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RoleAssignmentBrowser.java index 9ddf53a4377..81e9bd32f92 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RoleAssignmentBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/RoleAssignmentBrowser.java @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.Experiment; import ch.systemsx.cisd.openbis.uitest.widget.Button; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleBrowser.java index 651e0874433..79f0d8982be 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SampleBrowser.java @@ -19,9 +19,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import java.util.List; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.Sample; import ch.systemsx.cisd.openbis.uitest.type.SampleType; import ch.systemsx.cisd.openbis.uitest.widget.Button; 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 55dd61db7b8..e4be935b1e3 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 @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.SampleType; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.Grid; diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SpaceBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SpaceBrowser.java index dbb1793df85..04132c0a9d6 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SpaceBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/SpaceBrowser.java @@ -17,14 +17,20 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Filterable; +import ch.systemsx.cisd.openbis.uitest.infra.Row; +import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Lazy; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.webdriver.WaitForRefreshOf; import ch.systemsx.cisd.openbis.uitest.type.Space; import ch.systemsx.cisd.openbis.uitest.widget.Button; +import ch.systemsx.cisd.openbis.uitest.widget.DeletionConfirmationBox; +import ch.systemsx.cisd.openbis.uitest.widget.FilterToolBar; import ch.systemsx.cisd.openbis.uitest.widget.Grid; +import ch.systemsx.cisd.openbis.uitest.widget.PagingToolBar; -public class SpaceBrowser implements Browser<Space> +public class SpaceBrowser implements Browser<Space>, Filterable { @Locate("openbis_space-browser-grid") @@ -33,15 +39,36 @@ public class SpaceBrowser implements Browser<Space> @Locate("openbis_space-browser_add-button") private Button addSpace; - @SuppressWarnings("unused") @Locate("openbis_space-browser_delete-button") private Button delete; + @Locate("openbis_space-browser-grid-paging-toolbar") + private PagingToolBar paging; + + @Lazy + @Locate("openbis_space-browser-grid-filter-toolbar") + private FilterToolBar filters; + + @Lazy + @Locate("deletion-confirmation-dialog") + private DeletionConfirmationBox confimDeletion; + public void addSpace() { addSpace.click(); } + public void select(Space space) + { + grid.select(space.getCode()); + } + + public void delete() + { + delete.click(); + confimDeletion.confirm("WebDriver"); + } + @Override public Row row(Space space) { @@ -54,4 +81,25 @@ public class SpaceBrowser implements Browser<Space> return row(space).get(column); } + @Override + public void filter(String filter) + { + paging.filters(); + filters.setCode(filter); + new WaitForRefreshOf(grid).withTimeoutOf(10); + } + + @Override + public void resetFilters() + { + paging.filters(); + filters.reset(); + } + + @Override + public String toString() + { + String s = "SpaceBrowser\n==========\n"; + return s + grid.toString(); + } } diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/VocabularyBrowser.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/VocabularyBrowser.java index 7314011baae..702169a6100 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/VocabularyBrowser.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/page/tab/VocabularyBrowser.java @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.page.tab; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Locate; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; import ch.systemsx.cisd.openbis.uitest.type.Vocabulary; import ch.systemsx.cisd.openbis.uitest.widget.Button; import ch.systemsx.cisd.openbis.uitest.widget.Grid; 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/AuthorizationTest.java index ad5a5f2ab19..11a7ff86cb4 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/AuthorizationTest.java @@ -5,9 +5,9 @@ import static org.hamcrest.MatcherAssert.assertThat; import org.testng.annotations.Test; import ch.systemsx.cisd.openbis.uitest.infra.User; -import ch.systemsx.cisd.openbis.uitest.page.common.LoginPage; -import ch.systemsx.cisd.openbis.uitest.page.common.TopBar; import ch.systemsx.cisd.openbis.uitest.page.dialog.InvalidPasswordDialog; +import ch.systemsx.cisd.openbis.uitest.page.menu.TopBar; +import ch.systemsx.cisd.openbis.uitest.page.tab.LoginPage; import ch.systemsx.cisd.openbis.uitest.page.tab.RoleAssignmentBrowser; @Test(groups = 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 8ba8fe12bef..4405576f088 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 @@ -37,6 +37,7 @@ import org.testng.annotations.BeforeSuite; import ch.systemsx.cisd.openbis.uitest.infra.ApplicationRunner; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; import ch.systemsx.cisd.openbis.uitest.infra.Browser; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; import ch.systemsx.cisd.openbis.uitest.infra.User; import ch.systemsx.cisd.openbis.uitest.infra.matcher.BrowserListsElementMatcher; import ch.systemsx.cisd.openbis.uitest.infra.matcher.CellDisplaysMatcher; @@ -49,7 +50,6 @@ import ch.systemsx.cisd.openbis.uitest.infra.screenshot.ScreenShotter; import ch.systemsx.cisd.openbis.uitest.infra.uid.DictionaryUidGenerator; 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.common.Cell; 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; 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/SpaceTest.java index f43bc9dce0a..72c01ace581 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/SpaceTest.java @@ -19,7 +19,7 @@ public class SpaceTest extends SeleniumTest assertThat(spaceBrowser(), lists(space)); } - @Test(enabled = false) + @Test public void deletedSpaceIsRemovedFromSpaceBrowser() throws Exception { Space space = create(aSpace()); diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Experiment.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Experiment.java index d85acf7bc31..e7b60d7d351 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Experiment.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Experiment.java @@ -19,9 +19,9 @@ package ch.systemsx.cisd.openbis.uitest.type; import java.util.Collection; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; import ch.systemsx.cisd.openbis.uitest.infra.EntityType; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/ExperimentType.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/ExperimentType.java index 5b1184103de..efc5055c2c6 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/ExperimentType.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/ExperimentType.java @@ -17,8 +17,8 @@ package ch.systemsx.cisd.openbis.uitest.type; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Project.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Project.java index c3aeb540329..1b77fb4e692 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Project.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Project.java @@ -17,8 +17,8 @@ package ch.systemsx.cisd.openbis.uitest.type; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyType.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyType.java index 4df78f5c1d5..5eb89d76ee7 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyType.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyType.java @@ -17,8 +17,8 @@ package ch.systemsx.cisd.openbis.uitest.type; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyTypeAssignment.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyTypeAssignment.java index d7d8d6c98a4..23184a1de6d 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyTypeAssignment.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/PropertyTypeAssignment.java @@ -17,9 +17,9 @@ package ch.systemsx.cisd.openbis.uitest.type; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; import ch.systemsx.cisd.openbis.uitest.infra.EntityType; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Sample.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Sample.java index f9ba77d5b6b..240ad875127 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Sample.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Sample.java @@ -20,9 +20,9 @@ import java.util.Collection; import java.util.Map; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; import ch.systemsx.cisd.openbis.uitest.infra.EntityType; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/SampleType.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/SampleType.java index 80b1277d161..b044b3ffc58 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/SampleType.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/SampleType.java @@ -19,9 +19,9 @@ package ch.systemsx.cisd.openbis.uitest.type; import java.util.Collection; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; import ch.systemsx.cisd.openbis.uitest.infra.EntityType; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Space.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Space.java index 72ae1959a30..09f36908edc 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Space.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Space.java @@ -17,8 +17,8 @@ package ch.systemsx.cisd.openbis.uitest.type; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Vocabulary.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Vocabulary.java index d559148cc40..742678b7e42 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Vocabulary.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/type/Vocabulary.java @@ -19,8 +19,8 @@ package ch.systemsx.cisd.openbis.uitest.type; import java.util.Set; import ch.systemsx.cisd.openbis.uitest.infra.Browsable; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; /** * @author anttil diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/AlertMessageBox.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/AlertMessageBox.java index d965666bf9f..a16ba6cc6d4 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/AlertMessageBox.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/AlertMessageBox.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.widget; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -26,7 +25,7 @@ public class AlertMessageBox extends Widget { public void dismiss() { - WebElement ok = context.findElement(By.xpath(".//button[text()=\"OK\"]")); + WebElement ok = find(".//button[text()=\"OK\"]"); ok.click(); } } diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Button.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Button.java index f72c044e975..cfdb31783be 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Button.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Button.java @@ -16,7 +16,7 @@ package ch.systemsx.cisd.openbis.uitest.widget; -import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; /** * @author anttil @@ -30,7 +30,14 @@ public class Button extends Widget public boolean isPressed() { - return "true".equalsIgnoreCase(context.findElement(By.xpath(".//button")).getAttribute( - "aria-pressed")); + WebElement button; + if (context.getTagName().equals("button")) + { + button = context; + } else + { + button = find(".//button"); + } + return "true".equalsIgnoreCase(button.getAttribute("aria-pressed")); } } diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Checkbox.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Checkbox.java index 72571fbe167..6afa0d7fb58 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Checkbox.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Checkbox.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.widget; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -26,7 +25,7 @@ public class Checkbox extends Widget implements Fillable { public void set(boolean value) { - WebElement input = context.findElement(By.xpath("input")); + WebElement input = find("input"); if (input.getAttribute("checked") != null ^ value) { input.click(); diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DeletionConfirmationBox.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DeletionConfirmationBox.java index 5eda8fb6eea..ba600da29f5 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DeletionConfirmationBox.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/DeletionConfirmationBox.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.widget; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -27,16 +26,16 @@ public class DeletionConfirmationBox extends Widget public void confirm(String reason) { - WebElement text = context.findElement(By.xpath(".//textarea")); + WebElement text = find(".//textarea"); text.sendKeys(reason); - WebElement ok = context.findElement(By.xpath(".//button[text()=\"OK\"]")); + WebElement ok = find(".//button[text()=\"OK\"]"); ok.click(); } public void confirm() { - WebElement ok = context.findElement(By.xpath(".//button[text()=\"OK\"]")); + WebElement ok = find(".//button[text()=\"OK\"]"); ok.click(); } } 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 0e2dddc75a2..3df548affcb 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 @@ -60,7 +60,7 @@ public class DropDown extends Widget implements Fillable private List<WebElement> getChoiceElements() { - WebElement opener = context.findElement(By.xpath(".//img")); + WebElement opener = find(".//img"); opener.click(); return SeleniumTest.driver.findElements(By.className("x-combo-list-item")); } 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 new file mode 100644 index 00000000000..2c1611ba0a8 --- /dev/null +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/FilterToolBar.java @@ -0,0 +1,38 @@ +/* + * 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.widget; + +/** + * @author anttil + */ +public class FilterToolBar extends Widget +{ + + public void setCode(String text) + { + Text t = new Text(); + t.setContext(find(".//input[contains(@id, 'Code-input')]")); + t.write(text); + } + + public void reset() + { + Button b = new Button(); + b.setContext(find(".//button[text()='Reset']")); + b.click(); + } +} diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Form.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Form.java index 46fbe6cb305..da9bd363b07 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Form.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Form.java @@ -29,7 +29,7 @@ public class Form extends Widget { public Widget getWidget(String label) { - List<WebElement> elements = context.findElements(By.xpath(".//form/div/label")); + List<WebElement> elements = findAll(".//form/div/label"); for (WebElement element : elements) { @@ -48,7 +48,7 @@ public class Form extends Widget public List<String> getLabels() { List<String> labels = new ArrayList<String>(); - List<WebElement> elements = context.findElements(By.xpath(".//form/div/label")); + List<WebElement> elements = findAll(".//form/div/label"); for (WebElement element : elements) { labels.add(element.getText()); 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 08bcb527a9f..df20a668641 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 @@ -22,16 +22,16 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; -import ch.systemsx.cisd.openbis.uitest.page.common.Cell; -import ch.systemsx.cisd.openbis.uitest.page.common.Row; +import ch.systemsx.cisd.openbis.uitest.infra.Cell; +import ch.systemsx.cisd.openbis.uitest.infra.Row; +import ch.systemsx.cisd.openbis.uitest.infra.webdriver.Refreshing; /** * @author anttil */ -public class Grid extends Widget +public class Grid extends Widget implements Refreshing { public Row getRow(String column, String value) @@ -71,8 +71,7 @@ public class Grid extends Widget if (!found) { - throw new IllegalArgumentException("Row with value " + value + " in column " + column - + " not found"); + return new Row(); } index = index - (index % numColumns); @@ -82,23 +81,19 @@ public class Grid extends Widget { WebElement element = cells.get(i + index); m.put(columns.get(i).getText(), - new Cell(element.getText(), element.getAttribute("href"), element)); + new Cell(element.getText(), element.getAttribute("href"))); } return new Row(m); } - public List<WebElement> getColumns() + private List<WebElement> getColumns() { - return context - .findElements(By - .xpath(".//td[not(ancestor::div[contains(@style,'display:none')]) and contains(@class, 'x-grid') and contains(@class, '-header ')]//span[not(*)]")); + return findAll(".//td[not(ancestor::div[contains(@style,'display:none')]) and contains(@class, 'x-grid') and contains(@class, '-header ')]//span[not(*)]"); } - public List<WebElement> getCells() + private List<WebElement> getCells() { - return context - .findElements(By - .xpath(".//td[not(ancestor::div[contains(@style,'display:none')]) and contains(@class, 'x-grid') and contains(@class, '-col ')]//*[not(*)]")); + return findAll(".//td[not(ancestor::div[contains(@style,'display:none')]) and contains(@class, 'x-grid') and contains(@class, '-col ')]//*[not(*)]"); } public void select(String string) @@ -117,4 +112,54 @@ public class Grid extends Widget throw new IllegalArgumentException("Grid does not contain element with text " + string + ", found " + found); } + + @Override + public String toString() + { + List<WebElement> columns = getColumns(); + String s = ""; + for (WebElement column : columns) + { + s += column.getText() + "\t"; + } + s += "\n"; + + int counter = 0; + for (WebElement cell : getCells()) + { + s += cell.getText() + "\t"; + counter++; + if (counter % columns.size() == 0) + { + s += "\n"; + } + } + return s; + } + + boolean itsOn = false; + + int last = 0; + + @Override + public synchronized boolean hasRefreshed() + { + if (itsOn) + { + if (this.last != getCells().size()) + { + this.itsOn = false; + return true; + } else + { + return false; + } + } else + { + itsOn = true; + this.last = getCells().size(); + return false; + } + + } } 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 new file mode 100644 index 00000000000..58ad8aa7591 --- /dev/null +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/PagingToolBar.java @@ -0,0 +1,37 @@ +/* + * 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.widget; + +import org.openqa.selenium.WebElement; + +/** + * @author anttil + */ +public class PagingToolBar extends Widget +{ + + public void filters() + { + WebElement button = find(".//button[text()='Filters']"); + Button b = new Button(); + b.setContext(button); + if (!b.isPressed()) + { + b.click(); + } + } +} 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 460a348ba7b..7656326fae6 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 @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.widget; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -48,7 +47,7 @@ public class Text extends Widget implements Fillable return context; } else { - return context.findElement(By.xpath("input")); + return find("input"); } } diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TextArea.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TextArea.java index 1cc461fd439..1e1b84394a5 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TextArea.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TextArea.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.uitest.widget; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -26,20 +25,20 @@ public class TextArea extends Widget implements Fillable { public void write(String text) { - WebElement element = context.findElement(By.xpath(".//textarea")); + WebElement element = find(".//textarea"); element.clear(); element.sendKeys(text); } public void clear() { - WebElement element = context.findElement(By.xpath(".//textarea")); + WebElement element = find(".//textarea"); element.clear(); } public void append(String text) { - WebElement element = context.findElement(By.xpath(".//textarea")); + WebElement element = find(".//textarea"); element.sendKeys(text); } @@ -48,5 +47,4 @@ public class TextArea extends Widget implements Fillable { write(string); } - } diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TreeGrid.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TreeGrid.java index 5836f55d593..c7c86e1ff87 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TreeGrid.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/TreeGrid.java @@ -20,7 +20,6 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -30,8 +29,7 @@ public class TreeGrid extends Widget { public void select(String label) { - List<WebElement> elements = - context.findElements(By.xpath(".//span[not(*) and @class='gwt-InlineHTML']")); + List<WebElement> elements = findAll(".//span[not(*) and @class='gwt-InlineHTML']"); Collection<String> found = new ArrayList<String>(); for (WebElement element : elements) diff --git a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Widget.java b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Widget.java index 1e4816fb507..5e0992453a1 100644 --- a/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Widget.java +++ b/ui-test/source/java/ch/systemsx/cisd/openbis/uitest/widget/Widget.java @@ -16,6 +16,9 @@ package ch.systemsx.cisd.openbis.uitest.widget; +import java.util.List; + +import org.openqa.selenium.By; import org.openqa.selenium.WebElement; /** @@ -35,6 +38,16 @@ public abstract class Widget return context; } + protected WebElement find(String xpath) + { + return context.findElement(By.xpath(xpath)); + } + + protected List<WebElement> findAll(String xpath) + { + return context.findElements(By.xpath(xpath)); + } + public <T extends Widget> T handleAs(Class<T> clazz) { T t; -- GitLab