Author: julien(a)jboss.com
Date: 2007-04-22 10:39:07 -0400 (Sun, 22 Apr 2007)
New Revision: 7018
Added:
trunk/common/src/main/org/jboss/portal/common/test/junit/ThrowableDecoder.java
trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/refresh/
trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/refresh/LinkPartialRefreshWindowTest.java
Removed:
trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/LinkTest.java
Modified:
trunk/common/src/main/org/jboss/portal/common/test/driver/response/EndTestResponse.java
trunk/common/src/main/org/jboss/portal/common/test/driver/response/ErrorResponse.java
trunk/common/src/main/org/jboss/portal/common/test/driver/response/FailureResponse.java
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/TestAction.java
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/actions/ServletServiceTestAction.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/HttpDriverResponse.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/SendResponseResponse.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/remote/TestContext.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestConversation.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestDriverClient.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/GetPageResponse.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/PerformClickResponse.java
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/WebDriverResponse.java
trunk/theme/src/main/org/jboss/portal/test/theme/DynaTestContext.java
trunk/theme/src/main/org/jboss/portal/test/theme/TestServlet.java
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java
trunk/theme/src/resources/test/theme-test-war/layouts/generic/index.jsp
Log:
- update web test framework
- improved the partial refresh window test case
Modified:
trunk/common/src/main/org/jboss/portal/common/test/driver/response/EndTestResponse.java
===================================================================
---
trunk/common/src/main/org/jboss/portal/common/test/driver/response/EndTestResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/common/src/main/org/jboss/portal/common/test/driver/response/EndTestResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -36,7 +36,8 @@
/** The serialVersionUID */
private static final long serialVersionUID = 5213703287701969049L;
- public EndTestResponse()
+ public String toString()
{
+ return "EndTest[]";
}
}
Modified:
trunk/common/src/main/org/jboss/portal/common/test/driver/response/ErrorResponse.java
===================================================================
---
trunk/common/src/main/org/jboss/portal/common/test/driver/response/ErrorResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/common/src/main/org/jboss/portal/common/test/driver/response/ErrorResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -63,4 +63,9 @@
{
return throwable;
}
+
+ public String toString()
+ {
+ return throwable != null ? "Error[throwable=" + throwable +
"]" : "Error[]";
+ }
}
Modified:
trunk/common/src/main/org/jboss/portal/common/test/driver/response/FailureResponse.java
===================================================================
---
trunk/common/src/main/org/jboss/portal/common/test/driver/response/FailureResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/common/src/main/org/jboss/portal/common/test/driver/response/FailureResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -63,4 +63,9 @@
{
return throwable;
}
+
+ public String toString()
+ {
+ return throwable != null ? "Failure[throwable=" + throwable +
"]" : "ErrorResponse[]";
+ }
}
Added: trunk/common/src/main/org/jboss/portal/common/test/junit/ThrowableDecoder.java
===================================================================
--- trunk/common/src/main/org/jboss/portal/common/test/junit/ThrowableDecoder.java
(rev 0)
+++
trunk/common/src/main/org/jboss/portal/common/test/junit/ThrowableDecoder.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated 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.jboss.portal.common.test.junit;
+
+import junit.framework.AssertionFailedError;
+import org.jboss.portal.common.test.driver.response.FailureResponse;
+import org.jboss.portal.common.test.driver.response.ErrorResponse;
+import org.jboss.portal.common.test.driver.DriverResponse;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class ThrowableDecoder
+{
+ /**
+ * <p>Decode a throwable into a suitable driver response.</p>
+ *
+ * <p>If the throwable or one of its causes are an instance of the class
<code>junit.framework.AssertionFailedError</code>
+ * then a
<code>org.jboss.portal.common.test.driver.response.FailureResponse</code> is
returned.</p>
+ *
+ * <p>Otherwise an
<code>org.jboss.portal.common.test.driver.response.ErrorResponse</code> object
is built
+ * with the throwable as argument and returned.</p>
+ *
+ * @param t the throwable to decode.
+ * @return the proper driver response
+ */
+ public static DriverResponse decode(Throwable t)
+ {
+ for (Throwable u = t; u != null; u = u.getCause())
+ {
+ if (u instanceof AssertionFailedError)
+ {
+ AssertionFailedError afe = (AssertionFailedError)u;
+ return new FailureResponse(afe);
+ }
+ }
+ return new ErrorResponse(t);
+ }
+}
Modified: trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/TestAction.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/TestAction.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/TestAction.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -22,11 +22,7 @@
******************************************************************************/
package org.jboss.portal.test.framework.portlet;
-import junit.framework.AssertionFailedError;
import org.jboss.portal.common.junit.ExtendedAssert;
-import org.jboss.portal.common.test.driver.response.FailureResponse;
-import org.jboss.portal.common.test.driver.response.ErrorResponse;
-import org.jboss.portal.common.test.driver.DriverResponse;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
@@ -34,17 +30,4 @@
*/
public abstract class TestAction extends ExtendedAssert
{
-
- protected DriverResponse decode(Throwable t)
- {
- for (Throwable u = t; u != null; u = u.getCause())
- {
- if (u instanceof AssertionFailedError)
- {
- AssertionFailedError afe = (AssertionFailedError)u;
- return new FailureResponse(afe);
- }
- }
- return new ErrorResponse(t);
- }
}
Modified:
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/actions/ServletServiceTestAction.java
===================================================================
---
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/actions/ServletServiceTestAction.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/portlet/src/main/org/jboss/portal/test/framework/portlet/actions/ServletServiceTestAction.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -23,6 +23,7 @@
package org.jboss.portal.test.framework.portlet.actions;
import org.jboss.portal.common.test.driver.DriverResponse;
+import org.jboss.portal.common.test.junit.ThrowableDecoder;
import org.jboss.portal.test.framework.portlet.TestAction;
import org.jboss.portal.test.framework.portlet.PortletTestContext;
@@ -48,7 +49,7 @@
}
catch (Throwable t)
{
- return decode(t);
+ return ThrowableDecoder.decode(t);
}
}
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/HttpDriverResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/HttpDriverResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/HttpDriverResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -28,6 +28,6 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
-public class HttpDriverResponse extends DriverResponse
+public abstract class HttpDriverResponse extends DriverResponse
{
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokeGetResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -73,6 +73,6 @@
public String toString()
{
- return "InvokeRenderURL[" + url + "]";
+ return "InvokeGet[url=" + url + "]";
}
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/InvokePostResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -80,4 +80,9 @@
{
this.contentType = contentType;
}
+
+ public String toString()
+ {
+ return "InvokePost[url=" + url + "]";
+ }
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/SendResponseResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/SendResponseResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/http/response/SendResponseResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -28,4 +28,8 @@
*/
public class SendResponseResponse extends HttpDriverResponse
{
+ public String toString()
+ {
+ return "SendResponse[]";
+ }
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/remote/TestContext.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/remote/TestContext.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/remote/TestContext.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -129,7 +129,7 @@
{
if (this.response != null)
{
- throw new IllegalStateException("A response is already provided");
+ throw new IllegalStateException("Cannot set response " + response +
" on context because a response is already provided " + this.response);
}
else
{
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestConversation.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestConversation.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestConversation.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -36,10 +36,10 @@
import org.jboss.portal.test.framework.server.Node;
import org.jboss.portal.common.test.driver.DriverCommand;
import org.jboss.portal.common.test.driver.DriverResponse;
+import org.jboss.portal.common.test.driver.response.EndTestResponse;
import org.jboss.portal.common.test.driver.command.StartTestCommand;
import org.apache.log4j.Logger;
import com.thoughtworks.selenium.Selenium;
-import com.thoughtworks.selenium.DefaultSelenium;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -60,9 +60,6 @@
/** The request count for that session. */
private int requestCount;
- /** . */
- private Selenium selenium;
-
public WebTestConversation(WebTestDriverClient driver, String testId, Node node)
{
super(driver, testId);
@@ -84,6 +81,7 @@
//
if (command instanceof StartTestCommand)
{
+ log.info("# Starting test : " + node + " : " + testId);
requestCount = -1;
pushContext();
DriverResponse response = driver.getServer(node).invoke(testId, command);
@@ -98,7 +96,10 @@
log.info("# Clicking element : " + node + " : " + id);
requestCount++;
pushContext();
+ Selenium selenium = driver.getSelenium();
selenium.click(id);
+ Thread.sleep(5000);
+// selenium.waitForPageToLoad("50000");
}
else if (command instanceof GetPageCommand)
{
@@ -107,7 +108,9 @@
log.info("# Getting page : " + node + " : " + uri);
requestCount++;
pushContext();
- open(uri);
+ Selenium selenium = driver.getSelenium();
+ selenium.open(uri);
+ selenium.waitForPageToLoad("5000");
}
//
@@ -134,22 +137,16 @@
}
else
{
+ if (response instanceof EndTestResponse)
+ {
+ log.info("# Ending test : " + testId);
+ }
+
+ //
return null;
}
}
- private void open(String url)
- {
- if (selenium == null)
- {
- selenium = new DefaultSelenium("localhost", 12345,
"*firefox", url);
- selenium.start();
- }
-
- //
- selenium.open(url);
- }
-
private void pushContext()
{
TestContext ctx = new TestContext(requestCount, driver.getArchivePath(), null);
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestDriverClient.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestDriverClient.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/WebTestDriverClient.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -25,6 +25,11 @@
import org.jboss.portal.test.framework.driver.remote.RemoteTestDriverClient;
import org.jboss.portal.test.framework.driver.remote.TestConversation;
import org.jboss.portal.test.framework.server.Node;
+import org.jboss.portal.common.test.driver.DriverResponse;
+import org.jboss.portal.common.test.driver.DriverCommand;
+import org.jboss.portal.common.test.driver.TestDriverException;
+import com.thoughtworks.selenium.Selenium;
+import com.thoughtworks.selenium.DefaultSelenium;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -32,8 +37,25 @@
*/
public class WebTestDriverClient extends RemoteTestDriverClient
{
+
+ /** . */
+ private Selenium selenium;
+
protected TestConversation createConversation(String testId, Node node)
{
return new WebTestConversation(this, testId, node);
}
+
+ public Selenium getSelenium()
+ {
+ if (selenium == null)
+ {
+ // We open localhost:8080 provided by tomcat as we need to open something for
selenium
+ selenium = new DefaultSelenium("localhost", 12345,
"*firefox", "http://localhost:8080");
+ selenium.start();
+ }
+
+ //
+ return selenium;
+ }
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/GetPageResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/GetPageResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/GetPageResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -30,15 +30,20 @@
{
/** . */
- private final String uri;
+ private final String url;
- public GetPageResponse(String uri)
+ public GetPageResponse(String url)
{
- this.uri = uri;
+ this.url = url;
}
public String getURI()
{
- return uri;
+ return url;
}
+
+ public String toString()
+ {
+ return "GetPage[url=" + url + "]";
+ }
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/PerformClickResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/PerformClickResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/PerformClickResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -43,4 +43,9 @@
{
return id;
}
+
+ public String toString()
+ {
+ return "PerformClick[id=" + id + "]";
+ }
}
Modified:
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/WebDriverResponse.java
===================================================================
---
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/WebDriverResponse.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/test/src/main/org/jboss/portal/test/framework/driver/web/response/WebDriverResponse.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -28,6 +28,6 @@
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision: 1.1 $
*/
-public class WebDriverResponse extends DriverResponse
+public abstract class WebDriverResponse extends DriverResponse
{
}
Modified: trunk/theme/src/main/org/jboss/portal/test/theme/DynaTestContext.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/DynaTestContext.java 2007-04-21
12:07:46 UTC (rev 7017)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/DynaTestContext.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -48,6 +48,7 @@
import org.jboss.portal.test.theme.model.RenderedObject;
import org.jboss.portal.test.theme.model.ObjectChange;
import org.jboss.portal.test.framework.driver.web.WebTestCase;
+import org.jboss.portal.test.framework.driver.remote.TestContext;
import org.jboss.portal.common.util.MarkupInfo;
import org.jboss.portal.common.util.MediaType;
import org.jboss.portal.common.util.IteratorStatus;
@@ -56,15 +57,15 @@
import org.jboss.portal.common.test.driver.TestDriverException;
import org.jboss.portal.common.test.driver.response.FailureResponse;
import org.jboss.portal.common.test.driver.command.StartTestCommand;
+import org.jboss.portal.common.test.junit.ThrowableDecoder;
import org.jboss.portal.web.ServletContextDispatcher;
import org.jboss.portal.web.spi.ServletContainerContext;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.mx.util.MBeanProxy;
-import org.jboss.mx.util.MBeanProxyCreationException;
+import org.apache.log4j.Logger;
import javax.management.MBeanServer;
import javax.management.ObjectName;
-import javax.management.MalformedObjectNameException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -93,6 +94,8 @@
}
};
+ private final Logger log;
+
/** . */
private PageObject page;
@@ -128,6 +131,7 @@
super(test.getId(), path);
//
+ this.log = Logger.getLogger(test.getClass());
this.servlet = servlet;
this.test = test;
}
@@ -157,6 +161,12 @@
page.setProperty(ThemeConstants.PORTAL_PROP_LAYOUT,
layout.getLayoutInfo().getName());
//
+ // RegionObject testContextRegion =
page.createRegion("TestContextRegion");
+ // testContextRegion.setRenderOptions(DynaRenderOptions.getOptions(null,
Boolean.FALSE));
+ // WindowObject testContextWindow =
testContextRegion.addWindow("TestContextWindow");
+ // testContextWindow.setRenderOptions(DynaRenderOptions.getOptions(null,
Boolean.FALSE));
+
+ //
test.init(this);
}
catch (Exception e)
@@ -176,33 +186,59 @@
void invoke(RequestContext requestContext) throws RenderException, IOException
{
- // Invoke
- DriverResponse response = test.invoke(requestContext);
-
- // Set response on context
- if (response != null)
+ // The optional action phase has generated a response already, so we don't do
anything
+ if (context.getResponse() != null)
{
- context.setResponse(response);
+ return;
}
+ // Response
+ DriverResponse response;
+
//
- if (requestContext.getPhase().getLifeCycle() == TestPhase.RENDER_LIFE_CYCLE)
+ try
{
- if (requestContext.isAsync())
+ // Clear recorded changes now
+ records.clear();
+
+ // Invoke and get response
+ response = test.invoke(requestContext);
+
+ // Modify the test request context
+ // page.getWindow("TestContextWindow").setMarkup("<div
id=\"RequestCount\">" + context.getRequestCount() +
"</div>");
+
+ // Update the page if async
+ if (requestContext.getPhase().getLifeCycle() == TestPhase.RENDER_LIFE_CYCLE)
{
- handleAsync(requestContext);
+ if (requestContext.isAsync())
+ {
+ handleAsync(requestContext);
+ }
+ else
+ {
+ renderPage(requestContext);
+ }
+
+ // Clear recorded changes now
+ records.clear();
}
else
{
- renderPage(requestContext);
+ // Nothing special to do for now
}
+ }
+ catch (Throwable t)
+ {
+ log.error("Test failed", t);
- // Clear changes now
- records.clear();
+ //
+ response = ThrowableDecoder.decode(t);
}
- else
+
+ // Set response on context
+ if (response != null)
{
- // Nothing special to do for now
+ context.setResponse(response);
}
}
@@ -335,59 +371,4 @@
this.change = change;
}
}
-
-
-// /** . */
-// private HttpServletRequest request;
-//
-// /** . */
-// private String serverBaseURL;
-//
-// public TestContext(HttpServletRequest request)
-// {
-// this.request = request;
-// this.serverBaseURL = request.getContextPath() + "/test";
-// }
-//
-// public String getServerBaseURL()
-// {
-// return serverBaseURL;
-// }
-//
-// public Counter getCounter(WindowId windowId)
-// {
-// HttpSession session = request.getSession();
-//
-// //
-// Counter counter = (Counter)session.getAttribute(windowId.toString());
-// if (counter == null)
-// {
-// counter = new Counter(0);
-// session.setAttribute(windowId.toString(), counter);
-// }
-// return counter;
-// }
-//
-// public WindowResult renderWindow(WindowId windowId)
-// {
-// Counter counter = getCounter(windowId);
-// String link = serverBaseURL + "?windowId=" + windowId +
"&action=increment";
-// return createWindowMarkup("Window Title",
-// "Counter value is " + counter.getValue() + ", <a
href=\"" + link + "\">Increment counter</a><br/>"
+
-// "Link to a resource <a href=\"" + request.getContextPath() +
"/file.txt\">Resource</a><br/>" +
-// "Inline javascript <a href=\"javascript:alert('The
Alert');\">Resource</a><br/>");
-// }
-//
-// private WindowResult createWindowMarkup(String title, String content)
-// {
-// return new WindowResult(
-// title,
-// content,
-// Collections.EMPTY_MAP,
-// new HashMap(),
-// null,
-// null,
-// null);
-// }
-
}
Modified: trunk/theme/src/main/org/jboss/portal/test/theme/TestServlet.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/TestServlet.java 2007-04-21 12:07:46
UTC (rev 7017)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/TestServlet.java 2007-04-22 14:39:07
UTC (rev 7018)
@@ -26,7 +26,7 @@
import org.jboss.mx.util.MBeanProxy;
import org.jboss.portal.common.test.driver.TestDriverContainer;
import org.jboss.portal.test.theme.model.WindowObject;
-import org.jboss.portal.test.theme.dyna.tests.LinkTest;
+import org.jboss.portal.test.theme.dyna.tests.refresh.LinkPartialRefreshWindowTest;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -54,7 +54,17 @@
MBeanServer mbeanServer = MBeanServerLocator.locateJBoss();
testServer = (TestDriverContainer)MBeanProxy.get(TestDriverContainer.class, new
ObjectName("portal.test:service=TestDriverServer"), mbeanServer);
- addTest(new LinkTest("ABC"));
+ addTest(new LinkPartialRefreshWindowTest("A", Boolean.TRUE,
Boolean.TRUE, true));
+ addTest(new LinkPartialRefreshWindowTest("B", Boolean.TRUE,
Boolean.FALSE, false));
+ addTest(new LinkPartialRefreshWindowTest("C", Boolean.TRUE, null,
true));
+
+ addTest(new LinkPartialRefreshWindowTest("D", Boolean.FALSE,
Boolean.TRUE, false));
+ addTest(new LinkPartialRefreshWindowTest("E", Boolean.FALSE,
Boolean.FALSE, false));
+ addTest(new LinkPartialRefreshWindowTest("F", Boolean.FALSE, null,
false));
+
+ addTest(new LinkPartialRefreshWindowTest("G", null, Boolean.TRUE,
true));
+ addTest(new LinkPartialRefreshWindowTest("H", null, Boolean.FALSE,
false));
+ addTest(new LinkPartialRefreshWindowTest("I", null, null, false));
}
catch (Exception e)
{
Deleted: trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/LinkTest.java
===================================================================
--- trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/LinkTest.java 2007-04-21
12:07:46 UTC (rev 7017)
+++ trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/LinkTest.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -1,129 +0,0 @@
-/******************************************************************************
- * JBoss, a division of Red Hat *
- * Copyright 2006, Red Hat Middleware, LLC, and individual *
- * contributors as indicated 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.jboss.portal.test.theme.dyna.tests;
-
-import org.jboss.portal.test.theme.DynaTest;
-import org.jboss.portal.test.theme.DynaTestContext;
-import org.jboss.portal.test.theme.RequestContext;
-import org.jboss.portal.test.theme.TestPhase;
-import org.jboss.portal.test.theme.ObjectURL;
-import org.jboss.portal.test.theme.model.PageObject;
-import org.jboss.portal.test.theme.model.RegionObject;
-import org.jboss.portal.test.theme.model.WindowObject;
-import org.jboss.portal.test.theme.model.RenderedObject;
-import org.jboss.portal.test.framework.driver.web.response.PerformClickResponse;
-import org.jboss.portal.theme.impl.render.dynamic.DynaRenderOptions;
-import org.jboss.portal.common.test.driver.DriverResponse;
-import org.jboss.portal.common.test.driver.response.EndTestResponse;
-
-import java.util.Collections;
-
-/**
- * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
- * @version $Revision: 1.1 $
- */
-public class LinkTest extends DynaTest
-{
-
- /** . */
- private DynaTestContext dynaTestContext;
-
- public LinkTest(String id)
- {
- super(id);
- }
-
- public void init(DynaTestContext dynaTestContext)
- {
- PageObject page = dynaTestContext.getPage();
-
- //
- RegionObject regionA = page.createRegion("RegionA");
- regionA.setRenderOptions(DynaRenderOptions.getOptions(null, Boolean.TRUE));
-
- //
- WindowObject window0 = regionA.addWindow("0");
- window0.setRenderOptions(DynaRenderOptions.getOptions(null, Boolean.TRUE));
-
- //
- this.dynaTestContext = dynaTestContext;
- }
-
- public DriverResponse invoke(RequestContext requestContext)
- {
- TestPhase phase = requestContext.getPhase();
- if (phase.getLifeCycle() == TestPhase.RENDER_LIFE_CYCLE)
- {
- switch(phase.getCount())
- {
- case 0:
- WindowObject window = dynaTestContext.getPage().getWindow("0");
- ObjectURL url = requestContext.createURL(window);
- url.setParameter("abc", "def");
- String markup = "<a id=\"link\" href=\"" + url
+ "\">Click Me</a>";
- window.setMarkup(markup);
- return new PerformClickResponse("link");
- case 1:
- window = dynaTestContext.getPage().getWindow("0");
- url = requestContext.createURL(window);
- url.setParameter("abc", "ghi");
- markup = "<a id=\"link\" href=\"" + url +
"\">Click Me</a>";
- window.setMarkup(markup);
- return new PerformClickResponse("link");
- case 2:
- return new EndTestResponse();
- default:
- fail();
- }
- }
- else
- {
- switch(phase.getCount())
- {
- case 1:
- RenderedObject target = requestContext.getTarget();
- assertNotNull(target);
- assertTrue(target instanceof WindowObject);
- WindowObject window = (WindowObject)target;
- assertEquals("0", window.getId());
- assertTrue(requestContext.isAsync());
- assertEquals(Collections.singletonMap("abc", "def"),
requestContext.getParameterMap());
- return null;
- case 2:
- target = requestContext.getTarget();
- assertNotNull(target);
- assertTrue(target instanceof WindowObject);
- window = (WindowObject)target;
- assertEquals("0", window.getId());
- assertTrue(requestContext.isAsync());
- assertEquals(Collections.singletonMap("abc", "ghi"),
requestContext.getParameterMap());
- return null;
- default:
- fail();
- }
- }
-
- //
- return new EndTestResponse();
- }
-}
Added:
trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/refresh/LinkPartialRefreshWindowTest.java
===================================================================
---
trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/refresh/LinkPartialRefreshWindowTest.java
(rev 0)
+++
trunk/theme/src/main/org/jboss/portal/test/theme/dyna/tests/refresh/LinkPartialRefreshWindowTest.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -0,0 +1,147 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated 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.jboss.portal.test.theme.dyna.tests.refresh;
+
+import org.jboss.portal.test.theme.DynaTest;
+import org.jboss.portal.test.theme.DynaTestContext;
+import org.jboss.portal.test.theme.RequestContext;
+import org.jboss.portal.test.theme.TestPhase;
+import org.jboss.portal.test.theme.ObjectURL;
+import org.jboss.portal.test.theme.model.PageObject;
+import org.jboss.portal.test.theme.model.RegionObject;
+import org.jboss.portal.test.theme.model.WindowObject;
+import org.jboss.portal.test.theme.model.RenderedObject;
+import org.jboss.portal.test.framework.driver.web.response.PerformClickResponse;
+import org.jboss.portal.theme.impl.render.dynamic.DynaRenderOptions;
+import org.jboss.portal.common.test.driver.DriverResponse;
+import org.jboss.portal.common.test.driver.response.EndTestResponse;
+
+import java.util.Collections;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 1.1 $
+ */
+public class LinkPartialRefreshWindowTest extends DynaTest
+{
+
+ /** . */
+ private DynaTestContext dynaTestContext;
+
+ /** . */
+ private final Boolean regionPartialRefresh;
+
+ /** . */
+ private final Boolean windowPartialRefresh;
+
+ /** . */
+ private final boolean async;
+
+ public LinkPartialRefreshWindowTest(
+ String id,
+ Boolean regionPartialRefresh,
+ Boolean windowPartialRefresh,
+ boolean async)
+ {
+ super(id);
+
+ //
+ this.regionPartialRefresh = regionPartialRefresh;
+ this.windowPartialRefresh = windowPartialRefresh;
+ this.async = async;
+ }
+
+ public void init(DynaTestContext dynaTestContext)
+ {
+ PageObject page = dynaTestContext.getPage();
+
+ //
+ RegionObject regionA = page.createRegion("RegionA");
+ regionA.setRenderOptions(DynaRenderOptions.getOptions(null,
regionPartialRefresh));
+
+ //
+ WindowObject window0 = regionA.addWindow("0");
+ window0.setRenderOptions(DynaRenderOptions.getOptions(null,
windowPartialRefresh));
+
+ //
+ this.dynaTestContext = dynaTestContext;
+ }
+
+ public DriverResponse invoke(RequestContext requestContext)
+ {
+ TestPhase phase = requestContext.getPhase();
+ if (phase.getLifeCycle() == TestPhase.RENDER_LIFE_CYCLE)
+ {
+ switch(phase.getCount())
+ {
+ case 0:
+ WindowObject window = dynaTestContext.getPage().getWindow("0");
+ ObjectURL url = requestContext.createURL(window);
+ url.setParameter("abc", "def");
+ String markup = "<a id=\"link\" href=\"" + url
+ "\">Click Me</a>";
+ window.setMarkup(markup);
+ return new PerformClickResponse("link");
+ case 1:
+ window = dynaTestContext.getPage().getWindow("0");
+ url = requestContext.createURL(window);
+ url.setParameter("abc", "ghi");
+ markup = "<a id=\"link\" href=\"" + url +
"\">Click Me</a>";
+ window.setMarkup(markup);
+ return new PerformClickResponse("link");
+ case 2:
+ return new EndTestResponse();
+ default:
+ fail();
+ }
+ }
+ else
+ {
+ switch(phase.getCount())
+ {
+ case 1:
+ RenderedObject target = requestContext.getTarget();
+ assertNotNull(target);
+ assertTrue(target instanceof WindowObject);
+ WindowObject window = (WindowObject)target;
+ assertEquals("0", window.getId());
+ assertEquals(async, requestContext.isAsync());
+ assertEquals(Collections.singletonMap("abc", "def"),
requestContext.getParameterMap());
+ return null;
+ case 2:
+ target = requestContext.getTarget();
+ assertNotNull(target);
+ assertTrue(target instanceof WindowObject);
+ window = (WindowObject)target;
+ assertEquals("0", window.getId());
+ assertEquals(async, requestContext.isAsync());
+ assertEquals(Collections.singletonMap("abc", "ghi"),
requestContext.getParameterMap());
+ return null;
+ default:
+ fail();
+ }
+ }
+
+ //
+ return new EndTestResponse();
+ }
+}
Modified:
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java
===================================================================
---
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2007-04-21
12:07:46 UTC (rev 7017)
+++
trunk/theme/src/main/org/jboss/portal/theme/impl/render/dynamic/DynaWindowRenderer.java 2007-04-22
14:39:07 UTC (rev 7018)
@@ -65,13 +65,16 @@
DynaRenderOptions windowOptions = DynaRenderOptions.getOptions(dndValue,
partialRefreshValue);
//
+ boolean partialRefresh = !Boolean.FALSE.equals(regionOptions.getPartialRefresh())
& !Boolean.FALSE.equals(windowOptions.getPartialRefresh());
+
+ //
PrintWriter out = rendererContext.getWriter();
out.print("<div class=\"dyna-window\">");
out.print("<div id=\"");
out.print(wrc.getId());
if (regionOptions.isDnDEnabled())
{
- if (windowOptions.isPartialRefreshEnabled())
+ if (partialRefresh)
{
out.print("\" class=\"dnd-window
partial-refresh-window\">\n");
}
@@ -82,7 +85,7 @@
}
else
{
- if (windowOptions.isPartialRefreshEnabled())
+ if (partialRefresh)
{
out.print("\"
class=\"partial-refresh-window\">\n");
}
Modified: trunk/theme/src/resources/test/theme-test-war/layouts/generic/index.jsp
===================================================================
--- trunk/theme/src/resources/test/theme-test-war/layouts/generic/index.jsp 2007-04-21
12:07:46 UTC (rev 7017)
+++ trunk/theme/src/resources/test/theme-test-war/layouts/generic/index.jsp 2007-04-22
14:39:07 UTC (rev 7018)
@@ -9,6 +9,7 @@
</head>
<body>
<p:region regionName='AJAXScripts' regionID='AJAXScripts'/>
+<p:region regionName='TestContextRegion'
regionID='TestContextRegion'/>
<p:region regionName='RegionA' regionID='regionA'/>
<p:region regionName='RegionB' regionID='regionB'/>
<p:region regionName='RegionC' regionID='regionC'/>