package com.vaadin.tests.components.grid;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class GridRefreshRowTest extends SingleBrowserTest {
private GridElement grid;
@Test
public void refreshRow() {
openTestURL();
grid = $(GridElement.class).first();
update(0);
update(1);
update(2);
style(1);
style(2);
Assert.assertEquals("Lisa", grid.getCell(0, 1).getText());
Assert.assertEquals("Joshua", grid.getCell(1, 1).getText());
Assert.assertEquals("Marge", grid.getCell(2, 1).getText());
Assert.assertFalse(hasCssClass(grid.getRow(0), "rowstyle"));
Assert.assertFalse(hasCssClass(grid.getRow(1), "rowstyle"));
Assert.assertFalse(hasCssClass(grid.getRow(2), "rowstyle"));
Assert.assertFalse(hasCssClass(grid.getCell(0, 0), "cellstyle"));
Assert.assertFalse(hasCssClass(grid.getCell(1, 0), "cellstyle"));
Assert.assertFalse(hasCssClass(grid.getCell(2, 0), "cellstyle"));
refresh(1);
Assert.assertEquals("Lisa", grid.getCell(0, 1).getText());
Assert.assertEquals("!Joshua", grid.getCell(1, 1).getText());
Assert.assertEquals("Marge", grid.getCell(2, 1).getText());
Assert.assertFalse(hasCssClass(grid.getRow(0), "rowstyle"));
Assert.assertTrue(hasCssClass(grid.getRow(1), "rowstyle"));
Assert.assertFalse(hasCssClass(grid.getRow(2), "rowstyle"));
Assert.assertFalse(hasCssClass(grid.getCell(0, 0), "cellstyle"));
Assert.assertTrue(hasCssClass(grid.getCell(1, 0), "cellstyle"));
Assert.assertFalse(hasCssClass(grid.getCell(2, 0), "cellstyle"));
// Assert refreshing works many times and for many rows at the same time
update(0);
update(1);
update(2);
refresh10First();
Assert.assertEquals("!!Lisa", grid.getCell(0, 1).getText());
Assert.assertEquals("!!Joshua", grid.getCell(1, 1).getText());
Assert.assertEquals("!!Marge", grid.getCell(2, 1).getText());
}
private void refresh10First() {
$(ButtonElement.class).id("refresh10").click();
}
private void update(int i) {
$(ButtonElement.class).id("update" + i).click();
}
private void style(int i) {
$(CheckBoxElement.class).id("style" + i).click();
}
private void refresh(int i) {
$(ButtonElement.class).id("refresh" + i).click();
}
}