Author: konstantin.mishin
Date: 2008-11-13 07:45:44 -0500 (Thu, 13 Nov 2008)
New Revision: 11134
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/orderingList/orderingListTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/OrderingListTest.java
Log:
RF-4895
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/orderingList/orderingListTest.xhtml
===================================================================
(Binary files differ)
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/OrderingListTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/OrderingListTest.java 2008-11-13
12:44:17 UTC (rev 11133)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/OrderingListTest.java 2008-11-13
12:45:44 UTC (rev 11134)
@@ -77,6 +77,53 @@
private String immediateId;
/**
+ * keyboard navigation works for component
+ */
+ @Test
+ public void testKeyboardNavigation(Template template) {
+ renderPage(template, initMethod);
+ initFields();
+ _checkOrdering(new String[]{"0", "1", "2",
"3"});
+ _selectItem(orderingListId + ":0", false, false);
+ _selectItem(orderingListId + ":2", true, false);
+ selenium.click(downButton);
+ _checkOrdering(new String[]{"1", "0", "3",
"2"});
+ _selectItem(orderingListId + ":1", false, false);
+ _selectItem(orderingListId + ":3", false, true);
+ selenium.click(downButton);
+ _checkOrdering(new String[]{"2", "1", "0",
"3"});
+ _selectItem(orderingListId + ":0", false, false);
+ selenium.controlKeyDown();
+ selenium.keyDown(orderingListId + "focusKeeper", "A");
+ selenium.controlKeyUp();
+ clickAjaxCommandAndWait(submitId);
+ Assert.assertTrue(selenium.getText(selectionText).split(",").length ==
4);
+ _selectItem(orderingListId + ":1", false, false);
+ selenium.keyDown(orderingListId + "focusKeeper", "\\40");
+ selenium.click(upButton);
+ _checkOrdering(new String[]{"2", "0", "1",
"3"});
+ _selectItem(orderingListId + ":3", false, false);
+ selenium.keyDown(orderingListId + "focusKeeper", "\\38");
+ selenium.click(downButton);
+ _checkOrdering(new String[]{"2", "0", "3",
"1"});
+ _selectItem(orderingListId + ":1", false, false);
+ selenium.keyDown(orderingListId + "focusKeeper", "\\33");
+ _checkOrdering(new String[]{"1", "2", "0",
"3"});
+ selenium.keyDown(orderingListId + "focusKeeper", "\\34");
+ _checkOrdering(new String[]{"2", "0", "3",
"1"});
+ _selectItem(orderingListId + ":1", false, false);
+ selenium.controlKeyDown();
+ selenium.keyDown(orderingListId + "focusKeeper", "\\38");
+ selenium.controlKeyUp();
+ _checkOrdering(new String[]{"2", "0", "1",
"3"});
+ _selectItem(orderingListId + ":1", false, false);
+ selenium.controlKeyDown();
+ selenium.keyDown(orderingListId + "focusKeeper", "\\40");
+ selenium.controlKeyUp();
+ _checkOrdering(new String[]{"2", "0", "3",
"1"});
+ }
+
+ /**
* immediate = true component works respectively
*/
@Test
@@ -349,12 +396,34 @@
private void _checkOrdering(String[] ordering) {
for (int i = 0; i < ordering.length; i++) {
Assert.assertEquals(selenium.
- getAttribute("xpath=id('" + orderingListId
+"tbody')/tr[" + (i + 1) + "]@id"),
- orderingListId + ":" + ordering[i]);
+ getText("xpath=id('" + orderingListId +"tbody')/tr["
+ (i + 1) + "]/td[1]"),
+ "item" + ordering[i]);
}
}
+ private void _selectItem(String itemId, boolean ctrl, boolean shift) {
+ writeStatus("Select item id: " + itemId);
+ try {
+ if (ctrl) {
+ selenium.controlKeyDown();
+ }
+ if (shift) {
+ selenium.shiftKeyDown();
+ }
+ selenium.click(itemId);
+ if (ctrl) {
+ selenium.controlKeyUp();
+ }
+ if (shift) {
+ selenium.shiftKeyUp();
+ }
+ } catch (Exception e) {
+ writeStatus("Selection item id: " + itemId + "
failed.");
+ Assert.fail("No item was found. Item id: " + itemId + e);
+ }
+ }
+
private void initFields() {
String formId = getParentId() + "_form:";
String attrFormId = getParentId() + "attrFormId";