|
|
@@ -2,9 +2,11 @@ package com.vaadin.tests.components.grid; |
|
|
|
|
|
|
|
import static org.hamcrest.MatcherAssert.assertThat; |
|
|
|
import static org.hamcrest.number.IsCloseTo.closeTo; |
|
|
|
import static org.junit.Assert.assertFalse; |
|
|
|
import static org.junit.Assert.assertNotEquals; |
|
|
|
|
|
|
|
import org.junit.Test; |
|
|
|
import org.openqa.selenium.By; |
|
|
|
|
|
|
|
import com.vaadin.testbench.TestBenchElement; |
|
|
|
import com.vaadin.testbench.elements.ButtonElement; |
|
|
@@ -18,7 +20,8 @@ public class GridDetailsUpdateItemsTest extends MultiBrowserTest { |
|
|
|
public void testDetailsUpdateWithItems() { |
|
|
|
openTestURL(); |
|
|
|
GridElement grid = $(GridElement.class).first(); |
|
|
|
ButtonElement button = $(ButtonElement.class).first(); |
|
|
|
ButtonElement button = $(ButtonElement.class) |
|
|
|
.caption("Change with details").first(); |
|
|
|
|
|
|
|
String details0 = grid.getDetails(0).getText(); |
|
|
|
|
|
|
@@ -41,6 +44,28 @@ public class GridDetailsUpdateItemsTest extends MultiBrowserTest { |
|
|
|
assertDirectlyAbove(cell1_0, detailCell1); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testRemovingDetailsWithItemUpdateRepositionsRowsCorrectly() { |
|
|
|
openTestURL(); |
|
|
|
GridElement grid = $(GridElement.class).first(); |
|
|
|
ButtonElement button = $(ButtonElement.class) |
|
|
|
.caption("Change without details").first(); |
|
|
|
|
|
|
|
assertFalse("Details not found when there should be some.", |
|
|
|
grid.findElements(By.className("v-grid-spacer")).isEmpty()); |
|
|
|
|
|
|
|
// change the contents |
|
|
|
button.click(); |
|
|
|
|
|
|
|
waitForElementNotPresent(By.className("v-grid-spacer")); |
|
|
|
|
|
|
|
GridCellElement cell0_0 = grid.getCell(0, 0); |
|
|
|
GridCellElement cell1_0 = grid.getCell(1, 0); |
|
|
|
|
|
|
|
// ensure positioning is correct |
|
|
|
assertDirectlyAbove(cell0_0, cell1_0); |
|
|
|
} |
|
|
|
|
|
|
|
private void assertDirectlyAbove(TestBenchElement above, |
|
|
|
TestBenchElement below) { |
|
|
|
int aboveBottom = above.getLocation().getY() |