123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- /*
- * Copyright 2000-2014 Vaadin Ltd.
- *
- * 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 com.vaadin.tests.components.grid.basicfeatures;
-
- import java.util.ArrayList;
- import java.util.List;
-
- import org.openqa.selenium.By;
- import org.openqa.selenium.JavascriptExecutor;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.interactions.Actions;
-
- import com.vaadin.testbench.TestBenchElement;
- import com.vaadin.testbench.elements.GridElement;
- import com.vaadin.testbench.parallel.TestCategory;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- @TestCategory("grid")
- public abstract class GridBasicFeaturesTest extends MultiBrowserTest {
-
- @Override
- protected boolean requireWindowFocusForIE() {
- return true;
- }
-
- @Override
- protected Class<?> getUIClass() {
- return GridBasicFeatures.class;
- }
-
- protected void selectSubMenu(String menuCaption) {
- selectMenu(menuCaption);
- new Actions(getDriver()).moveByOffset(100, 0).build().perform();
- }
-
- protected void selectMenu(String menuCaption) {
- getDriver().findElement(
- By.xpath("//span[text() = '" + menuCaption + "']")).click();
- }
-
- protected void selectMenuPath(String... menuCaptions) {
- selectMenu(menuCaptions[0]);
- for (int i = 1; i < menuCaptions.length; i++) {
- selectSubMenu(menuCaptions[i]);
- }
- }
-
- protected GridElement getGridElement() {
- return ((TestBenchElement) findElement(By.id("testComponent")))
- .wrap(GridElement.class);
- }
-
- protected void scrollGridVerticallyTo(double px) {
- executeScript("arguments[0].scrollTop = " + px,
- getGridVerticalScrollbar());
- }
-
- protected int getGridVerticalScrollPos() {
- return ((Number) executeScript("return arguments[0].scrollTop",
- getGridVerticalScrollbar())).intValue();
- }
-
- protected List<TestBenchElement> getGridHeaderRowCells() {
- List<TestBenchElement> headerCells = new ArrayList<TestBenchElement>();
- for (int i = 0; i < getGridElement().getHeaderCount(); ++i) {
- headerCells.addAll(getGridElement().getHeaderCells(i));
- }
- return headerCells;
- }
-
- protected List<TestBenchElement> getGridFooterRowCells() {
- List<TestBenchElement> footerCells = new ArrayList<TestBenchElement>();
- for (int i = 0; i < getGridElement().getFooterCount(); ++i) {
- footerCells.addAll(getGridElement().getFooterCells(i));
- }
- return footerCells;
- }
-
- protected WebElement getEditor() {
- List<WebElement> elems = getGridElement().findElements(
- By.className("v-grid-editor"));
-
- assertLessThanOrEqual("number of editors", elems.size(), 1);
-
- return elems.isEmpty() ? null : elems.get(0);
- }
-
- private Object executeScript(String script, WebElement element) {
- final WebDriver driver = getDriver();
- if (driver instanceof JavascriptExecutor) {
- final JavascriptExecutor je = (JavascriptExecutor) driver;
- return je.executeScript(script, element);
- } else {
- throw new IllegalStateException("current driver "
- + getDriver().getClass().getName() + " is not a "
- + JavascriptExecutor.class.getSimpleName());
- }
- }
-
- protected WebElement getGridVerticalScrollbar() {
- return getDriver()
- .findElement(
- By.xpath("//div[contains(@class, \"v-grid-scroller-vertical\")]"));
- }
-
- /**
- * Reloads the page without restartApplication. This occasionally breaks
- * stuff.
- */
- protected void reopenTestURL() {
- String testUrl = getTestUrl();
- testUrl = testUrl.replace("?restartApplication", "?");
- testUrl = testUrl.replace("?&", "?");
- driver.get(testUrl);
- }
- }
|