JBoss Rich Faces SVN: r10744 - in trunk/test-applications/seleniumTest/richfaces/src: main/_templates and 4 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: andrei_exadel
Date: 2008-10-14 10:21:20 -0400 (Tue, 14 Oct 2008)
New Revision: 10744
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/_templates/
trunk/test-applications/seleniumTest/richfaces/src/main/_templates/autoTestPageTemplate.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/ajaxCommandLink/ajaxCommandLinkAutoTest.xhtml
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxCommandLinkTest.java
Log:
Ajax Command Link: nested params test
Added: trunk/test-applications/seleniumTest/richfaces/src/main/_templates/autoTestPageTemplate.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/_templates/autoTestPageTemplate.xhtml (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/_templates/autoTestPageTemplate.xhtml 2008-10-14 14:21:20 UTC (rev 10744)
@@ -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:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+<ui:composition template="#{templateBean.autoTestTemplate}">
+ <ui:define name="component">
+ <rich:componentName id="componentId"
+ actionListener="#{autoTestBean.actionListener}"
+ immediate="#{autoTestBean.immediate}"
+ ajaxSingle="#{autoTestBean.ajaxSingle}"
+ reRender="#{autoTestBean.reRender}"
+ limitToList="#{autoTestBean.limitToList}"
+ bypassUpdates="#{autoTestBean.bypassUpdate}"
+ rendered="#{autoTestBean.rendered}"
+ oncomplete="#{autoTestBean.oncomplete}"
+ >
+ <f:param name="parameter1" value="value1" />
+ <f:actionListener type="org.ajax4jsf.autotest.bean.AutoTestListener" />
+ </rich:componentName>
+ </ui:define>
+</ui:composition>
+</html>
\ No newline at end of file
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
===================================================================
(Binary files differ)
Added: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/ajaxCommandLink/ajaxCommandLinkAutoTest.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/ajaxCommandLink/ajaxCommandLinkAutoTest.xhtml (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/ajaxCommandLink/ajaxCommandLinkAutoTest.xhtml 2008-10-14 14:21:20 UTC (rev 10744)
@@ -0,0 +1,29 @@
+<!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:a4j="http://richfaces.org/a4j"
+ xmlns:rich="http://richfaces.org/rich"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ui="http://java.sun.com/jsf/facelets">
+
+<ui:composition template="#{templateBean.autoTestTemplate}">
+ <ui:define name="component">
+ <a4j:commandLink id="componentId"
+ actionListener="#{autoTestBean.actionListener}"
+ immediate="#{autoTestBean.immediate}"
+ ajaxSingle="#{autoTestBean.ajaxSingle}"
+ reRender="#{autoTestBean.reRender}"
+ limitToList="#{autoTestBean.limitToList}"
+ bypassUpdates="#{autoTestBean.bypassUpdate}"
+ rendered="#{autoTestBean.rendered}"
+ oncomplete="#{autoTestBean.oncomplete}"
+ value="Link"
+ >
+ <f:param name="parameter1" value="value1" />
+ <f:param name="parameter2" value="value2" />
+ <f:param name="parameter3" value="value3" />
+ <f:actionListener type="org.ajax4jsf.autotest.bean.AutoTestListener" />
+ </a4j:commandLink>
+ </ui:define>
+</ui:composition>
+</html>
\ No newline at end of file
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-14 13:57:39 UTC (rev 10743)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-10-14 14:21:20 UTC (rev 10744)
@@ -1001,6 +1001,7 @@
/**
* Control action that should force ajax request from the component.
+ * This method should wait for ajax completion
* This method should be overridden for auto test
*/
public void sendAjax() {
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxCommandLinkTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxCommandLinkTest.java 2008-10-14 13:57:39 UTC (rev 10743)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/AjaxCommandLinkTest.java 2008-10-14 14:21:20 UTC (rev 10744)
@@ -1,12 +1,31 @@
package org.richfaces.testng;
+import java.util.HashMap;
+import java.util.Map;
+
import org.ajax4jsf.template.Template;
+import org.richfaces.AutoTester;
import org.richfaces.SeleniumTestBase;
import org.testng.Assert;
import org.testng.annotations.Test;
public class AjaxCommandLinkTest extends SeleniumTestBase {
+
+ private static Map<String, String> parameter = new HashMap<String, String>();
+ static {
+ parameter.put("parameter1", "value1");
+ parameter.put("parameter2", "value2");
+ parameter.put("parameter3", "value3");
+ }
+
+ @Test
+ public void testNestedParams (Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, null);
+
+ tester.testRequestParameters(parameter);
+ }
@Test
public void testAjaxCommandLinkComponent(Template template) {
@@ -105,5 +124,15 @@
public String getTestUrl() {
return "pages/ajaxCommandLink/ajaxLinkTest.xhtml";
}
-
+
+ @Override
+ public String getAutoTestUrl() {
+ return "pages/ajaxCommandLink/ajaxCommandLinkAutoTest.xhtml";
+ }
+
+ @Override
+ public void sendAjax() {
+ clickAjaxCommandAndWait(getAutoTester(this).getClientId(AutoTester.COMPONENT_ID));
+ }
+
}
17 years, 2 months
JBoss Rich Faces SVN: r10743 - management/design/queue.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2008-10-14 09:57:39 -0400 (Tue, 14 Oct 2008)
New Revision: 10743
Modified:
management/design/queue/RS - queue.doc
Log:
minor references updates
Modified: management/design/queue/RS - queue.doc
===================================================================
(Binary files differ)
17 years, 2 months
JBoss Rich Faces SVN: r10742 - trunk/docs/userguide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2008-10-14 09:56:25 -0400 (Tue, 14 Oct 2008)
New Revision: 10742
Modified:
trunk/docs/userguide/en/src/main/docbook/modules/RFCGettingStarted.xml
Log:
RF-4056: Getting Started with RichFaces chapter should be updated
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFCGettingStarted.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFCGettingStarted.xml 2008-10-14 13:56:08 UTC (rev 10741)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFCGettingStarted.xml 2008-10-14 13:56:25 UTC (rev 10742)
@@ -1,260 +1,246 @@
<?xml version='1.0' encoding='UTF-8'?>
<chapter id="GettingStarted" xreflabel="GettingStarted">
- <?dbhtml filename="GettingStarted.html"?>
- <chapterinfo>
- <keywordset>
- <keyword>MyFaces</keyword>
+ <?dbhtml filename="GettingStarted.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>MyFaces</keyword>
- <keyword>JSF</keyword>
+ <keyword>JSF</keyword>
- <keyword>RichFaces</keyword>
+ <keyword>RichFaces</keyword>
- </keywordset>
- </chapterinfo>
- <title>Getting Started with RichFaces</title>
- <section id="DownloadingRichFaces">
- <?dbhtml filename="DownloadingRichFaces.html" ?>
- <title>Downloading RichFaces 3.2.1</title>
- <para>The latest release of <property>RichFaces</property> is available for download at:<simplelist>
- <member>
- <ulink url="http://labs.jboss.com/jbossrichfaces/downloads"
- >http://labs.jboss.com/jbossrichfaces/downloads</ulink>
- </member>
- </simplelist> in the <property>RichFaces</property> project area under JBoss.</para>
- </section>
- <section id="Installation">
- <?dbhtml filename="Installation.html" ?>
- <title>Installation</title>
- <itemizedlist>
- <listitem><para> Unzip <emphasis>
- <property>"richfaces-ui-3.2.1.GA-bin.zip"</property>
- </emphasis> file to the chosen folder. </para></listitem>
- <listitem><para> Copy <code>"richfaces-api-3.2.1.jar"</code>, <code>"richfaces-impl-3.2.1.jar"</code>,<code>"richfaces-ui-3.2.1.jar"</code>files into the "WEB-INF/lib" folder of your application. </para></listitem>
- <!--note>
- <title>Note:</title>
- <para>Starting from Ajax4jsf 1.1.1, the oscache library is not required to be in the
- classpath anymore. </para>
- </note-->
- <listitem><para> Add the following content into the "WEB-INF/web.xml" file of your application: </para><programlisting role="XML"><![CDATA[...
- <context-param>
- <param-name>org.richfaces.SKIN</param-name>
- <param-value>blueSky</param-value>
- </context-param>
- <filter>
- <display-name>RichFaces Filter</display-name>
- <filter-name>richfaces</filter-name>
- <filter-class>org.ajax4jsf.Filter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>richfaces</filter-name>
- <servlet-name>Faces Servlet</servlet-name>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- <dispatcher>INCLUDE</dispatcher>
- </filter-mapping>]]></programlisting>
- <!--note>
- <title>Note:</title>
- <para>You can copy and paste the above text from the <emphasis>
- <property>"README.txt"</property>
- </emphasis> file.</para>
- </note-->
- </listitem>
+ </keywordset>
+ </chapterinfo>
+ <title>Getting Started with RichFaces</title>
+ <para>This chapter describes all necessary actions and configurations that should be done
+ for adding the RichFaces library into a JSF project. The description relies on a
+ simple JSF application creation process from downloading the libraries to
+ running the application in a browser.</para>
- <listitem>
+ <section id="DownloadingRichFaces">
+ <?dbhtml filename="DownloadingRichFaces.html" ?>
+ <title>Downloading the RichFaces</title>
- <para>Add the following lines for each JSP page of your application.</para>
- <programlisting role="XML"><![CDATA[<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
-<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> ]]></programlisting>
- <para>For XHTML pages:</para>
- <programlisting role="XML"><![CDATA[<xmlns:a4j="http://richfaces.org/a4j">
-<xmlns:rich="http://richfaces.org/rich">]]></programlisting>
- </listitem>
- </itemizedlist>
- <!--note>
- <title>Note:</title>
- <para>The previous namespaces URLs (<ulink url="https://ajax4jsf.dev.java.net/ajax">https://ajax4jsf.dev.java.net/ajax</ulink> and
- <ulink url="http://richfaces.ajax4jsf.org/rich">http://richfaces.ajax4jsf.org/rich</ulink>) are also available for backward compatibility.</para>
- </note-->
- </section>
- <section id="SimpleAJAXEchoProject">
- <?dbhtml filename="SimpleAJAXEchoProject.html" ?>
- <title>Simple Ajax Echo Project </title>
- <para> In our JSF project you need only one JSP page that has a form with a couple of child
- tags: <emphasis role="bold">
- <property><h:inputText></property>
- </emphasis> and <emphasis role="bold">
- <property><h:outputText></property>
- </emphasis>. </para>
- <para>This simple application let you input some text into the <emphasis role="bold">
- <property><h:inputText></property>
- </emphasis>, send data to the server, and see the server response as a value of <emphasis
- role="bold">
- <property><h:outputText></property>
- </emphasis>. </para>
- <section id="JSPPage">
- <?dbhtml filename="JSPPage.html"?>
- <title>JSP Page</title>
- <para>Here is the necessary page (echo.jsp):</para>
- <programlisting role="XML"><![CDATA[
- <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
- <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
- <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
- <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
- <html>
- <head>
- <title>repeater </title>
- </head>
- <body>
- <f:view>
- <h:form>
- <rich:panel header="Simple Echo">
- <h:inputText size="50" value="#{bean.text}" >
- <a4j:support event="onkeyup" reRender="rep"/>
- </h:inputText>
- <h:outputText value="#{bean.text}" id="rep"/>
- </rich:panel>
- </h:form>
- </f:view>
- </body>
- </html>]]></programlisting>
+ <para> The latest release of RichFaces components is available for download at
+ <ulink url="http://labs.jboss.com/jbossrichfaces/downloads"
+ >JBoss RichFaces Downloads area</ulink> at JBoss community.
+ Files that uploaded there have different extensions, which should be
+ touched here: <code>*.bin.zip</code> archives contain full compiled
+ version of components for Windows and Mac operating systems and
+ <code>*.src.zip</code> archives have it source code;
+ <code>*.bin.tar.gz</code> and <code>*.src.tar.gz</code>
+ archives contain compiled version and source code for UNIX-like
+ systems correspondingly; uploaded there <code>*.jar</code> files
+ contain components skins. </para>
+ <para> In computer file system create new folder; download and unzip the archive
+ with components there. </para>
+ </section>
- <para>Only two tags distinguish this page from a "regular" JSF
- one. There are <emphasis role="bold">
- <property><rich:panel></property>
- </emphasis> and <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis>.</para>
+ <section id="Creating a simple application with RichFaces">
+ <?dbhtml filename="Installation.html" ?>
+ <title>Creating a simple application with RichFaces</title>
+ <para> "RichFaces Greeter"—the simple application—is hello-world like
+ application but with one difference: the world of RichFaces will say
+ "Hello!" to user first. </para>
+ <para> Create new JSF 1.2 project with name "Greeter", JSFBlankWithLibs template
+ and Servlet version 2.5. </para>
+ <para> To import RichFaces libraries into the project in the JBoss Developer
+ studio click with RMB on the project name in the "Package Explorer"
+ window and select "Build Path"—›"Configure Build Path…" in context
+ menu. In opened "Java Build Path" window click "Add external JARs…"
+ button in "Libraries" tab. Pass to the folder with unzipped earlier
+ RichFaces components and open <code>lib</code> folder. This folder contains three
+ <code>*.jar</code> files with API, UI and implementation
+ libraries. Select all of them and add to project libraries. Another
+ way to import RichFaces libraries into the project is to copy in
+ computer file system that "jars" from <code>lib</code> folder to
+ <code>WEB-INF/lib</code> folder of the application. </para>
+ <para> After RichFaces libraries where added into the project libraries it is
+ necessary to register them in project <code>web.xml</code> file. Add following in
+ <code>web.xml</code>: </para>
+ <programlisting role="XML"><![CDATA[...
+<context-param>
+ <param-name>org.richfaces.SKIN</param-name>
+ <param-value>blueSky</param-value>
+</context-param>
+
+<filter>
+ <display-name>RichFaces Filter</display-name>
+ <filter-name>richfaces</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+</filter>
+
+<filter-mapping>
+ <filter-name>richfaces</filter-name>
+ <servlet-name>Faces Servlet</servlet-name>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+</filter-mapping>
+...]]></programlisting>
+ <para> To enable standard control skinning following lines should be added into
+ <code>web.xml</code> too: </para>
+ <programlisting role="XML"><![CDATA[...
+<context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING</param-name>
+ <param-value>enable</param-value>
+</context-param>
+...]]></programlisting>
+ <para> Finally the <code>web.xml</code> should look like the following: </para>
+ <programlisting role="XML"><![CDATA[<?xml version="1.0"?>
+<web-app version="2.5"
+ 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-app_2_5.xsd">
+<display-name>Greeter</display-name>
+
+<context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+</context-param>
+
+<context-param>
+ <param-name>org.richfaces.SKIN</param-name>
+ <param-value>blueSky</param-value>
+</context-param>
+
+<!-- Enabling control skinning -->
+<context-param>
+ <param-name>org.richfaces.CONTROL_SKINNING</param-name>
+ <param-value>enable</param-value>
+</context-param>
+
+<!-- RichFaces Filter -->
+<filter>
+ <display-name>RichFaces Filter</display-name>
+ <filter-name>richfaces</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+</filter>
- <para>The <emphasis role="bold">
- <property><rich:panel></property>
- </emphasis>allows to place the page elements in rectangle panel that can be skinned.</para>
+<!-- RichFaces Filter mapping-->
+<filter-mapping>
+ <filter-name>richfaces</filter-name>
+ <servlet-name>Faces Servlet</servlet-name>
+ <dispatcher>REQUEST</dispatcher>
+ <dispatcher>FORWARD</dispatcher>
+ <dispatcher>INCLUDE</dispatcher>
+</filter-mapping>
+
+<listener>
+ <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
+</listener>
+
+<!-- Faces Servlet -->
+<servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+</servlet>
+
+<!-- Faces Servlet Mapping -->
+<servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+</servlet-mapping>
+
+<login-config>
+ <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>
+...]]></programlisting>
+ <para> The "RichFaces Greeter" application need a managed bean. Create a new
+ managed bean with name <code>user</code> in <code>demo</code> package and paste there the following simple
+ code: </para>
+ <programlisting role="JAVA">package demo;
- <para>The <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis> with corresponding attributes (as it was shown in the previous example) adds an
- Ajax support to the parent <emphasis role="bold">
- <property><h:inputText></property>
- </emphasis> tag. This support is bound to <emphasis><property>"onkeyup"</property></emphasis> JavaScript event, so
- that each time when this event is fired on the parent tag, our application sends an Ajax
- request to the server. It means that the text field pointed to our managed bean property
- contains up-to-date value of our input. </para>
- <para> The value of <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute of the <emphasis role="bold">
- <property><a4j:support></property>
- </emphasis> tag defines which part(s) of our page is (are) to be updated. In this case, the
- only part of the page to update is the <emphasis role="bold">
- <property><h:outputText></property>
- </emphasis> tag because its ID value matches to the value of <emphasis>
- <property>"reRender"</property>
- </emphasis> attribute. As you see, it's not difficult to update multiple elements
- on the page, only list their IDs as the value of <emphasis>
- <property>"reRender"</property>
- </emphasis>. </para>
- </section>
- <section id="DataBean">
- <?dbhtml filename="DataBean.html"?>
- <title>Data Bean</title>
- <para>In order to build this application, you should create a managed bean:</para>
- <programlisting role="JAVA">package demo;
-
- public class Bean {
- private String text;
- public Bean() {
- }
- public String getText() {
- return text;
- }
- public void setText(String text) {
- this.text = text;
- }
- }</programlisting>
- </section>
- <section id="faces-config.xml">
- <?dbhtml filename="faces-config.xml.html"?>
- <title>faces-config.xml</title>
- <para>Next, it's necessary to register your bean inside of the faces-config.xml file:</para>
- <programlisting role="XML"> <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
- "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
- <faces-config>
- <managed-bean>
- <managed-bean-name>bean</managed-bean-name>
- <managed-bean-class>demo.Bean</managed-bean-class>
- <managed-bean-scope>request</managed-bean-scope>
- <managed-property>
- <property-name>text</property-name>
- <value/>
- </managed-property>
- </managed-bean>
- </faces-config>]]></programlisting>
- <para>
- <note>
- <title>Note:</title>
- <para>Nothing that relates directly to RichFaces is required in the configuration
- file.</para>
- </note>
- </para>
- </section>
- <section id="Web.xml">
- <?dbhtml filename="Web.xml.html"?>
- <title>Web.xml</title>
- <para>It is also necessary to add jar files (see <link linkend="Installation">installation
- chapter</link>) and modify the "web.xml" file: </para>
- <programlisting role="XML"> <![CDATA[<?xml version="1.0"?>
- <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>a4jEchoText</display-name>
- <context-param>
- <param-name>org.richfaces.SKIN</param-name>
- <param-value>blueSky</param-value>
- </context-param>
- <context-param>
- <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
- <param-value>server</param-value>
- </context-param>
- <filter>
- <display-name>RichFaces Filter</display-name>
- <filter-name>richfaces</filter-name>
- <filter-class>org.ajax4jsf.Filter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>richfaces</filter-name>
- <servlet-name>Faces Servlet</servlet-name>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- <dispatcher>INCLUDE</dispatcher>
- </filter-mapping>
- <listener>
- <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
- </listener>
-
- <!-- Faces Servlet -->
- <servlet>
- <servlet-name>Faces Servlet</servlet-name>
- <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
-
- <!-- Faces Servlet Mapping -->
- <servlet-mapping>
- <servlet-name>Faces Servlet</servlet-name>
- <url-pattern>*.jsf</url-pattern>
- </servlet-mapping>
- <login-config>
- <auth-method>BASIC</auth-method>
- </login-config>
- </web-app>]]></programlisting>
- <para>Now your application should work.</para>
- </section>
- <section id="Deployment">
- <?dbhtml filename="Deployment.html"?>
- <title>Deployment</title>
- <para>Finally, you should be able to place this application on your Web server.To start your
- project, point your browser at <ulink url="http://localhost:8080/a4jEchoText/echo.jsf"
- >http://localhost:8080/a4jEchoText/echo.jsf</ulink>
- </para>
- </section>
- </section>
+public class user {
+ private String name="";
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+}</programlisting>
+ <para> With the next step the "user" bean should be registered in <code>faces-config.xml</code> file: </para>
+ <programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
+<faces-config version="1.2"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ 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_1_2.xsd">
+ <managed-bean>
+ <description>UsernName Bean</description>
+ <managed-bean-name>user</managed-bean-name>
+ <managed-bean-class>demo.user</managed-bean-class>
+ <managed-bean-scope>request</managed-bean-scope>
+ <managed-property>
+ <property-name>name</property-name>
+ <property-class>java.lang.String</property-class>
+ <value/>
+ </managed-property>
+ </managed-bean>
+</faces-config>
+]]></programlisting>
+ <para> The "RichFaces Greeter" application has only one JSP page. Create <code>pages</code>
+ folder in root of <code>WEB CONTENT</code> folder. Create <code>greeter.jsp</code> page
+ inside <code>pages</code> and add there following code: </para>
+ <programlisting role="XML"><![CDATA[<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
+<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
+<!-- RichFaces tag library declaration -->
+<%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%>
+<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
+
+<html>
+ <head>
+ <title>RichFaces Greeter</title>
+ </head>
+ <body>
+ <f:view>
+ <h1>RichFaces Greeter</h1>
+ <a4j:form>
+ <h:panelGroup style="margin-left: 10" >
+ <h:outputText value="Your name: " />
+ <h:inputText value="#{user.name}" >
+ <f:validateLength minimum="1" maximum="30" />
+ </h:inputText>
+ <a4j:commandButton value="Get greeting" reRender="greeting" />
+ </h:panelGroup>
+ </a4j:form>
+ <h:panelGroup id="greeting" >
+ <h:outputText value="Hello, " rendered="#{not empty user.name}" style="margin-left: 10" />
+ <h:outputText value="#{user.name}" />
+ <h:outputText value="!" rendered="#{not empty user.name}" />
+ </h:panelGroup>
+ </f:view>
+ </body>
+ </html>]]></programlisting>
+ <para> The application uses two RichFaces components: <emphasis role="bold">
+ <property><a4j:commandButton></property>
+ </emphasis> with built-in Ajax support allows rendering a
+ greeting dynamically after a response comes back and <emphasis
+ role="bold">
+ <property><a4j:form></property>
+ </emphasis> helps the button to perform the action. </para>
+ <para> Note, that the RichFaces tag library should be declared on each JSP page.
+ For XHTML pages add following lines for tag library declaration: </para>
+ <programlisting role="XML"><![CDATA[<xmlns:a4j="http://richfaces.org/a4j">
+<xmlns:rich="http://richfaces.org/rich">]]></programlisting>
+ <para> That’s it. Run the application on server. Write the full pass to <code>greeter.jsp</code> page in browser;
+ do not forget to change the extension to <code>*.jsf</code>: <code>http://localhost:8080/Greeter/pages/greeter.jsf</code>
+ </para>
+ <figure>
+ <title>"RichFaces Greeter" application</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/RichFaces Greeter.png" />
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <para>
+ <ulink url="http://docs.jboss.org/tools/movies/demos/rich_faces_demo/rich_faces_demo.htm">RichFaces Toolkit for developing Web application</ulink> video tutorial at JBoss portal
+ shows how to perform the described actions in JBoss Developer Studio in details.
+ </para>
+ </section>
</chapter>
17 years, 2 months
JBoss Rich Faces SVN: r10741 - management/design/queue.
by richfaces-svn-commits@lists.jboss.org
Author: ilya_shaikovsky
Date: 2008-10-14 09:56:08 -0400 (Tue, 14 Oct 2008)
New Revision: 10741
Modified:
management/design/queue/RS - queue.doc
Log:
Jboss team review
Modified: management/design/queue/RS - queue.doc
===================================================================
(Binary files differ)
17 years, 2 months
JBoss Rich Faces SVN: r10740 - in trunk/test-applications/seleniumTest/richfaces/src: main/java/org/ajax4jsf/autotest/bean and 7 other directories.
by richfaces-svn-commits@lists.jboss.org
Author: andrei_exadel
Date: 2008-10-14 09:55:28 -0400 (Tue, 14 Oct 2008)
New Revision: 10740
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java
Removed:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java
Log:
Autotest changes
Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -0,0 +1,294 @@
+/*
+ * AutoTestBean.java Date created: 13.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import java.util.Date;
+
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
+import org.ajax4jsf.javascript.ScriptUtils;
+
+/**
+ * Bean for auto test
+ * @author Andrey Markavtsov
+ *
+ */
+public class AutoTestBean {
+
+ public static final String INPUT_TEXT = "Text";
+ public static final String STATUS_ID = "_auto_status";
+ public static final String UPDATE_MODEL_STATUS = "UpdateModel";
+ public static final String ACTION_LISTENER_STATUS = "ActionListener";
+ public static final String NESTED_ACTION_LISTENER_STATUS = "NestedListener";
+ public static final String VALIDATOR_ID = "autoTestValidator";
+ public static final String VALIDATOR_DEFAULT_ID = "autoTestDefaultValidator";
+ public static final String ONCOMPLETE = "window._ajaxOncomplete = true;";
+
+ //private String input = INPUT_TEXT;
+
+ private String reRender = STATUS_ID;
+
+ private Boolean limitToList = false;
+
+ private Boolean ajaxSingle = false;
+
+ private Boolean immediate = false;
+
+ private Boolean bypassUpdate= false;
+
+ private Boolean rendered = true;
+
+ private String status = null;
+
+ private String oncomplete = ONCOMPLETE;
+
+ private String validatorId = VALIDATOR_DEFAULT_ID;
+
+
+ public void actionListener(ActionEvent event) {
+ setStatus(getStatus() + ACTION_LISTENER_STATUS);
+ }
+
+ public String load () {
+ status = null;
+ return null;
+ }
+
+// public String testRendered() {
+// reset();
+// rendered = false;
+// return null;
+// }
+//
+// public String testReRender() {
+// reset();
+// reRender = TIME_ID + "," + STATUS_ID ;
+// return null;
+// }
+//
+// public String testListeners() {
+// reset();
+// return null;
+// }
+//
+// public String testFalidation() {
+// reset();
+// return null;
+// }
+//
+// public String testAjaxSingle() {
+// reset();
+// ajaxSingle = true;
+// return null;
+// }
+//
+// public String testImmdediate() {
+// reset();
+// immediate = true;
+// return null;
+// }
+//
+// public String testBypassUpdate() {
+// reset();
+// bypassUpdate = true;
+// return null;
+// }
+//
+// public String testLimitToList1() {
+// reset();
+// limitToList = true;
+// return null;
+// }
+//
+// public String testLimitToList2() {
+// reset();
+// limitToList = true;
+// reRender = TIME_ID + "," + STATUS_ID;
+// return null;
+// }
+//
+// public String testValidator() {
+// reset();
+// validatorId = VALIDATOR_ID;
+// return null;
+// }
+//
+// public String testValidatorAndAjaxSingle() {
+// return null;
+// }
+
+
+ public Object getRequestParamsMap() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ if (context != null) {
+ ExternalContext ext = context.getExternalContext();
+ if (ext != null) {
+ return ScriptUtils.toScript(context.getExternalContext().getRequestParameterMap());
+ }
+ }
+ return "";
+ }
+
+
+ public String getText() {
+ return String.valueOf(new Date().getTime());
+ }
+
+ /**
+ * @return the input
+ */
+ public String getInput() {
+ return INPUT_TEXT;
+ }
+
+ /**
+ * @param input the input to set
+ */
+ public void setInput(String input) {
+ if (input != null && input.equals(INPUT_TEXT)) {
+ setStatus(getStatus() + UPDATE_MODEL_STATUS);
+ }
+ //this.input = input;
+ }
+
+ /**
+ * @return the reRender
+ */
+ public String getReRender() {
+ return reRender;
+ }
+
+ /**
+ * @param reRender the reRender to set
+ */
+ public void setReRender(String reRender) {
+ this.reRender = reRender;
+ }
+
+ /**
+ * @return the limitToList
+ */
+ public Boolean getLimitToList() {
+ return limitToList;
+ }
+
+ /**
+ * @param limitToList the limitToList to set
+ */
+ public void setLimitToList(Boolean limitToList) {
+ this.limitToList = limitToList;
+ }
+
+ /**
+ * @return the ajaxSingle
+ */
+ public Boolean getAjaxSingle() {
+ return ajaxSingle;
+ }
+
+ /**
+ * @param ajaxSingle the ajaxSingle to set
+ */
+ public void setAjaxSingle(Boolean ajaxSingle) {
+ this.ajaxSingle = ajaxSingle;
+ }
+
+ /**
+ * @return the immediate
+ */
+ public Boolean getImmediate() {
+ return immediate;
+ }
+
+ /**
+ * @param immediate the immediate to set
+ */
+ public void setImmediate(Boolean immediate) {
+ this.immediate = immediate;
+ }
+
+ /**
+ * @return the bypassUpdate
+ */
+ public Boolean getBypassUpdate() {
+ return bypassUpdate;
+ }
+
+ /**
+ * @param bypassUpdate the bypassUpdate to set
+ */
+ public void setBypassUpdate(Boolean bypassUpdate) {
+ this.bypassUpdate = bypassUpdate;
+ }
+
+ /**
+ * @return the status
+ */
+ public String getStatus() {
+ if (status == null) {
+ status = "";
+ }
+ return status;
+ }
+
+ /**
+ * @param status the status to set
+ */
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
+ * @return the rendered
+ */
+ public Boolean getRendered() {
+ return rendered;
+ }
+
+ /**
+ * @param rendered the rendered to set
+ */
+ public void setRendered(Boolean rendered) {
+ this.rendered = rendered;
+ }
+
+ /**
+ * @return the oncomplete
+ */
+ public String getOncomplete() {
+ return oncomplete;
+ }
+
+
+ /**
+ * @param oncomplete the oncomplete to set
+ */
+ public void setOncomplete(String oncomplete) {
+ this.oncomplete = oncomplete;
+ }
+
+
+ /**
+ * @return the validatorId
+ */
+ public String getValidatorId() {
+ return validatorId;
+ }
+
+
+ /**
+ * @param validatorId the validatorId to set
+ */
+ public void setValidatorId(String validatorId) {
+ this.validatorId = validatorId;
+ }
+
+
+
+}
Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestDefaultValidator.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -0,0 +1,29 @@
+/*
+ * AutoTestValidatorValid.java Date created: 14.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * Validator for auto test
+ * @author Andrey
+ *
+ */
+public class AutoTestDefaultValidator implements Validator {
+
+ /* (non-Javadoc)
+ * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
+ */
+ public void validate(FacesContext context, UIComponent component,
+ Object value) throws ValidatorException {
+ // Do nothing.
+ }
+
+}
Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestListener.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -0,0 +1,44 @@
+/*
+ * AutoTestListener.java Date created: 14.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import javax.faces.context.FacesContext;
+import javax.faces.event.AbortProcessingException;
+import javax.faces.event.ActionEvent;
+import javax.faces.event.ActionListener;
+import javax.servlet.http.HttpSession;
+
+/**
+ * Listener for nested ajax listeners for automatic testing
+ * @author Andrey Markavtsov
+ *
+ */
+public class AutoTestListener implements ActionListener {
+
+ /* (non-Javadoc)
+ * @see javax.faces.event.ActionListener#processAction(javax.faces.event.ActionEvent)
+ */
+ public void processAction(ActionEvent event)
+ throws AbortProcessingException {
+ AutoTestBean bean = getAutoTestBean();
+ if (bean != null) {
+ bean.setStatus(bean.getStatus() + AutoTestBean.NESTED_ACTION_LISTENER_STATUS);
+ }
+
+ }
+
+ private AutoTestBean getAutoTestBean() {
+ FacesContext context = FacesContext.getCurrentInstance();
+ HttpSession session = (HttpSession) context.getExternalContext()
+ .getSession(false);
+ if (session != null) {
+ return (AutoTestBean) session.getAttribute("autoTestBean");
+ }
+ return null;
+ }
+
+}
Added: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java (rev 0)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestValidator.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -0,0 +1,31 @@
+/*
+ * AutoTestValidator.java Date created: 14.10.2008
+ * Last modified by: $Author$
+ * $Revision$ $Date$
+ */
+
+package org.ajax4jsf.autotest.bean;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.Validator;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * Validator class for auto test
+ * @author Andrey Markavtsov
+ *
+ */
+public class AutoTestValidator implements Validator {
+
+ /* (non-Javadoc)
+ * @see javax.faces.validator.Validator#validate(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)
+ */
+ public void validate(FacesContext context, UIComponent component,
+ Object value) throws ValidatorException {
+
+ throw new ValidatorException(new FacesMessage("Auto test validator is always failed"));
+ }
+
+}
Deleted: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/AutoTestBean.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -1,241 +0,0 @@
-/*
- * AutoTestBean.java Date created: 13.10.2008
- * Last modified by: $Author$
- * $Revision$ $Date$
- */
-
-package org.ajax4jsf.bean;
-
-import java.util.Date;
-
-import javax.faces.event.ActionEvent;
-
-/**
- * Bean for auto test
- * @author Andrey Markavtsov
- *
- */
-public class AutoTestBean {
-
- public static final String INPUT_TEXT = "Text";
-
- public static final String UPDATE_MODEL_STATUS = "UpdateModel";
-
- public static final String ACTION_LISTENER_STATUS = "Listener";
-
- private static final String TIME_ID = "_auto_time";
-
- private static final String STATUS_ID = "_auto_status";
-
- private String input = null;
-
- private String reRender = STATUS_ID;
-
- private Boolean limitToList = false;
-
- private Boolean ajaxSingle = false;
-
- private Boolean immediate = false;
-
- private Boolean bypassUpdate= false;
-
- private Boolean rendered = true;
-
- private String status = null;
-
-
-
- public void actionListener(ActionEvent event) {
- setStatus(getStatus() + ACTION_LISTENER_STATUS);
- }
-
- public String testRendered() {
- reset();
- rendered = false;
- return null;
- }
-
- public String testReRender() {
- reset();
- reRender = TIME_ID + "," + STATUS_ID ;
- return null;
- }
-
- public String testListeners() {
- reset();
- return null;
- }
-
- public String testFalidation() {
- reset();
- return null;
- }
-
- public String testAjaxSingle() {
- reset();
- ajaxSingle = true;
- return null;
- }
-
- public String testImmdediate() {
- reset();
- immediate = true;
- return null;
- }
-
- public String testBypassUpdate() {
- reset();
- bypassUpdate = true;
- return null;
- }
-
- public String testLimitToList1() {
- reset();
- limitToList = true;
- return null;
- }
-
- public String testLimitToList2() {
- reset();
- limitToList = true;
- reRender = TIME_ID + "," + STATUS_ID;
- return null;
- }
-
- private void reset() {
- input = null;
- reRender = STATUS_ID;
- ajaxSingle = false;
- immediate = false;
- limitToList = false;
- bypassUpdate = false;
- status = null;
- rendered = true;
-
- }
-
- public String getText() {
- return String.valueOf(new Date().getTime());
- }
-
- /**
- * @return the input
- */
- public String getInput() {
- return input;
- }
-
- /**
- * @param input the input to set
- */
- public void setInput(String input) {
- if (input != null && input.equals(INPUT_TEXT)) {
- setStatus(getStatus() + UPDATE_MODEL_STATUS);
- }
- this.input = input;
- }
-
- /**
- * @return the reRender
- */
- public String getReRender() {
- return reRender;
- }
-
- /**
- * @param reRender the reRender to set
- */
- public void setReRender(String reRender) {
- this.reRender = reRender;
- }
-
- /**
- * @return the limitToList
- */
- public Boolean getLimitToList() {
- return limitToList;
- }
-
- /**
- * @param limitToList the limitToList to set
- */
- public void setLimitToList(Boolean limitToList) {
- this.limitToList = limitToList;
- }
-
- /**
- * @return the ajaxSingle
- */
- public Boolean getAjaxSingle() {
- return ajaxSingle;
- }
-
- /**
- * @param ajaxSingle the ajaxSingle to set
- */
- public void setAjaxSingle(Boolean ajaxSingle) {
- this.ajaxSingle = ajaxSingle;
- }
-
- /**
- * @return the immediate
- */
- public Boolean getImmediate() {
- return immediate;
- }
-
- /**
- * @param immediate the immediate to set
- */
- public void setImmediate(Boolean immediate) {
- this.immediate = immediate;
- }
-
- /**
- * @return the bypassUpdate
- */
- public Boolean getBypassUpdate() {
- return bypassUpdate;
- }
-
- /**
- * @param bypassUpdate the bypassUpdate to set
- */
- public void setBypassUpdate(Boolean bypassUpdate) {
- this.bypassUpdate = bypassUpdate;
- }
-
- /**
- * @return the status
- */
- public String getStatus() {
- if (status == null) {
- status = "";
- }
- return status;
- }
-
- /**
- * @param status the status to set
- */
- public void setStatus(String status) {
- this.status = status;
- }
-
- /**
- * @return the rendered
- */
- public Boolean getRendered() {
- return rendered;
- }
-
- /**
- * @param rendered the rendered to set
- */
- public void setRendered(Boolean rendered) {
- this.rendered = rendered;
- }
-
-
-
-}
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/bean/DataScrollerBean.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -12,8 +12,6 @@
import javax.faces.event.ActionEvent;
-import org.ajax4jsf.context.AjaxContext;
-
/**
* Bean class for dataScroller component testing
* @author Andrey Markavtsov
@@ -22,7 +20,6 @@
@SuppressWarnings("unchecked")
public class DataScrollerBean {
- private boolean rendered = true;
private List data;
@@ -34,22 +31,7 @@
private Integer page;
- private String reRender = null;
-
- private Boolean limitToList = false;
-
- private String input;
-
- private String onComplete = null;
-
- private Boolean bypassUpdates = false;
-
- private Boolean immediate;
-
- private Boolean ajaxSingle;
-
- private String status;
-
+
public DataScrollerBean() {
init();
}
@@ -59,61 +41,7 @@
return null;
}
- public String rendered() {
- rendered = false;
- return null;
- }
- public String testReRender() {
- reRender = "time";
- onComplete = "window.dataScrollerComplete = true";
- return null;
- }
-
- public String testByPassUpdates() {
- bypassUpdates = true;
- reRender = "input";
- return null;
- }
-
- public String testLimitToList1() {
- limitToList = true;
- return null;
- }
-
- public String testLimitToList2() {
- limitToList = true;
- reRender = "scroller, tbl";
- return null;
- }
-
- public String testImmediate() {
- page = null;
- status = null;
- immediate = true;
- return null;
- }
-
- public String testFalidationFailure() {
- page = null;
- status = null;
- return null;
- }
-
- public String testAjaxSingle() {
- page = null;
- status = null;
- ajaxSingle = true;
- return null;
- }
-
- public void actionListener(ActionEvent event) {
- if (status == null) {
- status = "";
- }
- status = status + "ActionListener";
- }
-
private void init() {
data = new ArrayList();
for (int i = 0; i < totalRows; i++) {
@@ -126,16 +54,8 @@
tableRows = 1;
totalRows = 10;
maxPages = 10;
- rendered = true;
page = null;
data = null;
- reRender = null;
- limitToList = false;
- onComplete = null;
- bypassUpdates = false;
- ajaxSingle = false;
- immediate = false;
- status = null;
}
public void apply(ActionEvent event) {
@@ -147,20 +67,6 @@
}
/**
- * @return the rendered
- */
- public boolean isRendered() {
- return rendered;
- }
-
- /**
- * @param rendered the rendered to set
- */
- public void setRendered(boolean rendered) {
- this.rendered = rendered;
- }
-
- /**
* @return the data
*/
public List getData() {
@@ -233,73 +139,5 @@
this.page = page;
}
- public String getReRender() {
- return reRender;
- }
-
- public void setReRender(String reRender) {
- this.reRender = reRender;
- }
-
- public Boolean getLimitToList() {
- return limitToList;
- }
-
- public void setLimitToList(Boolean limitToList) {
- this.limitToList = limitToList;
- }
-
- public String getInput() {
- return input;
- }
-
- public void setInput(String input) {
- if (status == null) {
- status = "";
- }
- if (input.equals("Text"))
- status = status + "UpdateModel ";
- this.input = input;
- }
-
- public String getOnComplete() {
- return onComplete;
- }
-
- public void setOnComplete(String onComplete) {
- this.onComplete = onComplete;
- }
-
- public Boolean getBypassUpdates() {
- return bypassUpdates;
- }
-
- public void setBypassUpdates(Boolean bypassUpdates) {
- this.bypassUpdates = bypassUpdates;
- }
-
- public Boolean getImmediate() {
- return immediate;
- }
-
- public void setImmediate(Boolean immediate) {
- this.immediate = immediate;
- }
-
- public Boolean getAjaxSingle() {
- return ajaxSingle;
- }
-
- public void setAjaxSingle(Boolean ajaxSingle) {
- this.ajaxSingle = ajaxSingle;
- }
-
- public String getStatus() {
- return status;
- }
-
- public void setStatus(String status) {
- this.status = status;
- }
}
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/WEB-INF/faces-config.xml 2008-10-14 13:55:28 UTC (rev 10740)
@@ -19,6 +19,16 @@
<converter-id>listShuttleconverter</converter-id>
<converter-class>org.ajax4jsf.model.ListShuttleConverter</converter-class>
</converter>
+
+ <validator>
+ <validator-id>autoTestValidator</validator-id>
+ <validator-class>org.ajax4jsf.autotest.bean.AutoTestValidator</validator-class>
+ </validator>
+
+ <validator>
+ <validator-id>autoTestDefaultValidator</validator-id>
+ <validator-class>org.ajax4jsf.autotest.bean.AutoTestDefaultValidator</validator-class>
+ </validator>
<managed-bean>
<managed-bean-name>configurator</managed-bean-name>
@@ -238,7 +248,7 @@
</managed-bean>
<managed-bean>
<managed-bean-name>autoTestBean</managed-bean-name>
- <managed-bean-class>org.ajax4jsf.bean.AutoTestBean</managed-bean-class>
+ <managed-bean-class>org.ajax4jsf.autotest.bean.AutoTestBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestControls.xhtml 2008-10-14 13:55:28 UTC (rev 10740)
@@ -5,16 +5,58 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:form id="autoTestControlForm">
- <div>
- <h:commandButton id="testRendered" actionListener="#{templateBean.reset}" action="#{autoTestBean.testRendered}" value="testRendered"></h:commandButton>
- <h:commandButton id="testReRender" actionListener="#{templateBean.reset}" action="#{autoTestBean.testReRender}" value="testReRender"></h:commandButton>
- <h:commandButton id="testListeners" actionListener="#{templateBean.reset}" action="#{autoTestBean.testListeners}" value="testListeners"></h:commandButton>
- <h:commandButton id="testFalidation" actionListener="#{templateBean.reset}" action="#{autoTestBean.testFalidation}" value="testFalidation"></h:commandButton>
- <h:commandButton id="testAjaxSingle" actionListener="#{templateBean.reset}" action="#{autoTestBean.testAjaxSingle}" value="testAjaxSingle"></h:commandButton>
- <h:commandButton id="testImmdediate" actionListener="#{templateBean.reset}" action="#{autoTestBean.testImmdediate}" value="testImmdediate"></h:commandButton>
- <h:commandButton id="testBypassUpdate" actionListener="#{templateBean.reset}" action="#{autoTestBean.testBypassUpdate}" value="testBypassUpdate"></h:commandButton>
- <h:commandButton id="testLimitToList1" actionListener="#{templateBean.reset}" action="#{autoTestBean.testLimitToList1}" value="testLimitToList1"></h:commandButton>
- <h:commandButton id="testLimitToList2" actionListener="#{templateBean.reset}" action="#{autoTestBean.testLimitToList2}" value="testLimitToList2"></h:commandButton>
- </div>
+ <table>
+ <tr>
+ <td>ReRender:</td>
+ <td>
+ <h:inputText id="_auto_reRender" value="#{autoTestBean.reRender}"></h:inputText>
+ </td>
+ </tr>
+ <tr>
+ <td>Oncomplete:</td>
+ <td>
+ <h:inputText id="_auto_oncomplete" value="#{autoTestBean.oncomplete}"></h:inputText>
+ </td>
+ </tr>
+ <tr>
+ <td>ValidatorId:</td>
+ <td>
+ <h:inputText id="_auto_validatorId" value="#{autoTestBean.validatorId}"></h:inputText>
+ </td>
+ </tr>
+ <tr>
+ <td>Rendered:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_rendered" value="#{autoTestBean.rendered}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>AjaxSingle:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_ajaxSingle" value="#{autoTestBean.ajaxSingle}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>Immediate:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_immediate" value="#{autoTestBean.immediate}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>BypassUpdate:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_bypassUpdate" value="#{autoTestBean.bypassUpdate}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td>LimitToList:</td>
+ <td>
+ <h:selectBooleanCheckbox id="_auto_limitToList" value="#{autoTestBean.limitToList}"></h:selectBooleanCheckbox>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"><h:commandButton id="_auto_load" actionListener="#{templateBean.reset}" action="#{autoTestBean.load}" value="Load"></h:commandButton> </td>
+ </tr>
+ </table>
</h:form>
</html>
\ No newline at end of file
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/autotest/autoTestHiddens.xhtml 2008-10-14 13:55:28 UTC (rev 10740)
@@ -6,5 +6,5 @@
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:inputHidden id="_auto_input" value="#{autoTestBean.input}" required="true"></h:inputHidden>
<h:outputText id="_auto_status" style="display: none;" value="#{autoTestBean.status}"></h:outputText>
- <h:outputText id="_auto_time" value="#{autoTestBean.text}"></h:outputText>
+ <h:outputText id="_auto_time" style="display: none;" value="#{autoTestBean.text}"></h:outputText>
</html>
\ No newline at end of file
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
===================================================================
(Binary files differ)
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScroller.xhtml 2008-10-14 13:55:28 UTC (rev 10740)
@@ -23,7 +23,6 @@
<br/>
<h:form id="_data">
<rich:datascroller id="scroller"
- rendered="#{dataScrollerBean.rendered}"
for="tbl"
align="left"
maxPages="#{dataScrollerBean.maxPages}"
@@ -34,10 +33,6 @@
onmouseout="EventQueue.fire('onmouseout')"
onmouseover="EventQueue.fire('onmouseover')"
onmouseup="EventQueue.fire('onmouseup')"
- limitToList="#{dataScrollerBean.limitToList}"
- reRender="#{dataScrollerBean.reRender}"
- oncomplete="#{dataScrollerBean.onComplete}"
- bypassUpdates="#{dataScrollerBean.bypassUpdates}"
/>
@@ -60,9 +55,7 @@
<br/><br/>
- <h:outputText id="time" value="#{dataScrollerBean.time}"></h:outputText>
- <h:inputText id="input" value="#{dataScrollerBean.input}"></h:inputText>
-
+
</h:form>
</ui:define>
</ui:composition>
Modified: trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dataScroller/dataScrollerAjax.xhtml 2008-10-14 13:55:28 UTC (rev 10740)
@@ -20,8 +20,11 @@
limitToList="#{autoTestBean.limitToList}"
bypassUpdates="#{autoTestBean.bypassUpdate}"
rendered="#{autoTestBean.rendered}"
- oncomplete="window._ajaxOncomplete = true;"
- />
+ oncomplete="#{autoTestBean.oncomplete}"
+ >
+ <f:param name="parameter1" value="value1" />
+ <f:actionListener type="org.ajax4jsf.autotest.bean.AutoTestListener" />
+ </rich:datascroller>
<br/>
<rich:dataTable id="tbl" value="#{dataScrollerBean.data}" rows="#{dataScrollerBean.tableRows}" var="var">
<rich:column>
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/AutoTester.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -8,8 +8,9 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
-import org.ajax4jsf.bean.AutoTestBean;
+import org.ajax4jsf.autotest.bean.AutoTestBean;
import org.ajax4jsf.template.Template;
import org.testng.Assert;
@@ -26,12 +27,14 @@
private static final String INPUT_ID = "_auto_input";
- private static final String STATUS_ID = "_auto_status";
+ public static final String STATUS_ID = "_auto_status";
private static final String TIME_ID = "_auto_time";
public static final String COMPONENT_ID = "componentId";
+ private static final String PARAMS_MAP_VAR_NAME = "requestParamsMap";
+
// /private String componentName;
@@ -52,20 +55,22 @@
testAjaxSingle();
testImmediate();
testBypassUpdate();
- testFalidationFailure();
+ testExtrenalValidationFailure();
testLimitToList();
}
public void testRendered() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testRendered";
- base.clickCommandAndWait(commandId);
+ reset();
+ setupControl(TestSetupEntry.rendered, Boolean.FALSE);
+ clickLoad();
+
base.AssertNotPresent(getClientId(COMPONENT_ID), "Rendered attribute does not work");
}
public void testReRender() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testReRender";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.reRender, STATUS_ID + "," + TIME_ID);
+ clickLoad();
String text = base.getTextById(base.getParentId() + AUTOTEST_FORM_ID + TIME_ID);
@@ -77,72 +82,74 @@
}
public void testActionListener() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testListeners";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ clickLoad();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(true);
}
- public void testFalidationFailure() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testFalidation";
- base.clickCommandAndWait(commandId);
- setValidation(false);
-
+ public void testExtrenalValidationFailure() {
+ reset();
+ clickLoad();
+
+ setExtrenalValidationFailed();
base.sendAjax();
- checkListener(false);
+ checkActionListener(false);
checkUpdateModel(false);
}
public void testAjaxSingle() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testAjaxSingle";
- base.clickCommandAndWait(commandId);
- setValidation(false);
+ reset();
+ setupControl(TestSetupEntry.ajaxSingle, Boolean.TRUE);
+ clickLoad();
+ setExtrenalValidationFailed();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(false);
}
public void testImmediate() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testImmdediate";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.immediate, Boolean.TRUE);
+ clickLoad();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(false);
}
public void testBypassUpdate() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testBypassUpdate";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.bypassUpdate, Boolean.TRUE);
+ clickLoad();
base.sendAjax();
- checkListener(true);
+ checkActionListener(true);
checkUpdateModel(false);
}
public void testLimitToList() {
- String commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testLimitToList1";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.limitToList, Boolean.TRUE);
+ clickLoad();
checkComponentReRendered();
- commandId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "testLimitToList2";
- base.clickCommandAndWait(commandId);
- setValidation(true);
+ reset();
+ setupControl(TestSetupEntry.limitToList, Boolean.TRUE);
+ setupControl(TestSetupEntry.reRender, STATUS_ID + "," + TIME_ID);
+ clickLoad();
+
String text = base.getTextById(base.getParentId() + AUTOTEST_FORM_ID + TIME_ID);
@@ -153,6 +160,43 @@
}
+
+ public void testRequestParameters(Map<String, String> params) {
+ reset();
+ clickLoad();
+
+ base.sendAjax();
+
+ for (String name : params.keySet()) {
+ String value = base.runScript(PARAMS_MAP_VAR_NAME + "." + name);
+ if (value == null) {
+ Assert.fail("Parameter [" + name + "] is not present in ajax request");
+ }else if (!value.equals(params.get(name))) {
+ Assert.fail("Parameter [" + name + "] value is invalid. Expected ["+params.get(name)+"]. But was ["+value+"]");
+ }
+ }
+ }
+
+ public void testNestedActionListener() {
+ reset();
+ clickLoad();
+
+ base.sendAjax();
+
+ checkNestedActionListener(true);
+ }
+
+ public void testOncomplete() {
+ reset();
+ clickLoad();
+
+ base.sendAjax();
+
+ String oncomplete = base.runScript("window._ajaxOncomplete");
+ Assert.assertEquals("true", oncomplete, "Oncomplete attribute does not work.");
+
+ }
+
private void checkComponentReRendered() {
List<String> htmlBefore = new ArrayList<String>();
List<String> htmlAfter = new ArrayList<String>();
@@ -187,21 +231,51 @@
return template.getPrefix() + AUTOTEST_FORM_ID + id;
}
+
+ private void reset() {
+ for (TestSetupEntry attr : TestSetupEntry.list) {
+ setupControl(attr, attr.defaultValue);
+ }
+ }
- private void setValidation(boolean passed) {
- base.setValueById(base.getParentId() + AUTOTEST_FORM_ID + INPUT_ID, (passed) ? AutoTestBean.INPUT_TEXT : "");
+ private void clickLoad() {
+ String commandButtonId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + "_auto_load";
+ base.clickCommandAndWait(commandButtonId);
}
+ private void setExtrenalValidationFailed() {
+ base.setValueById(base.getParentId() + AUTOTEST_FORM_ID + INPUT_ID, "");
+ }
- private void checkListener(boolean passed) {
+ private void setupControl(TestSetupEntry attr, Object o) {
+ final String idPrefix = "_auto_";
+ String controlId = base.getParentId() + AUTOTEST_CONTROLS_FORM_ID + idPrefix + attr.name;
+ if (attr.type.equals(String.class)) {
+ base.runScript("document.getElementById('" + controlId + "').value = '" + o.toString() + "'");
+ }else if (attr.type.equals(Boolean.class)) {
+ base.runScript("document.getElementById('" + controlId + "').checked = " + o.toString());
+ }
+ }
+
+
+ private void checkActionListener(boolean passed) {
String status = getStatus();
if (passed && status != null && status.indexOf(AutoTestBean.ACTION_LISTENER_STATUS) == -1) {
Assert.fail("ActionListener has been skipped");
}else if (!passed && status != null && status.indexOf(AutoTestBean.ACTION_LISTENER_STATUS) != -1) {
- Assert.fail("ActionListener should be skipped");
+ Assert.fail(status);
}
}
+ private void checkNestedActionListener(boolean passed) {
+ String status = getStatus();
+ if (passed && status != null && status.indexOf(AutoTestBean.NESTED_ACTION_LISTENER_STATUS) == -1) {
+ Assert.fail("Nested actionListener has been skipped");
+ }else if (!passed && status != null && status.indexOf(AutoTestBean.NESTED_ACTION_LISTENER_STATUS) != -1) {
+ Assert.fail("Nested actionListener should be skipped");
+ }
+ }
+
private void checkUpdateModel(boolean passed) {
String status = getStatus();
if (passed && status != null && status.indexOf(AutoTestBean.UPDATE_MODEL_STATUS) == -1) {
@@ -215,3 +289,45 @@
return base.getTextById(base.getParentId() + AUTOTEST_FORM_ID + STATUS_ID);
}
}
+
+
+
+class TestSetupEntry {
+
+ String name;
+
+ Class<?> type;
+
+ Object defaultValue;
+
+ public TestSetupEntry(String name, Class<?> type, Object defaultValue) {
+ super();
+ this.name = name;
+ this.type = type;
+ this.defaultValue = defaultValue;
+ }
+
+
+ public static final TestSetupEntry reRender = new TestSetupEntry("reRender", String.class, AutoTester.STATUS_ID);
+ public static final TestSetupEntry validatorId = new TestSetupEntry("validatorId", String.class, AutoTestBean.VALIDATOR_DEFAULT_ID);
+ public static final TestSetupEntry oncomplete = new TestSetupEntry("oncomplete", String.class, AutoTestBean.ONCOMPLETE);
+ public static final TestSetupEntry rendered = new TestSetupEntry("rendered", Boolean.class, Boolean.TRUE);
+ public static final TestSetupEntry ajaxSingle = new TestSetupEntry("ajaxSingle", Boolean.class, Boolean.FALSE);
+ public static final TestSetupEntry immediate = new TestSetupEntry("immediate", Boolean.class, Boolean.FALSE);
+ public static final TestSetupEntry bypassUpdate = new TestSetupEntry("bypassUpdate", Boolean.class, Boolean.FALSE);
+ public static final TestSetupEntry limitToList = new TestSetupEntry("limitToList", Boolean.class, Boolean.FALSE);
+
+ public static final List<TestSetupEntry> list = new ArrayList<TestSetupEntry>();
+ static {
+ list.add(reRender);
+ list.add(validatorId);
+ list.add(rendered);
+ list.add(ajaxSingle);
+ list.add(immediate);
+ list.add(bypassUpdate);
+ list.add(limitToList);
+ list.add(oncomplete);
+
+ }
+
+}
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-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -82,6 +82,15 @@
private Template template;
+ private AutoTester autoTester;
+
+ public AutoTester getAutoTester(SeleniumTestBase base) {
+ if (autoTester == null) {
+ autoTester = new AutoTester(base);
+ }
+ return autoTester;
+ }
+
/**
* Returns current template
* */
Modified: trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java
===================================================================
--- trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java 2008-10-14 13:48:24 UTC (rev 10739)
+++ trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DataScrollerTest.java 2008-10-14 13:55:28 UTC (rev 10740)
@@ -53,12 +53,13 @@
@Test
public void testAutoAjaxAttributes(Template template) {
- AutoTester autoTester = new AutoTester(this);
+ AutoTester autoTester = getAutoTester(this);
+
dataScrollerTableId = autoTester.getClientId(AutoTester.COMPONENT_ID + "_table", template);
autoTester.renderPage(template, RESET_METHOD_ME);
autoTester.testAllAjaxAttributes();
-
+
}
@Override
@@ -78,8 +79,8 @@
return "pages/dataScroller/dataScrollerAjax.xhtml";
}
-
+
@Test
public void testDataScrollerRendering(Template template) {
@@ -326,7 +327,7 @@
selenium.getEval(b.toString());
waitForAjaxCompletion();
}
-
+
/* (non-Javadoc)
* @see org.richfaces.SeleniumTestBase#getTestUrl()
*/
17 years, 2 months
JBoss Rich Faces SVN: r10739 - trunk/docs/userguide/en/src/main/docbook/modules.
by richfaces-svn-commits@lists.jboss.org
Author: smukhina
Date: 2008-10-14 09:48:24 -0400 (Tue, 14 Oct 2008)
New Revision: 10739
Modified:
trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml
Log:
https://jira.jboss.org/jira/browse/RF-4531
Modified: trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml
===================================================================
--- trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml 2008-10-14 12:29:20 UTC (rev 10738)
+++ trunk/docs/userguide/en/src/main/docbook/modules/RFCtechreqs.xml 2008-10-14 13:48:24 UTC (rev 10739)
@@ -110,6 +110,10 @@
<listitem><para>Glassfish (J2EE 5)</para></listitem>
<listitem><para>JBoss 4.2.x - 5</para></listitem>
+
+ <listitem><para> Websphere 7.0. and higher </listitem></para>
+
+ <listitem><para>Geronimo 2.0 and higher </listitem></para>
</itemizedlist>
@@ -123,9 +127,9 @@
<itemizedlist>
<listitem><para>Internet Explorer 6.0 - 7.0</para></listitem>
- <listitem><para>Firefox 1.5 - 2.0</para></listitem>
+ <listitem><para>Firefox 1.5 - 3.0</para></listitem>
- <listitem><para>Opera 8.5 - 9.2</para></listitem>
+ <listitem><para>Opera 8.5 - 9.5</para></listitem>
<listitem><para>Safari 2.0-3.1</para></listitem>
17 years, 2 months
JBoss Rich Faces SVN: r10738 - trunk/docs/userguide/en/src/main/resources/images.
by richfaces-svn-commits@lists.jboss.org
Author: atsebro
Date: 2008-10-14 08:29:20 -0400 (Tue, 14 Oct 2008)
New Revision: 10738
Added:
trunk/docs/userguide/en/src/main/resources/images/RichFaces Greeter.png
Log:
RF-4056: Getting Started with RichFaces chapter should be updated
Added: trunk/docs/userguide/en/src/main/resources/images/RichFaces Greeter.png
===================================================================
(Binary files differ)
Property changes on: trunk/docs/userguide/en/src/main/resources/images/RichFaces Greeter.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
17 years, 2 months
JBoss Rich Faces SVN: r10737 - Suite and 1 other directory.
by richfaces-svn-commits@lists.jboss.org
Author: mvitenkov
Date: 2008-10-14 08:15:02 -0400 (Tue, 14 Oct 2008)
New Revision: 10737
Added:
trunk/test-applications/qa/Performance Suite/Performance Test Suite Blank 3.3.0 (1).doc
Log:
Added: trunk/test-applications/qa/Performance Suite/Performance Test Suite Blank 3.3.0 (1).doc
===================================================================
(Binary files differ)
Property changes on: trunk/test-applications/qa/Performance Suite/Performance Test Suite Blank 3.3.0 (1).doc
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
17 years, 2 months
JBoss Rich Faces SVN: r10736 - trunk/ui/core/src/main/resources/org/richfaces/renderkit/html/css.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-10-14 04:24:37 -0400 (Tue, 14 Oct 2008)
New Revision: 10736
Modified:
trunk/ui/core/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss
Log:
Extra css separatot removed
Modified: trunk/ui/core/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss
===================================================================
--- trunk/ui/core/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss 2008-10-14 01:02:19 UTC (rev 10735)
+++ trunk/ui/core/src/main/resources/org/richfaces/renderkit/html/css/extended_classes.xcss 2008-10-14 08:24:37 UTC (rev 10736)
@@ -57,7 +57,7 @@
.rich-container button[type="submit"], .rich-button-submit,
.rich-container input[type="reset"], .rich-input-reset,
.rich-container input[type="submit"], .rich-input-submit,
- .rich-container input[type="button"], .rich-input-button,
+ .rich-container input[type="button"], .rich-input-button
">
<u:style name="border-color" skin="panelBorderColor" />
<u:style name="font-size" skin="generalSizeFont" />
17 years, 2 months
JBoss Rich Faces SVN: r10735 - trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature.
by richfaces-svn-commits@lists.jboss.org
Author: nbelaevski
Date: 2008-10-13 21:02:19 -0400 (Mon, 13 Oct 2008)
New Revision: 10735
Modified:
trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature/sortingUsage.xhtml
Log:
typo corrected
Modified: trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature/sortingUsage.xhtml
===================================================================
--- trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature/sortingUsage.xhtml 2008-10-13 23:59:19 UTC (rev 10734)
+++ trunk/samples/richfaces-demo/src/main/webapp/richfaces/sortingFeature/sortingUsage.xhtml 2008-10-14 01:02:19 UTC (rev 10735)
@@ -50,7 +50,7 @@
"UNSORTED"(default)
</li>
<li>
- <b>selfSorted</b> attribute of <b>brich:column</b> which defines
+ <b>selfSorted</b> attribute of <b>rich:column</b> which defines
if the table will make a header clickable and if click on the
header will call sorting request.
Default value is "true". In order to use custom sorting mechanism
17 years, 2 months