123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- /*
- * 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;
-
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertNotEquals;
- import static org.junit.Assert.assertTrue;
-
- import org.junit.Test;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.interactions.Actions;
- import org.openqa.selenium.support.ui.ExpectedCondition;
-
- import com.vaadin.testbench.By;
- import com.vaadin.testbench.elements.ButtonElement;
- import com.vaadin.testbench.elements.GridElement;
- import com.vaadin.testbench.elements.GridElement.GridCellElement;
- import com.vaadin.testbench.elements.NotificationElement;
- import com.vaadin.testbench.parallel.TestCategory;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- /**
- * TB tests for the various builtin widget-based renderers.
- *
- * @since
- * @author Vaadin Ltd
- */
- @TestCategory("grid")
- public class WidgetRenderersTest extends MultiBrowserTest {
-
- @Override
- public void setup() throws Exception {
- super.setup();
-
- openTestURL();
- }
-
- @Test
- public void testProgressBarRenderer() {
- assertTrue(getGridCell(0, 0).isElementPresent(
- By.className("v-progressbar")));
- }
-
- @Test
- public void testButtonRenderer() {
- WebElement button = getGridCell(0, 1).findElement(
- By.className("v-nativebutton"));
-
- button.click();
-
- waitUntilTextUpdated(button, "Clicked!");
- }
-
- @Test
- public void testButtonRendererAfterCellBeingFocused() {
- GridCellElement buttonCell = getGridCell(0, 1);
- assertFalse("cell should not be focused before focusing",
- buttonCell.isFocused());
-
- // avoid clicking on the button
- buttonCell.click(buttonCell.getSize().getWidth() - 10, 5);
- assertTrue("cell should be focused after focusing",
- buttonCell.isFocused());
-
- WebElement button = buttonCell.findElement(By
- .className("v-nativebutton"));
- assertNotEquals("Button should not be clicked before click",
- "Clicked!", button.getText());
-
- new Actions(getDriver()).moveToElement(button).click().perform();
-
- waitUntilTextUpdated(button, "Clicked!");
- }
-
- @Test
- public void testImageRenderer() {
- final WebElement image = getGridCell(0, 2).findElement(
- By.className("gwt-Image"));
-
- waitUntilmageSrcEndsWith(image, "window/img/close.png");
-
- image.click();
-
- waitUntilmageSrcEndsWith(image, "window/img/maximize.png");
- }
-
- private void waitUntilmageSrcEndsWith(final WebElement image,
- final String expectedText) {
- waitUntil(new ExpectedCondition<Boolean>() {
-
- @Override
- public Boolean apply(WebDriver input) {
- return image.getAttribute("src").endsWith(expectedText);
- }
-
- @Override
- public String toString() {
- // Timed out after 10 seconds waiting for ...
- return String
- .format("image source to update. Supposed to end with '%s' (was: '%s').",
- expectedText, image.getAttribute("src"));
- }
- });
- }
-
- @Test
- public void testColumnReorder() {
- $(ButtonElement.class).caption("Change column order").first().click();
-
- assertFalse("Notification was present",
- isElementPresent(NotificationElement.class));
-
- assertTrue(getGridCell(0, 0)
- .isElementPresent(By.className("gwt-Image")));
- assertTrue(getGridCell(0, 1).isElementPresent(
- By.className("v-progressbar")));
- assertTrue(getGridCell(0, 2).isElementPresent(
- By.className("v-nativebutton")));
- }
-
- @Test
- public void testPropertyIdInEvent() {
- WebElement button = getGridCell(0, 3).findElement(
- By.className("v-nativebutton"));
-
- button.click();
-
- waitUntilTextUpdated(button, WidgetRenderers.PROPERTY_ID);
- }
-
- GridCellElement getGridCell(int row, int col) {
- return $(GridElement.class).first().getCell(row, col);
- }
-
- private void waitUntilTextUpdated(final WebElement button,
- final String expectedText) {
- waitUntil(new ExpectedCondition<Boolean>() {
-
- @Override
- public Boolean apply(WebDriver input) {
- return button.getText().equals(expectedText);
- }
-
- @Override
- public String toString() {
- // Timed out after 10 seconds waiting for ...
- return String.format("button's text to become '%s' (was: '').",
- expectedText, button.getText());
- }
-
- });
- }
- }
|