|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package com.vaadin.tests.components.grid;
-
- import static org.hamcrest.MatcherAssert.assertThat;
- import static org.hamcrest.Matchers.greaterThan;
- import static org.hamcrest.number.IsCloseTo.closeTo;
- import static org.junit.Assert.assertEquals;
-
- import java.util.List;
-
- import org.junit.Test;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.interactions.Actions;
-
- import com.vaadin.testbench.TestBenchElement;
- import com.vaadin.testbench.elements.GridElement;
- import com.vaadin.testbench.elements.GridElement.GridRowElement;
- import com.vaadin.testbench.elements.VerticalSplitPanelElement;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- public class GridScrolledToBottomTest extends MultiBrowserTest {
-
- @Test
- public void testResizingAndBack() {
- openTestURL();
- GridElement grid = $(GridElement.class).first();
- grid.scrollToRow(99);
-
- GridRowElement row99 = grid.getRow(99);
- int rowHeight = row99.getSize().getHeight();
- assertThat(grid.getLocation().getY() + grid.getSize().getHeight(),
- greaterThan(row99.getLocation().getY() + rowHeight - 2));
-
- VerticalSplitPanelElement splitPanel = $(
- VerticalSplitPanelElement.class).first();
- TestBenchElement splitter = splitPanel.getSplitter();
- // resize by three rows
- Actions actions = new Actions(driver);
- actions.clickAndHold(splitter).moveByOffset(0, -rowHeight * 3).release()
- .perform();
- // resize back by two rows
- actions.clickAndHold(splitter).moveByOffset(0, rowHeight * 2).release()
- .perform();
-
- GridRowElement row95 = grid.getRow(95);
- GridRowElement row97 = grid.getRow(97);
- assertThat((double) row97.getLocation().getY(),
- greaterThan(row95.getLocation().getY() + rowHeight * 1.5));
- }
-
- @Test
- public void testResizingHalfRow() {
- openTestURL();
- GridElement grid = $(GridElement.class).first();
- grid.scrollToRow(99);
-
- GridRowElement row99 = grid.getRow(99);
- int rowHeight = row99.getSize().getHeight();
- int gridBottomY = grid.getLocation().getY()
- + grid.getSize().getHeight();
-
- // ensure that grid really is scrolled to bottom
- assertThat((double) gridBottomY,
- closeTo((double) row99.getLocation().getY() + rowHeight, 1d));
-
- VerticalSplitPanelElement splitPanel = $(
- VerticalSplitPanelElement.class).first();
- TestBenchElement splitter = splitPanel.getSplitter();
- // resize by half a row
- Actions actions = new Actions(driver);
- actions.clickAndHold(splitter).moveByOffset(0, -rowHeight / 2).release()
- .perform();
- // the last row is now only half visible
-
- // can't query grid.getRow(99) now or it moves the row position,
- // have to use element query instead
- List<WebElement> rows = grid.findElement(By.className("v-grid-body"))
- .findElements(By.className("v-grid-row"));
- WebElement lastRow = rows.get(rows.size() - 1);
- WebElement secondToLastRow = rows.get(rows.size() - 2);
-
- // ensure the scrolling didn't jump extra
- assertEquals("Person 99",
- lastRow.findElement(By.className("v-grid-cell")).getText());
- assertEquals("Person 98", secondToLastRow
- .findElement(By.className("v-grid-cell")).getText());
-
- // re-calculate current end position
- gridBottomY = grid.getLocation().getY() + grid.getSize().getHeight();
- // ensure the correct final row really is only half visible at the
- // bottom
- assertThat(gridBottomY, greaterThan(lastRow.getLocation().getY()));
- assertThat(lastRow.getLocation().getY() + rowHeight,
- greaterThan(gridBottomY));
- }
- }
|