Revision: 636
http://svn.sourceforge.net/jwebunit/?rev=636&view=rev
Author: henryju
Date: 2006-12-05 05:55:33 -0800 (Tue, 05 Dec 2006)
Log Message:
-----------
Test redirection with new ThreadedRedirectionHandler.
Modified Paths:
--------------
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/WEB-INF/web.xml
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/TestingEngineResponseException.java
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
branches/1.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
branches/1.x/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
Added Paths:
-----------
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/redirect.html
Added:
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java
===================================================================
---
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java
(rev 0)
+++
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java
2006-12-05 13:55:33 UTC (rev 636)
@@ -0,0 +1,36 @@
+/******************************************************************************
+ * jWebUnit project (http://jwebunit.sourceforge.net) *
+ * Distributed open-source, see full license under LICENCE.txt *
+
******************************************************************************/
+package net.sourceforge.jwebunit.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import net.sourceforge.jwebunit.tests.util.JettySetup;
+
+/**
+ * Test redirection support.
+ *
+ * @author Julien Henry
+ */
+public class RedirectionTest extends JWebUnitAPITestCase {
+
+ public static Test suite() {
+ Test suite = new TestSuite(RedirectionTest.class);
+ return new JettySetup(suite);
+ }
+
+ public void setUp() throws Exception {
+ super.setUp();
+ getTestContext().setBaseUrl(HOST_PATH + "/RedirectionTest");
+ }
+
+ public void testRedirection() {
+ beginAt("/redirect.html");
+ assertTitleEquals("Redirected");
+ closeBrowser();
+ beginAt(HOST_PATH + "/redirect.jsp");
+ assertTitleEquals("Redirected");
+ }
+
+}
Added:
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java
===================================================================
---
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java
(rev 0)
+++
branches/1.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java
2006-12-05 13:55:33 UTC (rev 636)
@@ -0,0 +1,23 @@
+/******************************************************************************
+ * jWebUnit project (http://jwebunit.sourceforge.net) *
+ * Distributed open-source, see full license under LICENCE.txt *
+
******************************************************************************/
+package net.sourceforge.jwebunit.tests.util;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class RedirectServlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException
{
+ response.sendRedirect("/jwebunit/RedirectionTest/redirect.html");
+ }
+
+}
Added:
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/redirect.html
===================================================================
---
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/redirect.html
(rev 0)
+++
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/redirect.html
2006-12-05 13:55:33 UTC (rev 636)
@@ -0,0 +1,9 @@
+<html>
+ <head>
+ <title>Redirected</title>
+ </head>
+ <body>
+ <h1>The redirection works</h1>
+ <p>This page shows that the redirection works like expected.</p>
+ </body>
+</html>
\ No newline at end of file
Modified:
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/WEB-INF/web.xml
===================================================================
---
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/WEB-INF/web.xml
2006-12-01 12:26:12 UTC (rev 635)
+++
branches/1.x/jwebunit-commons-tests/src/main/resources/testcases/WEB-INF/web.xml
2006-12-05 13:55:33 UTC (rev 636)
@@ -12,6 +12,10 @@
<servlet-name>CookiesServlet</servlet-name>
<servlet-class>net.sourceforge.jwebunit.tests.util.CookiesServlet</servlet-class>
</servlet>
+<servlet>
+ <servlet-name>RedirectServlet</servlet-name>
+
<servlet-class>net.sourceforge.jwebunit.tests.util.RedirectServlet</servlet-class>
+</servlet>
<servlet-mapping>
<servlet-name>ParamsServlet</servlet-name>
<url-pattern>/params.jsp</url-pattern>
@@ -20,6 +24,10 @@
<servlet-name>CookiesServlet</servlet-name>
<url-pattern>/cookies.jsp</url-pattern>
</servlet-mapping>
+<servlet-mapping>
+ <servlet-name>RedirectServlet</servlet-name>
+ <url-pattern>/redirect.jsp</url-pattern>
+</servlet-mapping>
<security-constraint>
<web-resource-collection>
Modified:
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/TestingEngineResponseException.java
===================================================================
---
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/TestingEngineResponseException.java
2006-12-01 12:26:12 UTC (rev 635)
+++
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/TestingEngineResponseException.java
2006-12-05 13:55:33 UTC (rev 636)
@@ -16,7 +16,7 @@
public class TestingEngineResponseException extends Exception {
private int httpStatusCode;
-
+
/**
*
*/
@@ -26,9 +26,19 @@
public TestingEngineResponseException(int httpStatusCode) {
super();
- this.httpStatusCode=httpStatusCode;
+ this.httpStatusCode = httpStatusCode;
}
+ public TestingEngineResponseException(int httpStatusCode, String msg) {
+ super(msg);
+ this.httpStatusCode = httpStatusCode;
+ }
+
+ public TestingEngineResponseException(int httpStatusCode, Exception e) {
+ super(e);
+ this.httpStatusCode = httpStatusCode;
+ }
+
/**
* @param arg0
*/
Modified:
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
===================================================================
---
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
2006-12-01 12:26:12 UTC (rev 635)
+++
branches/1.x/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
2006-12-05 13:55:33 UTC (rev 636)
@@ -181,7 +181,7 @@
try {
getTestingEngine().beginAt(createUrl(aRelativeURL), testContext);
} catch (TestingEngineResponseException e) {
- Assert.fail("The server returns the code " +
e.getHttpStatusCode());
+ Assert.fail("The server returns the code " + e.getHttpStatusCode()
+ "\n" + e.getCause().getMessage());
}
}
Modified:
branches/1.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
===================================================================
---
branches/1.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
2006-12-01 12:26:12 UTC (rev 635)
+++
branches/1.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
2006-12-05 13:55:33 UTC (rev 636)
@@ -4,59 +4,17 @@
******************************************************************************/
package net.sourceforge.jwebunit.htmlunit;
-import org.apache.commons.httpclient.Cookie;
-import org.apache.commons.httpclient.HttpState;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.ConnectException;
-import java.net.InetAddress;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
-import org.jaxen.JaxenException;
-
-import net.sourceforge.jwebunit.api.IJWebUnitDialog;
-import net.sourceforge.jwebunit.exception.ExpectedJavascriptAlertException;
-import net.sourceforge.jwebunit.exception.ExpectedJavascriptConfirmException;
-import net.sourceforge.jwebunit.exception.ExpectedJavascriptPromptException;
-import net.sourceforge.jwebunit.exception.TestingEngineResponseException;
-import net.sourceforge.jwebunit.exception.UnableToSetFormException;
-import net.sourceforge.jwebunit.exception.UnexpectedJavascriptAlertException;
-import net.sourceforge.jwebunit.exception.UnexpectedJavascriptConfirmException;
-import net.sourceforge.jwebunit.exception.UnexpectedJavascriptPromptException;
-import net.sourceforge.jwebunit.html.Cell;
-import net.sourceforge.jwebunit.html.Row;
-import net.sourceforge.jwebunit.html.Table;
-import net.sourceforge.jwebunit.javascript.JavascriptAlert;
-import net.sourceforge.jwebunit.javascript.JavascriptConfirm;
-import net.sourceforge.jwebunit.javascript.JavascriptPrompt;
-import net.sourceforge.jwebunit.util.TestContext;
-
import com.gargoylesoftware.htmlunit.AlertHandler;
import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.ConfirmHandler;
import com.gargoylesoftware.htmlunit.DefaultCredentialsProvider;
+import com.gargoylesoftware.htmlunit.ElementNotFoundException;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.JavaScriptPage;
import com.gargoylesoftware.htmlunit.Page;
import com.gargoylesoftware.htmlunit.PromptHandler;
import com.gargoylesoftware.htmlunit.TextPage;
+import com.gargoylesoftware.htmlunit.ThreadedRefreshHandler;
import com.gargoylesoftware.htmlunit.UnexpectedPage;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.WebResponse;
@@ -64,35 +22,75 @@
import com.gargoylesoftware.htmlunit.WebWindowEvent;
import com.gargoylesoftware.htmlunit.WebWindowListener;
import com.gargoylesoftware.htmlunit.WebWindowNotFoundException;
+import com.gargoylesoftware.htmlunit.html.ClickableElement;
import com.gargoylesoftware.htmlunit.html.FrameWindow;
+import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
+import com.gargoylesoftware.htmlunit.html.HtmlButton;
+import com.gargoylesoftware.htmlunit.html.HtmlButtonInput;
+import com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlFileInput;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlHiddenInput;
import com.gargoylesoftware.htmlunit.html.HtmlImageInput;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
+import com.gargoylesoftware.htmlunit.html.HtmlOption;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
-import com.gargoylesoftware.htmlunit.html.HtmlButtonInput;
-import com.gargoylesoftware.htmlunit.html.HtmlButton;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
+import com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput;
+import com.gargoylesoftware.htmlunit.html.HtmlResetInput;
+import com.gargoylesoftware.htmlunit.html.HtmlSelect;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
-import com.gargoylesoftware.htmlunit.html.HtmlResetInput;
import com.gargoylesoftware.htmlunit.html.HtmlTable;
import com.gargoylesoftware.htmlunit.html.HtmlTableCell;
-import com.gargoylesoftware.htmlunit.html.HtmlAnchor;
-import com.gargoylesoftware.htmlunit.html.HtmlSelect;
-import com.gargoylesoftware.htmlunit.html.HtmlOption;
-import com.gargoylesoftware.htmlunit.html.HtmlElement;
-import com.gargoylesoftware.htmlunit.html.HtmlCheckBoxInput;
import com.gargoylesoftware.htmlunit.html.HtmlTableRow;
-import com.gargoylesoftware.htmlunit.html.ClickableElement;
-import com.gargoylesoftware.htmlunit.html.HtmlRadioButtonInput;
+import com.gargoylesoftware.htmlunit.html.HtmlTableRow.CellIterator;
import com.gargoylesoftware.htmlunit.html.HtmlTextArea;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;
-import com.gargoylesoftware.htmlunit.ElementNotFoundException;
-import com.gargoylesoftware.htmlunit.html.HtmlTableRow.CellIterator;
import com.gargoylesoftware.htmlunit.html.xpath.HtmlUnitXPath;
import com.gargoylesoftware.htmlunit.xml.XmlPage;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.URL;
+import java.net.UnknownHostException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import net.sourceforge.jwebunit.api.IJWebUnitDialog;
+import net.sourceforge.jwebunit.exception.ExpectedJavascriptAlertException;
+import net.sourceforge.jwebunit.exception.ExpectedJavascriptConfirmException;
+import net.sourceforge.jwebunit.exception.ExpectedJavascriptPromptException;
+import net.sourceforge.jwebunit.exception.TestingEngineResponseException;
+import net.sourceforge.jwebunit.exception.UnableToSetFormException;
+import net.sourceforge.jwebunit.exception.UnexpectedJavascriptAlertException;
+import net.sourceforge.jwebunit.exception.UnexpectedJavascriptConfirmException;
+import net.sourceforge.jwebunit.exception.UnexpectedJavascriptPromptException;
+import net.sourceforge.jwebunit.html.Cell;
+import net.sourceforge.jwebunit.html.Row;
+import net.sourceforge.jwebunit.html.Table;
+import net.sourceforge.jwebunit.javascript.JavascriptAlert;
+import net.sourceforge.jwebunit.javascript.JavascriptConfirm;
+import net.sourceforge.jwebunit.javascript.JavascriptPrompt;
+import net.sourceforge.jwebunit.util.TestContext;
+
+import org.apache.commons.httpclient.Cookie;
+import org.apache.commons.httpclient.HttpState;
+import org.apache.commons.httpclient.NameValuePair;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.apache.regexp.RE;
+import org.apache.regexp.RESyntaxException;
+import org.jaxen.JaxenException;
+
/**
* Acts as the wrapper for HtmlUnit access. A dialog is initialized with a
given URL, and maintains conversational state
* as the dialog progresses through link navigation, form submission, etc.
@@ -132,17 +130,17 @@
private boolean jsEnabled = true;
/**
- * Javascript alerts
+ * Javascript alerts.
*/
private LinkedList expectedJavascriptAlerts = new LinkedList();
/**
- * Javascript alerts
+ * Javascript confirms.
*/
private LinkedList expectedJavascriptConfirms = new LinkedList();
/**
- * Javascript alerts
+ * Javascript prompts.
*/
private LinkedList expectedJavascriptPrompts = new LinkedList();
@@ -164,7 +162,7 @@
win = wc.getCurrentWindow();
form = null;
} catch (FailingHttpStatusCodeException aException) {
- throw new
TestingEngineResponseException(aException.getStatusCode());
+ throw new
TestingEngineResponseException(aException.getStatusCode(), aException);
} catch (IOException aException) {
throw new RuntimeException(aException);
@@ -597,6 +595,8 @@
"4.0", testContext.getUserAgent(), "1.2", 6));
wc.setJavaScriptEnabled(jsEnabled);
wc.setThrowExceptionOnScriptError(true);
+ wc.setRedirectEnabled(true);
+ //wc.setRefreshHandler(new ThreadedRefreshHandler());
DefaultCredentialsProvider creds = new DefaultCredentialsProvider();
if (getTestContext().hasAuthorization()) {
creds.addCredentials(getTestContext().getUser(), getTestContext()
Modified:
branches/1.x/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
===================================================================
---
branches/1.x/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
2006-12-01 12:26:12 UTC (rev 635)
+++
branches/1.x/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
2006-12-05 13:55:33 UTC (rev 636)
@@ -18,19 +18,18 @@
*/
public class JWebUnitTest extends TestCase {
- /**
- * Runs all the tests for jWebUnit. Add each new TestCase by using the
- * <code>addTestSuite(Class)</code> method, so that the TestCase's
- * <code>suite</code> method <strong>isn't called </strong>. This
prevents
- * <code>JettySetup</code> from starting the Jetty server twice and
- * consequently the error 'port 80xx is already in use'.
- *
- * @return the <code>TestSuite</code> containing all the tests for
- * jWebUnit ready to run utilizing Jetty as testserver.
- */
+ /**
+ * Runs all the tests for jWebUnit. Add each new TestCase by using the
<code>addTestSuite(Class)</code> method, so
+ * that the TestCase's <code>suite</code> method <strong>isn't called
</strong>. This prevents
+ * <code>JettySetup</code> from starting the Jetty server twice and
consequently the error 'port 80xx is already
+ * in use'.
+ *
+ * @return the <code>TestSuite</code> containing all the tests for
jWebUnit ready to run utilizing Jetty as
+ * testserver.
+ */
public static Test suite() {
TestSuite suite = new TestSuite("Test for net.sourceforge.jwebunit");
- //$JUnit-BEGIN$
+ // $JUnit-BEGIN$
suite.addTestSuite(FormSubmissionTest.class);
suite.addTestSuite(WebAssertionsTest.class);
suite.addTestSuite(FramesAndWindowsTest.class);
@@ -49,7 +48,8 @@
suite.addTestSuite(CharsetTest.class);
suite.addTestSuite(ButtonAssertionsTest.class);
suite.addTestSuite(NonHtmlContentTest.class);
- //$JUnit-END$
+ suite.addTestSuite(RedirectionTest.class);
+ // $JUnit-END$
return new JettySetup(suite);
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Jwebunit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development