package com.vaadin.tests.components.table; import static junit.framework.TestCase.fail; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import java.io.IOException; import org.junit.Test; import org.openqa.selenium.NoSuchElementException; import com.vaadin.testbench.By; import com.vaadin.testbench.elements.TableElement; import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.tests.tb3.MultiBrowserTest; public class ContainerSizeChangeTest extends MultiBrowserTest { @Test public void tableShouldLoadCorrectItems() throws IOException, InterruptedException { openTestURL(); ButtonElement decreaseSize = $(ButtonElement.class) .caption("Decrease size").first(); decreaseSize.click(); // decreasing container size from 50 to 40 decreaseSize.click(); // decreasing container size from 40 to 30 TableElement table = $(TableElement.class).first(); // TableElement scroll not working properly, so we need to do this. // http://dev.vaadin.com/ticket/13826 testBenchElement(table.findElement(By.className("v-scrollable"))) .scroll(1000); // waitforvaadin not worky currently for table scroll, so we need to use // thread sleep :( Thread.sleep(1500); assertThatRowExists(table, 29); assertRowDoesNotExist(table, 30); } private void assertThatRowExists(TableElement table, int rowIndex) { assertThat(table.getCell(rowIndex, 0).getText(), is(String.format("a %s", rowIndex))); } private void assertRowDoesNotExist(TableElement table, int rowIndex) { try { table.getCell(rowIndex, 0); fail(String.format("Row %s should not exists.", rowIndex)); } catch (NoSuchElementException e) { } } }