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.

GridColumnResizeModeTest.java 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.vaadin.tests.components.grid.basicfeatures;
  2. import static org.junit.Assert.assertTrue;
  3. import java.util.List;
  4. import org.junit.Assert;
  5. import org.junit.Before;
  6. import org.junit.Test;
  7. import org.openqa.selenium.WebElement;
  8. import org.openqa.selenium.interactions.Actions;
  9. import com.vaadin.testbench.By;
  10. import com.vaadin.testbench.elements.GridElement;
  11. import com.vaadin.testbench.elements.GridElement.GridCellElement;
  12. import com.vaadin.testbench.parallel.TestCategory;
  13. import com.vaadin.tests.components.grid.basics.GridBasicsTest;
  14. @TestCategory("grid")
  15. public class GridColumnResizeModeTest extends GridBasicsTest {
  16. @Before
  17. public void before() {
  18. openTestURL();
  19. }
  20. @Test
  21. public void testSimpleResizeModeToggle() throws Exception {
  22. GridElement grid = getGridElement();
  23. List<WebElement> handles = grid
  24. .findElements(By.className("v-grid-column-resize-handle"));
  25. WebElement handle = handles.get(1);
  26. Actions drag1 = new Actions(getDriver()).moveToElement(handle)
  27. .clickAndHold();
  28. Actions drag2 = new Actions(getDriver()).moveByOffset(-50, 0);
  29. Actions drag3 = new Actions(getDriver()).moveByOffset(100, 0);
  30. Actions dragEndAction = new Actions(getDriver()).release()
  31. .moveToElement(grid);
  32. selectMenuPath("Component", "Columns", "Simple resize mode");
  33. sleep(250);
  34. drag1.perform();
  35. sleep(500);
  36. drag2.perform();
  37. sleep(500);
  38. drag3.perform();
  39. sleep(500);
  40. // Make sure we find at least one simple resize mode splitter
  41. assertElementPresent(
  42. By.className("v-grid-column-resize-simple-indicator"));
  43. dragEndAction.perform();
  44. // Make sure it went away
  45. assertElementNotPresent(
  46. By.className("v-grid-column-resize-simple-indicator"));
  47. // See that we got a resize event
  48. sleep(500);
  49. assertTrue("Log shows resize event", getLogRow(0)
  50. .contains("ColumnResizeEvent: isUserOriginated? true"));
  51. }
  52. @Test
  53. public void testSimpleResizeModeMultipleDrag() {
  54. GridElement grid = getGridElement();
  55. List<WebElement> handles = grid
  56. .findElements(By.className("v-grid-column-resize-handle"));
  57. WebElement handle = handles.get(1);
  58. GridCellElement cell = grid.getHeaderCell(0, 1);
  59. int initialWidth = cell.getSize().getWidth();
  60. selectMenuPath("Component", "Columns", "Simple resize mode");
  61. sleep(250);
  62. drag(handle, 100);
  63. Assert.assertEquals(initialWidth + 100, cell.getSize().getWidth());
  64. drag(handle, -100);
  65. Assert.assertEquals(initialWidth, cell.getSize().getWidth());
  66. }
  67. @Test
  68. public void testResizeReportedWidth() {
  69. GridElement grid = getGridElement();
  70. selectMenuPath("Component", "Columns", "Add resize listener");
  71. List<WebElement> handles = grid
  72. .findElements(By.className("v-grid-column-resize-handle"));
  73. WebElement handle = handles.get(1);
  74. GridCellElement cell = grid.getHeaderCell(0, 1);
  75. // ANIMATED resize mode
  76. drag(handle, 100);
  77. assertTrue("Expected width: " + cell.getSize().getWidth(),
  78. getLogRow(0).contains("Column resized: caption=Column 1, width="
  79. + cell.getSize().getWidth()));
  80. drag(handle, -100);
  81. assertTrue("Expected width: " + cell.getSize().getWidth(),
  82. getLogRow(0).contains("Column resized: caption=Column 1, width="
  83. + cell.getSize().getWidth()));
  84. // SIMPLE resize mode
  85. selectMenuPath("Component", "Columns", "Simple resize mode");
  86. sleep(250);
  87. drag(handle, 100);
  88. assertTrue("Expected width: " + cell.getSize().getWidth(),
  89. getLogRow(0).contains("Column resized: caption=Column 1, width="
  90. + cell.getSize().getWidth()));
  91. drag(handle, -100);
  92. assertTrue("Expected width: " + cell.getSize().getWidth(),
  93. getLogRow(0).contains("Column resized: caption=Column 1, width="
  94. + cell.getSize().getWidth()));
  95. }
  96. private void drag(WebElement handle, int xOffset) {
  97. new Actions(getDriver()).moveToElement(handle).clickAndHold()
  98. .moveByOffset(20, 0).moveByOffset(xOffset - 20, 0).release()
  99. .perform();
  100. sleep(250);
  101. }
  102. }