Author: andrei_exadel
Date: 2008-11-28 06:36:24 -0500 (Fri, 28 Nov 2008)
New Revision: 11430
Added:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dnd/dndAutoTest.xhtml
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/layout/layout.xhtml
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dnd/dndTest.xhtml
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DnDTest.java
Log:
Drag&Drop Test
Modified:
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 2008-11-28
11:25:08 UTC (rev 11429)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/java/org/ajax4jsf/autotest/bean/AutoTestBean.java 2008-11-28
11:36:24 UTC (rev 11430)
@@ -11,9 +11,11 @@
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
+import javax.faces.event.FacesEvent;
import javax.faces.event.ValueChangeEvent;
import org.ajax4jsf.javascript.ScriptUtils;
+import org.richfaces.event.DropEvent;
import org.richfaces.event.NodeExpandedEvent;
import org.richfaces.event.NodeSelectedEvent;
@@ -70,7 +72,12 @@
public void actionListener(ActionEvent event) {
setStatus(getStatus() + ACTION_LISTENER_STATUS);
}
-
+
+ public void actionListener(DropEvent event) {
+ setStatus(getStatus() + ACTION_LISTENER_STATUS);
+ }
+
+
public void valueChangeListener(ValueChangeEvent event) {
setStatus(getStatus() + VALUE_CHANGE_LISTENER_STATUS);
}
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/dnd/dndAutoTest.xhtml
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dnd/dndAutoTest.xhtml
(rev 0)
+++
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dnd/dndAutoTest.xhtml 2008-11-28
11:36:24 UTC (rev 11430)
@@ -0,0 +1,39 @@
+<!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">
+ <h:outputLink id="drag">
+ <h:outputText value="Draggable" />
+ <rich:dragSupport
+ dragType="#{dndBean.frameworks[0].family}"
+ limitToList="#{autoTestBean.limitToList}"
+ bypassUpdates="#{autoTestBean.bypassUpdate}"
+ dragValue="#{dndBean.frameworks[0]}">
+
+ <rich:dndParam name="label" value="Draggable" />
+ </rich:dragSupport>
+ </h:outputLink>
+ <rich:panel id="PHP">
+ <rich:dropSupport id="componentId" acceptedTypes="PHP"
dropValue="PHP"
+ dropListener="#{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:param name="parameter2" value="value2" />
+ </rich:dropSupport>
+ </rich:panel>
+ </ui:define>
+</ui:composition>
+</html>
\ No newline at end of file
Modified:
trunk/test-applications/seleniumTest/richfaces/src/main/webapp/pages/dnd/dndTest.xhtml
===================================================================
(Binary files differ)
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-11-28
11:25:08 UTC (rev 11429)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/SeleniumTestBase.java 2008-11-28
11:36:24 UTC (rev 11430)
@@ -431,6 +431,7 @@
*/
public void waitForPageToLoad() {
selenium.waitForPageToLoad(String.valueOf(pageRenderTime));
+ selenium.waitForCondition(WINDOW_JS_RESOLVER + "loaded = true;",
String.valueOf(pageRenderTime));
}
/**
Modified:
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DnDTest.java
===================================================================
---
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DnDTest.java 2008-11-28
11:25:08 UTC (rev 11429)
+++
trunk/test-applications/seleniumTest/richfaces/src/test/java/org/richfaces/testng/DnDTest.java 2008-11-28
11:36:24 UTC (rev 11430)
@@ -1,14 +1,19 @@
package org.richfaces.testng;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.ajax4jsf.bean.DnDBean;
import org.ajax4jsf.template.Template;
+import org.richfaces.AutoTester;
import org.richfaces.SeleniumTestBase;
import org.testng.Assert;
import org.testng.annotations.Test;
+import com.thoughtworks.selenium.SeleniumException;
+
public class DnDTest extends SeleniumTestBase {
static final String RESET_METHOD = "#{dndBean.reset}";
@@ -16,6 +21,12 @@
static final String FORMID = "_form:";
static final String DATAID = "src:";
+ static final Map<String, String> parameters = new HashMap<String,
String>();
+ static {
+ parameters.put("parameter1", "value1");
+ parameters.put("parameter2", "value2");
+ }
+
String statusId;
String dragValueId;
String dropValueId;
@@ -41,7 +52,7 @@
return "c:/FFProfile";
}
- @Test
+ @Test
public void testDragValue(Template template) {
renderPage(template, RESET_METHOD);
initIds(getParentId());
@@ -91,7 +102,7 @@
}
- @Test
+ @Test
public void testEvents(Template template) {
renderPage(template, RESET_METHOD);
initIds(getParentId());
@@ -107,11 +118,83 @@
assertEvents(eventsExpected);
}
+
+ @Test
+ public void testListenersIfTypeNotAccepted(Template template) {
+ renderPage(template, RESET_METHOD);
+ initIds(getParentId());
+
+ boolean exception = false;
+
+ try {
+ DragAndDrop(0, cfDropZoneId);
+ }catch (SeleniumException e) {
+ exception = true;
+ }
+
+ if (!exception) {
+ Assert.fail("Drop on not accepted zone should not force ajax
request");
+ }
+
+ assertListeners();
+ }
+
+ @Test
+ public void testEventsIfTypeNotAccepted(Template template) {
+ renderPage(template, RESET_METHOD);
+ initIds(getParentId());
+
+ _DragAndDrop(0, cfDropZoneId);
+ List<String> eventsExpected = new ArrayList<String>();
+
+ eventsExpected.add("ondragstart");
+ eventsExpected.add("ondragenter");
+ eventsExpected.add("ondragend");
+ eventsExpected.add("ondropend");
+
+ assertEvents(eventsExpected);
+ }
+
+ @Test
+ public void testNestedParameters(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, RESET_METHOD);
+
+ tester.testRequestParameters(parameters);
+ }
+
+ @Test
+ public void testByPassUpdate(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, RESET_METHOD);
+
+ tester.testBypassUpdate();
+ }
+
+ @Test
+ public void testReRender(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, RESET_METHOD);
+
+ tester.testReRender();
+ }
+
+ @Test
+ public void testLimit2List(Template template) {
+ AutoTester tester = getAutoTester(this);
+ tester.renderPage(template, RESET_METHOD);
+
+ tester.testLimitToList();
+ }
void DragAndDrop(int itemNumber, String dropZoneId) {
- selenium.dragAndDropToObject("id=" + itemsHolderId + itemNumber +
":item", "id=" + dropZoneId + "_body");
+ _DragAndDrop(itemNumber, dropZoneId);
waitForAjaxCompletion();
}
+
+ void _DragAndDrop(int itemNumber, String dropZoneId) {
+ selenium.dragAndDropToObject("id=" + itemsHolderId + itemNumber +
":item", "id=" + dropZoneId + "_body");
+ }
void testDropData () {
String dragData = runScript("window._dropData");
@@ -164,4 +247,17 @@
public String getTestUrl() {
return "pages/dnd/dndTest.xhtml";
}
+
+ @Override
+ public String getAutoTestUrl() {
+ return "pages/dnd/dndAutoTest.xhtml";
+ }
+
+ @Override
+ public void sendAjax() {
+ String dragId = getParentId() + "autoTestForm:drag";
+ String dropId = getParentId() + "autoTestForm:PHP";
+ selenium.dragAndDropToObject(dragId, dropId);
+ waitForAjaxCompletion();
+ }
}
\ No newline at end of file