Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

GridSidebarPositionTest.java 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.vaadin.tests.components.grid;
  2. import static org.junit.Assert.assertTrue;
  3. import java.util.List;
  4. import org.junit.Test;
  5. import org.openqa.selenium.By;
  6. import org.openqa.selenium.Dimension;
  7. import org.openqa.selenium.Point;
  8. import org.openqa.selenium.WebElement;
  9. import com.vaadin.testbench.elements.GridElement;
  10. import com.vaadin.tests.tb3.MultiBrowserTest;
  11. public class GridSidebarPositionTest extends MultiBrowserTest {
  12. @Test
  13. public void heightRestrictedToBrowserWindow() {
  14. openTestURL();
  15. GridElement gridWithVeryManyColumns = $(GridElement.class)
  16. .id(GridSidebarPosition.POPUP_WINDOW_HEIGHT);
  17. getSidebarOpenButton(gridWithVeryManyColumns).click();
  18. Dimension popupSize = getSidebarPopup().getSize();
  19. Dimension browserWindowSize = getDriver().manage().window().getSize();
  20. assertTrue(popupSize.getHeight() <= browserWindowSize.getHeight());
  21. }
  22. @Test
  23. public void popupNotBelowBrowserWindow() {
  24. openTestURL();
  25. GridElement gridAtBottom = $(GridElement.class)
  26. .id(GridSidebarPosition.POPUP_WINDOW_MOVED_UP);
  27. getSidebarOpenButton(gridAtBottom).click();
  28. WebElement sidebarPopup = getSidebarPopup();
  29. Dimension popupSize = sidebarPopup.getSize();
  30. Point popupLocation = sidebarPopup.getLocation();
  31. int popupBottom = popupLocation.getY() + popupSize.getHeight();
  32. Dimension browserWindowSize = getDriver().manage().window().getSize();
  33. assertTrue(popupBottom <= browserWindowSize.getHeight());
  34. }
  35. @Test
  36. public void popupAbove() {
  37. openTestURL();
  38. GridElement gridPopupAbove = $(GridElement.class)
  39. .id(GridSidebarPosition.POPUP_ABOVE);
  40. WebElement sidebarOpenButton = getSidebarOpenButton(gridPopupAbove);
  41. sidebarOpenButton.click();
  42. WebElement sidebarPopup = getSidebarPopup();
  43. Dimension popupSize = sidebarPopup.getSize();
  44. Point popupLocation = sidebarPopup.getLocation();
  45. int popupBottom = popupLocation.getY() + popupSize.getHeight();
  46. int sideBarButtonTop = sidebarOpenButton.getLocation().getY();
  47. assertTrue(popupBottom <= sideBarButtonTop);
  48. }
  49. protected WebElement getSidebarOpenButton(GridElement grid) {
  50. List<WebElement> elements = grid
  51. .findElements(By.className("v-grid-sidebar-button"));
  52. return elements.isEmpty() ? null : elements.get(0);
  53. }
  54. protected WebElement getSidebarPopup() {
  55. List<WebElement> elements = findElements(
  56. By.className("v-grid-sidebar-popup"));
  57. return elements.isEmpty() ? null : elements.get(0);
  58. }
  59. }