TableElement table = $(TableElement.class).first();
List<CheckBoxElement> checkboxes = $(CheckBoxElement.class).all();
assertEquals(3, checkboxes.size());
// check text description
TestBenchElement cell_1_0 = table.getCell(1, 0);
cell_1_0.showTooltip();
checkTooltip("Cell description item 1, Text");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check button description
TestBenchElement cell_1_1 = table.getCell(1, 1);
cell_1_1.showTooltip();
checkTooltip("Button 1 description");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check textfield's description
TestBenchElement cell_1_2 = table.getCell(1, 2);
cell_1_2.showTooltip();
checkTooltip("Textfield's own description");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// uncheck component tooltips
checkboxes.get(0).findElement(By.tagName("input")).click();
// check text description
cell_1_0 = table.getCell(1, 0);
cell_1_0.showTooltip();
checkTooltip("Cell description item 1, Text");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check button description
cell_1_1 = table.getCell(1, 1);
cell_1_1.showTooltip();
checkTooltip("Cell description item 1, Component");
// move somewhere without a description
new Actions(getDriver()).moveToElement(checkboxes.get(2)).perform();
sleep(1000);
checkTooltipNotPresent();
// check textfield's description
cell_1_2 = table.getCell(1, 2);
cell_1_2.showTooltip();
checkTooltip("Cell description item 1, Generated component");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check component tooltips
checkboxes.get(0).findElement(By.tagName("input")).click();
// uncheck cell tooltips
checkboxes.get(1).findElement(By.tagName("input")).click();
// check text description
cell_1_0 = table.getCell(1, 0);
cell_1_0.showTooltip();
checkTooltip("Row description item 1");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check button description
cell_1_1 = table.getCell(1, 1);
cell_1_1.showTooltip();
checkTooltip("Button 1 description");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check textfield's description
cell_1_2 = table.getCell(1, 2);
cell_1_2.showTooltip();
checkTooltip("Textfield's own description");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// uncheck component tooltips
checkboxes.get(0).findElement(By.tagName("input")).click();
// check text description
cell_1_0 = table.getCell(1, 0);
cell_1_0.showTooltip();
checkTooltip("Row description item 1");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check button description
cell_1_1 = table.getCell(1, 1);
cell_1_1.showTooltip();
checkTooltip("Row description item 1");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();
// check textfield's description
cell_1_2 = table.getCell(1, 2);
cell_1_2.showTooltip();
checkTooltip("Row description item 1");
// move somewhere without a description
checkboxes.get(2).showTooltip();
checkTooltipNotPresent();