Author: andrei_exadel
Date: 2008-10-24 07:58:24 -0400 (Fri, 24 Oct 2008)
New Revision: 10895
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataTableBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataTable/dataTableTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataTableTest.java
Log:
DataTable test
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataTableBean.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataTableBean.java 2008-10-24
10:46:06 UTC (rev 10894)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataTableBean.java 2008-10-24
11:58:24 UTC (rev 10895)
@@ -8,10 +8,11 @@
import java.util.Set;
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.convert.Converter;
import javax.faces.event.ActionEvent;
import org.ajax4jsf.model.DataComponentState;
-import org.richfaces.component.html.HtmlDataTable;
import org.richfaces.model.Ordering;
@SuppressWarnings("unchecked")
@@ -27,6 +28,8 @@
private boolean filterMethodTurnOn = false;
+ private boolean rowConverterTurnOn = false;
+
private Set<Integer> ajaxKeys = new HashSet<Integer>();
private Object componentState;
@@ -39,6 +42,27 @@
};
};
+ public class RowKeyConverter implements Converter {
+
+ public Object getAsObject(FacesContext context, UIComponent component,
+ String value) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getAsString(FacesContext context, UIComponent component,
+ Object value) {
+ if (!rowConverterTurnOn) {
+ return value.toString();
+ }else {
+ return value.toString() + value.toString();
+ }
+ }
+
+ };
+
+ private RowKeyConverter rowKeyConverter = new RowKeyConverter();
+
public boolean filterMethod(Object o) {
if (!filterMethodTurnOn) {
return true;
@@ -163,6 +187,7 @@
public void reset() {
rows = 6;
filterMethodTurnOn = false;
+ rowConverterTurnOn = false;
prioritList = new ArrayList<String>();
ordering = Ordering.UNSORTED;
init();
@@ -188,6 +213,11 @@
return null;
}
+ public String testRowKeyConverter() {
+ rowConverterTurnOn = true;
+ return null;
+ }
+
public String testComponentState() throws Exception {
if (!(componentState instanceof DataComponentState)) {
throw new Exception("");
@@ -306,4 +336,19 @@
this.componentState = componentState;
}
+
+ /**
+ * @return the rowKeyConverter
+ */
+ public RowKeyConverter getRowKeyConverter() {
+ return rowKeyConverter;
+ }
+
+ /**
+ * @param rowKeyConverter the rowKeyConverter to set
+ */
+ public void setRowKeyConverter(RowKeyConverter rowKeyConverter) {
+ this.rowKeyConverter = rowKeyConverter;
+ }
+
}
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataTable/dataTableTest.xhtml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataTable/dataTableTest.xhtml 2008-10-24
10:46:06 UTC (rev 10894)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataTable/dataTableTest.xhtml 2008-10-24
11:58:24 UTC (rev 10895)
@@ -14,6 +14,7 @@
<h:commandButton id="testDESC" value="Test DESC"
action="#{dataTableBean.testDESCSorting}"></h:commandButton>
<h:commandButton id="testFilterMethod" value="Test FilterMethod"
action="#{dataTableBean.testFilterMethod}"></h:commandButton>
<h:commandButton id="testComponentState" value="Test
ComponentState"
action="#{dataTableBean.testComponentState}"></h:commandButton>
+ <h:commandButton id="testRowKeyConverter" value="Test
RowKeyConverter"
action="#{dataTableBean.testRowKeyConverter}"></h:commandButton>
</h:form>
<h:form id="_form">
@@ -26,12 +27,23 @@
ajaxKeys="#{dataTableBean.ajaxKeys}"
rowKeyVar="row"
stateVar="state"
- componentState="#{dataTableBean.componentState}">
+ componentState="#{dataTableBean.componentState}"
+ rowKeyConverter="#{dataTableBean.rowKeyConverter}">
<f:facet name="header">
- <h:outputText value="Data Table header"></h:outputText>
+ <rich:columnGroup>
+ <rich:column colspan="3">
+ <h:outputText id="header1" value="Data Table header
1"></h:outputText>
+ </rich:column>
+ <rich:column colspan="2" rowspan="2">
+ <h:outputText id="header2" value="Data Table header
2"></h:outputText>
+ </rich:column>
+ <rich:column colspan="3" breakBefore="true">
+ <h:outputText id="header3" value="Data Table header
3"></h:outputText>
+ </rich:column>
+ </rich:columnGroup>
</f:facet>
<f:facet name="footer">
- <h:outputText value="Data Table footer"></h:outputText>
+ <h:outputText id="footer" value="Data Table
footer"></h:outputText>
</f:facet>
<rich:column id="col1" sortBy="#{var.v1}"
sortOrder="#{dataTableBean.ordering}" selfSorted="false">
<f:facet name="header">
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-10-24
10:46:06 UTC (rev 10894)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-10-24
11:58:24 UTC (rev 10895)
@@ -583,6 +583,16 @@
/**
* Asserts DOM node is present
+ *
+ * @param id -
+ * DOM element id
+ */
+ public void AssertPresent(String id, String message) {
+ Assert.assertTrue(isPresentById(id), message);
+ }
+
+ /**
+ * Asserts DOM node is present
* @param id - DOM element id
*/
public void AssertRendered(String id) {
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataTableTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataTableTest.java 2008-10-24
10:46:06 UTC (rev 10894)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataTableTest.java 2008-10-24
11:58:24 UTC (rev 10895)
@@ -178,16 +178,22 @@
renderPage(template, RESET_METHOD);
init(getParentId());
- String title = getFacetTitle(true);
- Assert.assertEquals(title, "Data Table header", "DataTable header
missed");
-
- title = getFacetTitle(false);
+ String title = getHeaderFacet(1);
+ Assert.assertEquals(title, "Data Table header 1", "DataTable
header missed");
+ title = getHeaderFacet(2);
+ Assert.assertEquals(title, "Data Table header 2", "DataTable
header missed");
+ title = getHeaderFacet(3);
+ Assert.assertEquals(title, "Data Table header 3", "DataTable
header missed");
+ title = getFooterFacet();
Assert.assertEquals(title, "Data Table footer", "Data Table footer
missed");
+
for (int i = 1; i < 6; i++) {
String headerId = dataTableId + ":col" + i +
"header:sortDiv";
AssertTextEquals(headerId, "Column" + i, "Column
["+i+"] header incorrect");
}
+
+ testColspanRowspanBreakBefore();
}
@Test
@@ -262,6 +268,56 @@
autoTester.testStyleAndClasses(dataTableClassNames, styleAttributes);
autoTester.testRendered();
}
+
+ @Test
+ public void testRowKeyConverter (Template template) {
+ renderPage(template, RESET_METHOD);
+ init(getParentId());
+
+ String commandId = getParentId() + CONTROLS_FORM + "testRowKeyConverter";
+ clickCommandAndWait(commandId);
+
+ String message = "RowKeyConverter generates incorrect ids";
+ AssertPresent(dataTableId + ":00:col1", message);
+ AssertPresent(dataTableId + ":00:col2", message);
+ AssertPresent(dataTableId + ":00:col3", message);
+ AssertPresent(dataTableId + ":00:col4", message);
+ AssertPresent(dataTableId + ":00:col5", message);
+ AssertPresent(dataTableId + ":00:v1", message);
+ AssertPresent(dataTableId + ":00:v2", message);
+ AssertPresent(dataTableId + ":00:v3", message);
+ AssertPresent(dataTableId + ":00:v4", message);
+ AssertPresent(dataTableId + ":00:v5", message);
+
+ AssertPresent(dataTableId + ":11:v2", message);
+ AssertPresent(dataTableId + ":22:v3", message);
+ AssertPresent(dataTableId + ":33:v4", message);
+ AssertPresent(dataTableId + ":44:input", message);
+ AssertPresent(dataTableId + ":55:link", message);
+
+ }
+
+ private void testColspanRowspanBreakBefore() {
+ String id = dataTableId + ":header1";
+ String colspan = getColspan(id);
+ String rowspan = null;
+ Assert.assertEquals(colspan, "3", "Colspan does not work");
+
+ id = dataTableId + ":header2";
+ colspan = getColspan(id);
+ rowspan = getRowspan(id);
+ Assert.assertEquals(colspan, "2", "Colspan does not work");
+ Assert.assertEquals(rowspan, "2", "Rowspan does not work");
+
+ id = dataTableId + ":header3";
+ colspan = getColspan(id);
+ Assert.assertEquals(colspan, "3", "Colspan does not work");
+
+ String parentTagName = runScript(getElementById(id) +
".parentNode.parentNode.tagName;");
+ Assert.assertEquals(parentTagName.toLowerCase(), "tr", "Breakbefore
does not work");
+
+
+ }
private void testRowsCount(int rows) {
@@ -334,12 +390,25 @@
return b.toString();
}
- private String getFacetTitle(boolean header) {
- StringBuffer b = new StringBuffer(getElementById(dataTableId));
- b.append(".").append(header ? "tHead" : "tFoot").append(
- ".firstChild.firstChild.innerHTML");
- return runScript(b.toString());
+ private String getHeaderFacet(int i) {
+ String id = dataTableId + ":header" + i;
+ return getTextById(id);
}
+
+ private String getFooterFacet() {
+ String id = dataTableId + ":footer";
+ return getTextById(id);
+ }
+
+
+ private String getColspan(String headerID) {
+ return runScript(getElementById(headerID) + ".parentNode.colSpan;");
+ }
+
+ private String getRowspan(String headerID) {
+ return runScript(getElementById(headerID) + ".parentNode.rowSpan;");
+ }
+
}