Selenium selenium = getSelenium();
testAppFunctionalPage("/components/treetable/treeTableCellRowsEvents.jsf");
String cellPath = "tbody[0]/tr[0]/td[0]";
ElementInspector output = element("output");
TreeTableInspector onclickTreeTable = treeTable("formID:onclickTT");
//<o:cell> onclick
createEvent(onclickTreeTable, cellPath, EventType.MOUSE, "click", 0, false);
output.assertContainsText("onclick works");
output.assertContainsText("click");
//<o:cell> ondblclick
createEvent(onclickTreeTable, cellPath, EventType.MOUSE, "dblclick", 0, false);
output.assertContainsText("ondblclick works");
output.assertContainsText("dblclick");
ElementInspector output1 = element("output1");
TreeTableInspector onMouseDownTreeTable = treeTable("formID:onmouseDownUpTT");
//<o:cell> onmousedown
createEvent(onMouseDownTreeTable, cellPath, EventType.MOUSE, "mousedown", 0, false);
output1.assertContainsText("onmousedown works");
output1.assertContainsText("mousedown");
//<o:cell> onmouseup
createEvent(onMouseDownTreeTable, cellPath, EventType.MOUSE, "mouseup", 0, false);
output1.assertContainsText("onmouseup works");
output1.assertContainsText("mouseup");
ElementInspector cell = element("formID:onkeyTT").subElement(cellPath);
ElementInspector output2 = element("output2");
TreeTableInspector onkeyTreeTable = treeTable("formID:onkeyTT");
//<o:cell> onkeydown
cell.evalExpression("focus()");
createEvent(onkeyTreeTable, cellPath, EventType.KEY, "keydown", 49, false);
output2.assertContainsText("onkeydown works");
output2.assertContainsText("keydown");
//<o:cell> onkeypress
cell.evalExpression("focus()");
createEvent(onkeyTreeTable, cellPath, EventType.KEY, "keypress", 49, false);
output2.assertContainsText("onkeypress works");
output2.assertContainsText("keypress");
//<o:cell> onkeyup
cell.evalExpression("focus()");
createEvent(onkeyTreeTable, cellPath, EventType.KEY, "keyup", 49, false);
output2.assertContainsText("onkeyup works");
output2.assertContainsText("keyup");
ElementInspector output3 = element("output3");
TreeTableInspector onMouseTreeTable = treeTable("formID:onMouseOverOutMoveTT");
//<o:cell> onmouseover
createEvent(onMouseTreeTable, cellPath, EventType.MOUSE, "mouseover", 0, false);
output3.assertContainsText("onmouseover works");
output3.assertContainsText("mouseover");
//<o:cell> onmouseout
createEvent(onMouseTreeTable, cellPath, EventType.MOUSE, "mouseout", 0, false);
output3.assertContainsText("onmouseout works");
output3.assertContainsText("mouseout");
//<o:cell> onmousemove
createEvent(onMouseTreeTable, cellPath, EventType.MOUSE, "mousemove", 0, false);
output3.assertContainsText("onmousemove works");
output3.assertContainsText("mousemove");
String rowPath = "tbody[0]/tr[0]/td[0]";
ElementInspector output01 = element("output01");
TreeTableInspector rowOnclickTreeTable = treeTable("formID:rowOnclickTT");
//<o:row> onclick
createEvent(rowOnclickTreeTable, rowPath, EventType.MOUSE, "click", 0, false);
output01.assertContainsText("row onclick works");
output01.assertContainsText("row event type: click");
//<o:row> ondblclick
createEvent(rowOnclickTreeTable, rowPath, EventType.MOUSE, "dblclick", 0, false);
output01.assertContainsText("row ondblclick works");
output01.assertContainsText("row event type: dblclick");
ElementInspector output11 = element("output11");
TreeTableInspector rowOnmouseDownUp = treeTable("formID:rowOnmouseDownUpTT");
//<o:row> onmousedown
createEvent(rowOnmouseDownUp, rowPath, EventType.MOUSE, "mousedown", 0, false);
output11.assertContainsText("row onmousedown works");
output11.assertContainsText("row event type: mousedown");
//<o:row> onmouseup
createEvent(rowOnmouseDownUp, rowPath, EventType.MOUSE, "mouseup", 0, false);
output11.assertContainsText("row onmouseup works");
output11.assertContainsText("row event type: mouseup");
ElementInspector output21 = element("output21");
TreeTableInspector rowOnkeyTreeTable = treeTable("formID:rowOnkeyTT");
//<o:row> onkeydown
ElementInspector row = rowOnclickTreeTable.subElement(rowPath);
row.evalExpression("focus()");
createEvent(rowOnkeyTreeTable, rowPath, EventType.KEY, "keydown", 49, false);
output21.assertContainsText("row onkeydown works");
output21.assertContainsText("row event type: keydown");
//<o:row> onkeypress
row.evalExpression("focus()");
createEvent(rowOnkeyTreeTable, rowPath, EventType.KEY, "keypress", 49, false);
output21.assertContainsText("row onkeypress works");
output21.assertContainsText("row event type: keypress");
//<o:row> onkeyup
row.evalExpression("focus()");
createEvent(rowOnkeyTreeTable, rowPath, EventType.KEY, "keyup", 49, false);
output21.assertContainsText("row onkeyup works");
output21.assertContainsText("row event type: keyup");
ElementInspector output31 = element("output31");
TreeTableInspector rowOnMouseOverOutMove = treeTable("formID:rowOnMouseOverOutMoveTT");
//<o:row> onmouseover
createEvent(rowOnMouseOverOutMove, rowPath, EventType.MOUSE, "mouseover", 0, false);
output31.assertContainsText("row onmouseover works");
output31.assertContainsText("row event type: mouseover");
//<o:row> onmouseout
createEvent(rowOnMouseOverOutMove, rowPath, EventType.MOUSE, "mouseout", 0, false);
output31.assertContainsText("row onmouseout works");
output31.assertContainsText("row event type: mouseout");
//<o:row> onmousemove
createEvent(rowOnMouseOverOutMove, rowPath, EventType.MOUSE, "mousemove", 0, false);
output31.assertContainsText("row onmousemove works");
output31.assertContainsText("row event type: mousemove");
}