123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package com.vaadin.tests.fieldgroup;
-
- import java.util.Locale;
-
- import org.junit.Before;
- import org.junit.Test;
- import org.openqa.selenium.By;
- import org.openqa.selenium.Keys;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.interactions.Actions;
-
- import com.vaadin.testbench.elements.CheckBoxElement;
- import com.vaadin.testbench.elements.DateFieldElement;
- import com.vaadin.testbench.elements.GridElement;
- import com.vaadin.testbench.elements.GridElement.GridCellElement;
- import com.vaadin.testbench.elements.GridElement.GridEditorElement;
- import com.vaadin.testbench.parallel.TestCategory;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertFalse;
- import static org.junit.Assert.assertNotEquals;
- import static org.junit.Assert.assertTrue;
-
- @TestCategory("grid")
- public class BasicCrudGridEditorRowTest extends MultiBrowserTest {
- private GridElement grid;
-
- @Before
- public void openTest() {
- openTestURL();
- grid = $(GridElement.class).first();
- }
-
- @Test
- public void lookAndFeel() throws Exception {
- GridCellElement ritaBirthdate = grid.getCell(2, 3);
- waitUntilLoadingIndicatorNotVisible();
- assertEquals("May 16, 1992", ritaBirthdate.getText());
-
- // Grid Editor should not present yet
- waitForElementNotPresent(By.className("v-grid-editor"));
- // Open editor row
- new Actions(getDriver()).doubleClick(ritaBirthdate).perform();
- sleep(200);
- // Compound class name is not allowed to use here,
- // check the v-grid-editor class only in this case.
- waitForElementPresent(By.className("v-grid-editor"));
- }
-
- @Test
- public void editorRowOneInvalidValue() throws Exception {
- GridCellElement ritaBirthdate = grid.getCell(2, 3);
- // Open editor row
- new Actions(getDriver()).doubleClick(ritaBirthdate).perform();
-
- GridEditorElement editor = grid.getEditor();
- DateFieldElement dateField = editor.$(DateFieldElement.class).first();
- WebElement input = dateField.findElement(By.xpath("input"));
- // input.click();
- input.sendKeys("Invalid", Keys.TAB);
- editor.save();
-
- assertTrue("Editor wasn't displayed.", editor.isDisplayed());
- assertTrue("DateField wasn't displayed.", dateField.isDisplayed());
-
- assertTrue("DateField didn't have 'v-invalid' css class.",
- hasCssClass(dateField, "v-datefield-error"));
- }
-
- @Test
- public void testCheckboxInEditorWorks() {
- GridCellElement ritaBirthdate = grid.getCell(2, 3);
- // Open editor row
- new Actions(getDriver()).doubleClick(ritaBirthdate).perform();
-
- // Get CheckBox
- GridEditorElement editor = grid.getEditor();
- CheckBoxElement cb = editor.getField(5).wrap(CheckBoxElement.class);
-
- // Check values
- String value = cb.getValue();
- cb.click();
- assertNotEquals("Checkbox value did not change", value, cb.getValue());
- }
-
- @Test
- public void testNoTopStyleSetOnEditorOpenWithFooterOnTop() {
- GridCellElement cell = grid.getCell(2, 3);
- // Open editor row
- new Actions(getDriver()).doubleClick(cell).perform();
-
- // Close editor
- new Actions(getDriver()).sendKeys(Keys.ESCAPE).perform();
-
- cell = grid.getCell(14, 3);
-
- // Open editor row
- new Actions(getDriver()).doubleClick(cell).perform();
-
- String attribute = grid.getEditor().getAttribute("style")
- .toLowerCase(Locale.ROOT);
- assertFalse("Style should not contain top.",
- attribute.contains("top:"));
- }
-
- }
|