Revision: 755
http://jwebunit.svn.sourceforge.net/jwebunit/?rev=755&view=rev
Author: jevonwright
Date: 2008-10-29 00:24:52 +0000 (Wed, 29 Oct 2008)
Log Message:
-----------
issue 1728676: add a WebTestCase(WebTester) constructor
Modified Paths:
--------------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
trunk/jwebunit-webtestcase-generator/src/main/javacc/Java1.5.jj
trunk/src/changes/changes.xml
Added Paths:
-----------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java
trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/
trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html
Added:
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java
===================================================================
---
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java
(rev 0)
+++
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java
2008-10-29 00:24:52 UTC (rev 755)
@@ -0,0 +1,58 @@
+/******************************************************************************
+ * JWebUnit project (http://jwebunit.sourceforge.net) *
+ * Distributed open-source, see full license under LICENCE.txt *
+
******************************************************************************/
+package net.sourceforge.jwebunit.tests;
+
+import net.sourceforge.jwebunit.junit.WebTester;
+import net.sourceforge.jwebunit.tests.util.JettySetup;
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * Test the new constructor methods for custom web testers
+ *
+ * @author jmwright
+ *
+ */
+public class CustomTesterTest extends JWebUnitAPITestCase {
+
+ /**
+ * A custom tester to allow us to make sure it is called.
+ *
+ * @author jmwright
+ *
+ */
+ static class MyWebTester extends WebTester {
+
+ /**
+ * We extend the normal method to not fail for our special case.
+ *
+ * @see
net.sourceforge.jwebunit.junit.WebTester#assertTitleEquals(java.lang.String)
+ */
+ @Override
+ public void assertTitleEquals(String title) {
+ super.assertTitleEquals(title + " [custom]");
+ }
+
+ }
+
+ public CustomTesterTest() {
+ super("CustomTesterTest", new MyWebTester());
+ }
+
+ public static Test suite() {
+ Test suite = new TestSuite(CustomTesterTest.class);
+ return new JettySetup(suite);
+ }
+
+ public void setUp() throws Exception {
+ super.setUp();
+ getTestContext().setBaseUrl(HOST_PATH + "/CustomTesterTest");
+ }
+
+ public void testCustomTester() throws Throwable {
+ beginAt("/test.html");
+ assertTitleEquals("test"); // this will normally fail for
a non-custom class
+ }
+}
Modified:
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java
===================================================================
---
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java
2008-10-29 00:01:40 UTC (rev 754)
+++
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java
2008-10-29 00:24:52 UTC (rev 755)
@@ -8,6 +8,7 @@
import junit.framework.AssertionFailedError;
import net.sourceforge.jwebunit.junit.WebTestCase;
+import net.sourceforge.jwebunit.junit.WebTester;
import net.sourceforge.jwebunit.tests.util.reflect.MethodInvoker;
/**
@@ -27,6 +28,10 @@
public static final String HOST_PATH = "http://localhost:" + JETTY_PORT
+ JETTY_URL;
+ public JWebUnitAPITestCase(String name, WebTester custom) {
+ super(name, custom);
+ }
+
/**
* @param name
*/
Added:
trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html
===================================================================
---
trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html
(rev 0)
+++
trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html
2008-10-29 00:24:52 UTC (rev 755)
@@ -0,0 +1,8 @@
+<html>
+ <head>
+ <title>test [custom]</title>
+ </head>
+ <body>
+ This is a test page.
+ </body>
+</html>
\ No newline at end of file
Modified:
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
===================================================================
---
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
2008-10-29 00:01:40 UTC (rev 754)
+++
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
2008-10-29 00:24:52 UTC (rev 755)
@@ -54,6 +54,7 @@
suite.addTestSuite(SelectOptionsTest.class);
suite.addTestSuite(IElementTest.class);
suite.addTestSuite(ResponseServletTest.class);
+ suite.addTestSuite(CustomTesterTest.class);
suite.addTest(JUnitPerfTest.suite());
// $JUnit-END$
return new JettySetup(suite);
Modified:
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
===================================================================
---
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
2008-10-29 00:01:40 UTC (rev 754)
+++
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
2008-10-29 00:24:52 UTC (rev 755)
@@ -52,6 +52,7 @@
suite.addTestSuite(ResourceBundleAssertionsTest.class);
suite.addTestSuite(IElementTest.class);
suite.addTestSuite(ResponseServletTest.class);
+ suite.addTestSuite(CustomTesterTest.class);
//suite.addTest(JUnitPerfTest.suite());
// $JUnit-END$
return new JettySetup(suite);
Modified: trunk/jwebunit-webtestcase-generator/src/main/javacc/Java1.5.jj
===================================================================
--- trunk/jwebunit-webtestcase-generator/src/main/javacc/Java1.5.jj
2008-10-29 00:01:40 UTC (rev 754)
+++ trunk/jwebunit-webtestcase-generator/src/main/javacc/Java1.5.jj
2008-10-29 00:24:52 UTC (rev 755)
@@ -676,6 +676,18 @@
{}
{ {sb.append("{\n");
sb.append(" protected WebTester tester = null;\n\n");
+ sb.append(" protected WebTester customTester = null;\n\n");
+ sb.append(" /***\n");
+ sb.append(" * From 2.1 you can provide your own WebTester to run test
cases.\n");
+ sb.append(" */\n");
+ sb.append(" public WebTestCase(WebTester customTester) {\n");
+ sb.append(" super();\n");
+ sb.append(" this.customTester = customTester;\n");
+ sb.append(" }\n\n");
+ sb.append(" public WebTestCase(String name, WebTester customTester) {\n");
+ sb.append(" super(name);\n");
+ sb.append(" this.customTester = customTester;\n");
+ sb.append(" }\n\n");
sb.append(" public WebTestCase(String name) {\n");
sb.append(" super(name);\n");
sb.append(" }\n\n");
@@ -704,10 +716,13 @@
sb.append(" */\n");
sb.append(" public void runBare() throws Throwable {\n");
sb.append(" try {\n");
- sb.append(" tester=new WebTester();\n");
+ sb.append(" if (customTester == null)\n");
+ sb.append(" tester = new WebTester();\n");
+ sb.append(" else\n");
+ sb.append(" tester = customTester;\n");
sb.append(" super.runBare();\n");
sb.append(" } finally {\n");
- sb.append(" tester=null;\n");
+ sb.append(" tester = null;\n");
sb.append(" }\n");
sb.append(" }\n\n");}
"{" ( ClassOrInterfaceBodyDeclaration(isInterface, sb) )* "}"
Modified: trunk/src/changes/changes.xml
===================================================================
--- trunk/src/changes/changes.xml 2008-10-29 00:01:40 UTC (rev 754)
+++ trunk/src/changes/changes.xml 2008-10-29 00:24:52 UTC (rev 755)
@@ -14,6 +14,9 @@
<action type="add" dev="jevonwright" issue="1744628">
Added assertHeader*() and assertResponseCode*() methods
</action>
+ <action type="add" dev="jevonwright" issue="1728676">
+ Added WebTestCase(WebTester) constructor
+ </action>
<action type="update" dev="jevonwright">
BC CHANGE: setFormElement(), assertFormElementEquals()
methods will no longer assert that a form already exists in the page (as
allowed by the HTML standard).
</action>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
JWebUnit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development