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 JWebUnit-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jwebunit-development