Revision: 914
          http://jwebunit.svn.sourceforge.net/jwebunit/?rev=914&view=rev
Author:   henryju
Date:     2011-08-22 09:27:38 +0000 (Mon, 22 Aug 2011)

Log Message:
-----------
[3395872] HtmlUnitTestingEngineImpl.gotoPage no longer returns the failing 
status. Fix and add tests. Thanks to Tim Pizey for reporting.

Modified Paths:
--------------
    
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java
    
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java
    
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java
    trunk/src/changes/changes.xml

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
  2011-08-18 13:18:44 UTC (rev 913)
+++ 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java
  2011-08-22 09:27:38 UTC (rev 914)
@@ -91,17 +91,19 @@
         assertException(AssertionError.class, methodName, args);
     }
 
-    public void assertException(Class<?> exceptionClass, String methodName,
+    public <G extends Throwable> G assertException(Class<G> exceptionClass, 
String methodName,
             Object[] args) {
         StaticMethodInvoker invoker = new StaticMethodInvoker(JWebUnit.class, 
methodName, args);
         try {
             invoker.invoke();
             fail("Expected test failure did not occur for method: "
                     + methodName);
+            return null; //never called
         } catch (InvocationTargetException e) {
             assertTrue("Expected " + exceptionClass.getName() + "but was "
                     + e.getTargetException().getClass().getName(),
                     exceptionClass.isInstance(e.getTargetException()));
+            return (G) e.getTargetException();
         } catch (Exception e) {
             e.printStackTrace();
             throw new RuntimeException(e.getMessage());

Modified: 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java
===================================================================
--- 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java
       2011-08-18 13:18:44 UTC (rev 913)
+++ 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java
       2011-08-22 09:27:38 UTC (rev 914)
@@ -76,12 +76,11 @@
 
        @Test
        public void testInvalidBeginAt() {
-
                //the testing engines should throw an exception if a 404 Error 
is found.
-        assertException(TestingEngineResponseException.class, "beginAt", new 
Object[] {"/nosuchresource.html"});
-
+               TestingEngineResponseException e = 
assertException(TestingEngineResponseException.class, "beginAt", new Object[] 
{"/nosuchresource.html"});
+               assertEquals(404, e.getHttpStatusCode());
        }
-
+       
        @Test
        public void testClickLinkWithText() {
                beginAt("/pageWithLink.html");
@@ -170,7 +169,7 @@
                gotoPage("/targetPage2.html");
                assertTitleEquals("targetPage2");
        }
-
+       
        @Test
        public void testGotoPageAbsolute() {
                beginAt("/targetPage.html");
@@ -179,6 +178,14 @@
                assertTitleEquals("targetPage2");
        }
 
+       @Test
+       public void testInvalidGotoPage() {
+               beginAt("/targetPage.html");
+               //the testing engines should throw an exception if a 404 Error 
is found.
+               TestingEngineResponseException e = 
assertException(TestingEngineResponseException.class, "gotoPage", new Object[] 
{"/nosuchresource.html"});
+               assertEquals(404, e.getHttpStatusCode());
+       }
+
        //For bug 726143
        @Test
        public void testLinkWithEscapedText() {

Modified: 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java
===================================================================
--- 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java
       2011-08-18 13:18:44 UTC (rev 913)
+++ 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java
       2011-08-22 09:27:38 UTC (rev 914)
@@ -259,7 +259,7 @@
         } catch (FailingHttpStatusCodeException ex) {
                // only throw exception if necessary
                if (!ignoreFailingStatusCodes) {
-                   throw new TestingEngineResponseException(
+                   throw new TestingEngineResponseException(ex.getStatusCode(),
                            "unexpected status code ["+ex.getStatusCode()+"] at 
URL: ["+initialURL+"]", ex);
                }
         } catch (IOException ex) {

Modified: trunk/src/changes/changes.xml
===================================================================
--- trunk/src/changes/changes.xml       2011-08-18 13:18:44 UTC (rev 913)
+++ trunk/src/changes/changes.xml       2011-08-22 09:27:38 UTC (rev 914)
@@ -30,6 +30,12 @@
         </author>
     </properties>
     <body>
+        <release version="3.0.1" date="UNKNOW" description="Minor fixes">
+            <action type="fix" dev="henryju" issue="3395872" due-to="Tim 
Pizey">
+                HtmlUnitTestingEngineImpl.gotoPage no longer returns the 
failing status. Broken since 2.5 after applying
+                patch from issue 1864365.
+            </action>
+        </release>
         <release version="3.0" date="August 18, 2011" description="Updated all 
internals to JUnit 4. HtmlUnit 2.9.">
             <action type="update" dev="henryju">
                 Updated to HtmlUnit 2.9.


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
JWebUnit-development mailing list
JWebUnit-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jwebunit-development

Reply via email to