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 47e3eccd8e31c65fc32a9757f311a370f7444cdd..6eca934070ddcb4c228a6f6ebf5630e317824bb6 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 5b91eef45fc6338bed6af59607f7bc181c74c222..502bc5b563e8a95da4e6ef5f1d2edffea71c64fb 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 013edb56a2b90f87bf32767418b8bc62e2fcf16a..06d7a15e7b72be5137332dfe99a4c919261d2f40 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 0f981d4b1e49f9273a21a2f0d3081cc9bdb82e81..e704e0bb4814bc0279ed3b968bb3b39dcc3b8c45 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 0000000000000000000000000000000000000000..5a4de0c1c825b560dbf40fe55cdd5ea0e3c2084e --- /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 698dde00b6a4c47d35e2fe3a984f346cabdb09c1..8fbf677284e6e477123c03980f54734958ecd09f 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 0945747f61fe83544b7db37f983058a73173191b..be8a3875e1943d9e9b74c1239f294bd0c8fadc86 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 63c63c9306c3ea9b64261f941391ff0bc38bdc45..e33e2fbb61c1f0ee2363658a3f791b65ed8a73c5 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 351701f65be84c9aaeb1abce398bc56c2e49fac0..4990bb93398307dc33bde17cfb290ccb074fd699 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 0000000000000000000000000000000000000000..369103f9652c4d29a604f1d476ed5a76d77b1eb5 --- /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 0000000000000000000000000000000000000000..5ebe8131da41243c1e77699b1bf02fe106cc744b --- /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 47f27b166a868c45fd5c04392af7a1667126469e..1405297b88cd103ac56cfd6cad7fff4ad321ef33 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 3545589586ecf9531aeee10824db8f7da8a12958..5ebf219f9977cb8832ba4ee77ccc97fb8c3e2f82 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 a4f64a22f52f184f391a1ee6f350d824f65e95f9..1b15fc476c3cbb824040ee4c62ec6f0ed502ffda 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 6c417e1c42ddbac3a78ac4aced7acfd274eeec64..77c1faa36a3a5a96bfcd16b1acd79ac3dce5d47c 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 068548173815943780360c77eda67b766a4ac10c..d3fd5b13a597ffb42c9db48a128dcb603ed07f59 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 2dcec5c6d1d845604439190d05b5df73fd6a9aba..1f64e2f1055fc833bd5209bd97db09f6f8878f45 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 abbbdf47700307d9d8a0b3270f9a903a26f7db22..728586cc9534284e7af39b127f1a6b64a53803ff 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 9ddf53a4377a1eb4a86304f22ae54b08d0697ea8..81e9bd32f92fbc6bb00af055e8d8d46807914425 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 651e0874433ce3a57a5b035cf9e8370145096898..79f0d8982bef157e4d0368e92e3073d0907c76c2 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 55dd61db7b8d1f3ee934bc6fd98006c871a2af16..e4be935b1e367c55f534a29de9eb31e1d6e7944d 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 dbb1793df856cbe25f9ae0c4eadd533e22810ff7..04132c0a9d6d2d09327b6e6cf2c826523015b4e4 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 7314011baaead9328867b05858d82382bbf00ad6..702169a6100e9009429501913745e80f1245dcd3 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 ad5a5f2ab190eeef934b336323e1d4a709ea490d..11a7ff86cb4e3ae7b564b08ee842b92ff4ec2b54 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 8ba8fe12beff94d3d6313d30f756e37bfebabf6a..4405576f088e4ba5dcec99d8b823cebf4e74ecc2 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 f43bc9dce0a8dfd0d6d05e74bc52978f683b9b14..72c01ace58184e863be90f0b4f2e35d492eb8067 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 d85acf7bc317289e6837a9b8f4e318442de47a86..e7b60d7d351688a9033f9b30dd6eb057b0bc9542 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 5b1184103deba1ff10f6ad50085a7cd9ed52cf82..efc5055c2c696f59c1b68aa467c418608158312e 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 c3aeb54032980f3c554b856d1ecd2abed0278dd8..1b77fb4e692be727940455d44e37641ae4e7a430 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 4df78f5c1d54ecc321becdf28cc96b5b69e7bec2..5eb89d76ee7bb718e2d486a7f08a05e644cd4abb 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 d7d8d6c98a4de8ba29ce84176d93110caa2554ea..23184a1de6da560a7b382c506094df50ada3f040 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 f9ba77d5b6b62934f5c34417db50cfe9fcc3f011..240ad87512769a7916353b18da14949b5a1dbabf 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 80b1277d161755d2a60ba3e65d8d033e87f27d44..b044b3ffc58d52f9066b34a14440e65ddf121c50 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 72ae1959a3092a164a758861bd8d137b2e60a2f3..09f36908edc24db9edb21d55d1fc495a3e75a84a 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 d559148cc4075db6df9980f03ff16c2016462e99..742678b7e4231fb1475a96c97efd2cd424781c10 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 d965666bf9f9bedf0412daf97d7c48d440360d20..a16ba6cc6d4775b3b7d599fb4c39a3a0720488fb 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 f72c044e97586a1b7bafbf14a532ab7ddf1eb097..cfdb31783bee3efa001d28902aecac2290272e6c 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 72571fbe167bcee47fba5eee8979496ba908c9e0..6afa0d7fb58a33af467cd1d8768a55b5859cea9d 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 5eda8fb6eeabfef4b26fdc559839f815153cae36..ba600da29f579d861d7d342b773b2f32c57e5720 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 0e2dddc75a2f03cb66fdb5bc0d7f0617a85bf59d..3df548affcbd821e0db3e18873c2e29c70455d15 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 0000000000000000000000000000000000000000..2c1611ba0a82756f2c841f1b3cb0abc94431257a --- /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 46fbe6cb305d8649941b7c91e103ec0b8abfe266..da9bd363b0714e8694326e34d33c92fc2dd8c6c3 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 08bcb527a9f7344f7d57fddd0148f8189adafc0e..df20a66864149f1d91ed57264f0cc6f7b2e5cb2e 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 0000000000000000000000000000000000000000..58ad8aa7591058293a5aee4025b7f3730688ce77 --- /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 460a348ba7b6476fd2de3921c63697f660c69705..7656326fae6119dbbf17210e394d9fdd552c0517 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 1cc461fd43977ed67915e410f1bc1fd03b228f1f..1e1b84394a5f6f086d5ef859ea00e582c86de742 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 5836f55d593cdf0e9e3b068d3c4355c2377c0245..c7c86e1ff87752c1feb87e83ffa6e58ed5923644 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 1e4816fb507acd1e2d9fef6e6908b54283f573a1..5e0992453a1324d222dbaf340bfe0515f63e8d59 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;