[richfaces-svn-commits] JBoss Rich Faces SVN: r18849 - in trunk/ui/input/ui/src/test: java and 7 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Aug 20 10:14:43 EDT 2010


Author: abelevich
Date: 2010-08-20 10:14:43 -0400 (Fri, 20 Aug 2010)
New Revision: 18849

Added:
   trunk/ui/input/ui/src/test/java/
   trunk/ui/input/ui/src/test/java/org/
   trunk/ui/input/ui/src/test/java/org/richfaces/
   trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/
   trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/DataBean.java
   trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java
   trunk/ui/input/ui/src/test/resources/
   trunk/ui/input/ui/src/test/resources/org/
   trunk/ui/input/ui/src/test/resources/org/richfaces/
   trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/
   trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/faces-config.xml
   trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/rendererTest.xhtml
Log:
add test for the inplaceInput

Added: trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/DataBean.java
===================================================================
--- trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/DataBean.java	                        (rev 0)
+++ trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/DataBean.java	2010-08-20 14:14:43 UTC (rev 18849)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2010, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.richfaces.renderkit;
+
+
+public class DataBean {
+
+    private String value = "Test String"; 
+    
+    public DataBean() {
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+}

Added: trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java
===================================================================
--- trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java	                        (rev 0)
+++ trunk/ui/input/ui/src/test/java/org/richfaces/renderkit/InplaceInputRendererTest.java	2010-08-20 14:14:43 UTC (rev 18849)
@@ -0,0 +1,222 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright ${year}, Red Hat, Inc. and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.richfaces.renderkit;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.util.List;
+
+import org.ajax4jsf.renderkit.RendererUtils.HTML;
+import org.jboss.test.faces.htmlunit.HtmlUnitEnvironment;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import com.gargoylesoftware.htmlunit.html.DomNode;
+import com.gargoylesoftware.htmlunit.html.DomText;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+
+/**
+ * @author Anton Belevich
+ *
+ */
+public class InplaceInputRendererTest {
+
+    private HtmlUnitEnvironment environment;
+
+    @Before
+    public void setUp() {
+        environment = new HtmlUnitEnvironment();
+        
+        environment.withWebRoot(new File("src/test/resources"));
+        environment.withResource("/WEB-INF/faces-config.xml", "org/richfaces/renderkit/faces-config.xml");
+        environment.withResource("/test.xhtml", "org/richfaces/renderkit/rendererTest.xhtml");
+        environment.start();
+    }
+    
+    @Test
+    public void testRenderDefaultState() throws Exception {
+        HtmlPage page = environment.getPage("/test.jsf");
+        List<?> nodes = page.getByXPath("//*[@id = 'form:input_default']");
+        assertEquals(1, nodes.size());
+        HtmlElement span = (HtmlElement) nodes.get(0);
+        assertEquals("span", span.getNodeName());
+        assertEquals("rf-ii-d-s", span.getAttribute(HTML.CLASS_ATTRIBUTE));
+        
+        HtmlElement label = (HtmlElement)span.getFirstChild();
+        assertEquals("span", label.getNodeName());
+        assertEquals("rf-ii-lbl", label.getAttribute(HTML.CLASS_ATTRIBUTE));
+        DomNode text = label.getFirstChild();
+        assertEquals(DomNode.TEXT_NODE, text.getNodeType());
+        
+        HtmlElement edit = (HtmlElement)label.getNextSibling();
+        assertEquals("span", edit.getNodeName());
+        assertEquals("rf-ii-e-s rf-ii-none", edit.getAttribute(HTML.CLASS_ATTRIBUTE));
+        
+        HtmlElement input = (HtmlElement)edit.getFirstChild();
+        assertEquals("input", input.getNodeName());
+        assertEquals("rf-ii-f", input.getAttribute(HTML.CLASS_ATTRIBUTE));
+        assertEquals(text.getNodeValue(), input.getAttribute(HTML.VALUE_ATTRIBUTE));
+        
+        List<?> buttons = page.getByXPath("//*[@id = 'form:input_default:btn']");
+        assertEquals(true, buttons.isEmpty());
+    }
+    
+    @Test
+    public void testRenderEditState() throws Exception {
+        
+        HtmlPage page = environment.getPage("/test.jsf");
+    
+        List<?> nodes = page.getByXPath("//*[@id = 'form:input_edit']");
+        assertEquals(1, nodes.size());
+        HtmlElement span = (HtmlElement) nodes.get(0);
+        assertEquals("span", span.getNodeName());
+        assertEquals("rf-ii-d-s", span.getAttribute(HTML.CLASS_ATTRIBUTE));
+
+        HtmlElement label = (HtmlElement)span.getFirstChild();
+        assertEquals("span", label.getNodeName());
+        assertEquals("rf-ii-lbl", label.getAttribute(HTML.CLASS_ATTRIBUTE));
+        DomNode text = label.getFirstChild();
+        assertEquals(DomNode.TEXT_NODE, text.getNodeType());
+        
+        HtmlElement edit = (HtmlElement)label.getNextSibling();
+        assertEquals("span", edit.getNodeName());
+        assertEquals("rf-ii-e-s", edit.getAttribute(HTML.CLASS_ATTRIBUTE));
+        
+        HtmlElement input = (HtmlElement)edit.getFirstChild();
+        assertEquals("input", input.getNodeName());
+        assertEquals("rf-ii-f", input.getAttribute(HTML.CLASS_ATTRIBUTE));
+        assertEquals(text.getNodeValue(), input.getAttribute(HTML.VALUE_ATTRIBUTE));
+
+        List<?> buttonNodes = page.getByXPath("//*[@id = 'form:input_edit:btn']");
+        assertEquals(1, buttonNodes.size());
+
+        HtmlElement button = (HtmlElement) buttonNodes.get(0);
+        assertEquals("span", button.getNodeName());
+        
+        List<?> okButtonNodes = page.getByXPath("//*[@id = 'form:input_edit:okbtn']");
+        assertEquals(1, okButtonNodes.size());
+        
+        HtmlElement okButton = (HtmlElement) okButtonNodes.get(0);
+        assertEquals("input", okButton.getNodeName());
+        assertEquals("rf-ii-btn", okButton.getAttribute(HTML.CLASS_ATTRIBUTE));
+        assertEquals("image", okButton.getAttribute(HTML.TYPE_ATTR));
+
+        List<?> cancelButtonNodes = page.getByXPath("//*[@id = 'form:input_edit:cancelbtn']");
+        assertEquals(1, cancelButtonNodes.size());
+        
+        HtmlElement cancelButton = (HtmlElement) cancelButtonNodes.get(0);
+        assertEquals("input", cancelButton.getNodeName());
+        assertEquals("rf-ii-btn", cancelButton.getAttribute(HTML.CLASS_ATTRIBUTE));
+        assertEquals("image", cancelButton.getAttribute(HTML.TYPE_ATTR));
+
+    }
+    
+    @Test
+    public void testEdit() throws Exception {
+        HtmlPage page = environment.getPage("/test.jsf");
+        edit(page, "input_default");        
+        List<?> labelNodes = page.getByXPath("//*[@id = 'form:input_default:label']/text()");
+        assertEquals(1, labelNodes.size());
+        DomText text = (DomText) labelNodes.get(0);
+        assertEquals("Another Test String", text.getTextContent());
+        
+        List<?>nodes = page.getByXPath("//*[@id = 'form:input_default']");
+        assertEquals(1, nodes.size());
+        HtmlElement span = (HtmlElement) nodes.get(0);
+        assertEquals("rf-ii-d-s rf-ii-c-s", span.getAttribute(HTML.CLASS_ATTRIBUTE));
+
+    }
+    
+    private void edit(HtmlPage page, String inplaceInputId) throws Exception {
+        List<?> nodes = page.getByXPath("//*[@id = 'form:" + inplaceInputId + "']");
+        assertEquals(1, nodes.size());
+        HtmlElement span = (HtmlElement) nodes.get(0);
+        span.click();
+        
+        List<?> editNodes = page.getByXPath("//*[@id = 'form:" + inplaceInputId + ":edit']");
+        assertEquals(1, editNodes.size());
+        HtmlElement edit = (HtmlElement) editNodes.get(0);
+        assertEquals("rf-ii-e-s", edit.getAttribute(HTML.CLASS_ATTRIBUTE));
+        
+        List<?> inputNodes = page.getByXPath("//*[@id = 'form:" + inplaceInputId + ":input']");
+        assertEquals(1, inputNodes.size());
+        HtmlElement input = (HtmlElement) inputNodes.get(0);
+        input.setAttribute(HTML.VALUE_ATTRIBUTE, "");
+        input.type("Another Test String");
+        
+        List<?> panelNodes = page.getByXPath("//*[@id = 'form:panel']");
+        assertEquals(1, panelNodes.size());
+        HtmlElement panel = (HtmlElement) panelNodes.get(0);
+        panel.click();
+    }
+    
+    @Test
+    public void testEditWithControls() throws Exception {
+        HtmlPage page = environment.getPage("/test.jsf");
+        
+        edit(page, "input_controls");
+        
+        List<?> cancelNodes = page.getByXPath("//*[@id = 'form:input_controls:cancelbtn']");
+        assertEquals(1, cancelNodes.size());
+        HtmlElement cancel = (HtmlElement) cancelNodes.get(0);
+        
+        cancel.mouseDown();
+        
+        List<?> labelNodes = page.getByXPath("//*[@id = 'form:input_controls:label']/text()");
+        assertEquals(1, labelNodes.size());
+        DomText text = (DomText) labelNodes.get(0);
+        assertEquals("Test String", text.getTextContent());
+                
+        List<?> nodes = page.getByXPath("//*[@id = 'form:input_controls']");
+        assertEquals(1, nodes.size());
+        HtmlElement span = (HtmlElement) nodes.get(0);
+        assertEquals("rf-ii-d-s", span.getAttribute(HTML.CLASS_ATTRIBUTE));
+        
+        edit(page, "input_controls");
+                
+        List<?> okNodes = page.getByXPath("//*[@id = 'form:input_controls:okbtn']");
+        assertEquals(1, okNodes.size());
+        HtmlElement ok = (HtmlElement) okNodes.get(0);
+      
+        ok.mouseDown();
+        
+        labelNodes = page.getByXPath("//*[@id = 'form:input_controls:label']/text()");
+        assertEquals(1, labelNodes.size());
+        text = (DomText) labelNodes.get(0);
+        assertEquals("Another Test String", text.getTextContent());
+        
+        nodes = page.getByXPath("//*[@id = 'form:input_controls']");
+        assertEquals(1, nodes.size());
+        span = (HtmlElement) nodes.get(0);
+        assertEquals("rf-ii-d-s rf-ii-c-s", span.getAttribute(HTML.CLASS_ATTRIBUTE));
+    }
+
+    @After
+    public void tearDown() {
+        environment.release();
+        environment = null;
+    }    
+}

Added: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/faces-config.xml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/faces-config.xml	                        (rev 0)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/faces-config.xml	2010-08-20 14:14:43 UTC (rev 18849)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+	version="2.0">
+
+	<managed-bean>
+		<managed-bean-name>dataBean</managed-bean-name>
+		<managed-bean-class>org.richfaces.renderkit.DataBean</managed-bean-class>
+		<managed-bean-scope>request</managed-bean-scope>
+	</managed-bean>
+
+</faces-config>
\ No newline at end of file

Added: trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/rendererTest.xhtml
===================================================================
--- trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/rendererTest.xhtml	                        (rev 0)
+++ trunk/ui/input/ui/src/test/resources/org/richfaces/renderkit/rendererTest.xhtml	2010-08-20 14:14:43 UTC (rev 18849)
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:h="http://java.sun.com/jsf/html"
+	xmlns:f="http://java.sun.com/jsf/core"
+	xmlns:ui="http://java.sun.com/jsf/facelets"
+	xmlns:in="http://richfaces.org/input">
+<f:view contentType="text/html" />
+
+<h:head>
+	<title>Richfaces InplaceInput</title>
+</h:head>
+
+<h:body>
+	<h:form id="form">
+		<in:inplaceInput id="input_default" value="#{dataBean.value}"/>
+	
+		<in:inplaceInput id="input_controls" showControls="true" value="#{dataBean.value}"/>
+	
+		<in:inplaceInput id="input_edit" state="edit" showControls="true" value="#{dataBean.value}"/>
+		
+		<h:panelGroup id="panel">
+			<!-- click here for blur -->
+		</h:panelGroup>
+	</h:form>
+</h:body>
+</html>



More information about the richfaces-svn-commits mailing list