You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GridEditorMultiselectTest.java 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package com.vaadin.tests.components.grid;
  2. import java.util.List;
  3. import org.junit.Test;
  4. import org.openqa.selenium.WebElement;
  5. import com.vaadin.testbench.By;
  6. import com.vaadin.testbench.elements.GridElement;
  7. import com.vaadin.testbench.parallel.TestCategory;
  8. import com.vaadin.tests.tb3.MultiBrowserTest;
  9. import static org.junit.Assert.assertEquals;
  10. import static org.junit.Assert.assertTrue;
  11. @TestCategory("grid")
  12. public class GridEditorMultiselectTest extends MultiBrowserTest {
  13. @Test
  14. public void testSelectCheckboxesDisabled() {
  15. openTestURL();
  16. GridElement grid = openEditor();
  17. assertCheckboxesEnabled(grid, false);
  18. }
  19. @Test
  20. public void testSelectCheckboxesEnabledBackOnSave() {
  21. openTestURL();
  22. GridElement grid = openEditor();
  23. grid.getEditor().save();
  24. waitForElementNotPresent(By.className("v-grid-editor-cells"));
  25. assertCheckboxesEnabled(grid, true);
  26. }
  27. @Test
  28. public void testSelectCheckboxesEnabledBackOnCancel() {
  29. openTestURL();
  30. GridElement grid = openEditor();
  31. grid.getEditor().cancel();
  32. sleep(100);
  33. assertCheckboxesEnabled(grid, true);
  34. }
  35. private GridElement openEditor() {
  36. GridElement grid = $(GridElement.class).first();
  37. grid.getRow(0).doubleClick();
  38. assertTrue("Grid editor should be displayed.",
  39. grid.getEditor().isDisplayed());
  40. return grid;
  41. }
  42. private void assertCheckboxesEnabled(GridElement grid, boolean isEnabled) {
  43. List<WebElement> checkboxes = grid
  44. .findElements(By.xpath("//input[@type='checkbox']"));
  45. for (WebElement checkbox : checkboxes) {
  46. assertEquals(
  47. "Select checkboxes should be "
  48. + (isEnabled ? "enabled" : "disabled"),
  49. isEnabled, checkbox.isEnabled());
  50. }
  51. }
  52. }