You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by de...@apache.org on 2018/05/08 12:49:21 UTC
[myfaces] 22/29: MYFACES-3518 and MYFACES-1528 Regression:
empty with CachedRowSet (fix test)
This is an automated email from the ASF dual-hosted git repository.
deki pushed a commit to branch 1.1.x
in repository https://gitbox.apache.org/repos/asf/myfaces.git
commit 490e18faf53c42e54132ec567c231f6236862fdf
Author: Leonardo Uribe <lu...@apache.org>
AuthorDate: Fri Mar 30 01:58:42 2012 +0000
MYFACES-3518 and MYFACES-1528 Regression: <h:DataTable> empty with CachedRowSet (fix test)
---
.../renderkit/html/HtmlTableRendererTest.java | 134 +++++++++++++++++++++
1 file changed, 134 insertions(+)
diff --git a/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTableRendererTest.java b/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTableRendererTest.java
index 73a067a..d688855 100644
--- a/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTableRendererTest.java
+++ b/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlTableRendererTest.java
@@ -19,8 +19,13 @@
package org.apache.myfaces.renderkit.html;
import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+import javax.faces.component.UIColumn;
import javax.faces.component.html.HtmlDataTable;
+import javax.faces.component.html.HtmlOutputText;
+import javax.faces.model.ListDataModel;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -60,6 +65,11 @@ public class HtmlTableRendererTest extends AbstractJsfTestCase
dataTable.getRendererType(),
new HtmlTableRenderer());
+ HtmlOutputText text = new HtmlOutputText();
+ facesContext.getRenderKit().addRenderer(
+ text.getFamily(),
+ text.getRendererType(),
+ new HtmlTextRenderer());
}
public void tearDown()
@@ -90,4 +100,128 @@ public class HtmlTableRendererTest extends AbstractJsfTestCase
fail(HtmlCheckAttributesUtil.constructErrorMessage(attrs, writer.getWriter().toString()));
}
}
+
+ /**
+ * Check table renderer behavior when DataModel returns -1 from getRowCount(). It should
+ * render the same as if that value is provided. Note t:dataTable newspaper mode requires
+ * row count to calculate newspaperRows and newspaperColumns.
+ */
+ public void testNoRowCountRender() throws Exception
+ {
+ List list = new ArrayList();
+ list.add(new Person("John" , "Smith"));
+ list.add(new Person("Pepito", "Perez"));
+ list.add(new Person("Kurt", "Kobain"));
+
+ dataTable.setId("data");
+ dataTable.setRowClasses("class1, class2");
+ dataTable.setVar("person");
+
+ UIColumn column1 = new UIColumn();
+ HtmlOutputText text = new HtmlOutputText();
+ text.setValueBinding("value",
+ facesContext.getApplication().createValueBinding("#{person.firstName}"));
+ column1.getChildren().add(text);
+
+ dataTable.getChildren().add(column1);
+ UIColumn column2 = new UIColumn();
+ HtmlOutputText text2 = new HtmlOutputText();
+ text2.setValueBinding("value",
+ facesContext.getApplication().createValueBinding("#{person.lastName}"));
+ column2.getChildren().add(text2);
+ dataTable.getChildren().add(column2);
+
+ UnknownRowCountDemoDataModel urdm = new UnknownRowCountDemoDataModel();
+ urdm.setWrappedData(list);
+ dataTable.setValue(urdm);
+
+ String output1 = null;
+ try
+ {
+ dataTable.encodeBegin(facesContext);
+ dataTable.encodeChildren(facesContext);
+ dataTable.encodeEnd(facesContext);
+ output1 = ((StringWriter) writer.getWriter()).getBuffer().toString();
+ }
+ catch (Exception e)
+ {
+ fail(e.getMessage());
+ }
+
+ ListDataModel ldm = new ListDataModel();
+ ldm.setWrappedData(list);
+ dataTable.setValue(ldm);
+ ((StringWriter) writer.getWriter()).getBuffer().setLength(0);
+
+ String output2 = null;
+ try
+ {
+ dataTable.encodeBegin(facesContext);
+ dataTable.encodeChildren(facesContext);
+ dataTable.encodeEnd(facesContext);
+ output2 = ((StringWriter) writer.getWriter()).getBuffer().toString();
+ }
+ catch (Exception e)
+ {
+ fail(e.getMessage());
+ }
+
+ assertTrue(output2.contains("John"));
+ assertTrue(output2.contains("Smith"));
+ assertTrue(output2.contains("class1"));
+ assertTrue(output2.contains("class2"));
+
+ assertTrue(output1.contains("John"));
+ assertTrue(output1.contains("Smith"));
+ assertTrue(output1.contains("class1"));
+ assertTrue(output1.contains("class2"));
+
+ assertEquals(output2, output1);
+ }
+
+ public class Person
+ {
+ private String firstName;
+
+ private String lastName;
+
+ public Person(String firstName, String lastName)
+ {
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public String getFirstName()
+ {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName)
+ {
+ this.firstName = firstName;
+ }
+
+ public String getLastName()
+ {
+ return lastName;
+ }
+
+ public void setLastName(String lastName)
+ {
+ this.lastName = lastName;
+ }
+ }
+
+ public class UnknownRowCountDemoDataModel extends ListDataModel
+ {
+ public UnknownRowCountDemoDataModel()
+ {
+ super();
+ }
+
+ public int getRowCount()
+ {
+ return -1;
+ }
+ }
}
--
To stop receiving notification emails like this one, please contact
deki@apache.org.