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

Reply via email to