Revision: 698
          http://svn.sourceforge.net/jwebunit/?rev=698&view=rev
Author:   henryju
Date:     2007-05-05 10:53:20 -0700 (Sat, 05 May 2007)

Log Message:
-----------
[Issue 1708229,1710809,1712633] Fix getFormWithInput to deal with the current 
working form if already set.

Modified Paths:
--------------
    
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java
    
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
    
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html
    
branches/jwebunit-1.4.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
    branches/jwebunit-1.4.x/src/changes/changes.xml

Modified: 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java
===================================================================
--- 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java
 2007-05-05 17:51:21 UTC (rev 697)
+++ 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java
 2007-05-05 17:53:20 UTC (rev 698)
@@ -57,17 +57,19 @@
 
     public void testAssertFormElementEquals() throws Throwable {
         beginAt("/testPage.html");
-        assertPass("assertTextFieldEquals", new Object[]{"testInputElement", 
"testValue"});
+        assertPassFail("assertTextFieldEquals", new 
Object[]{"testInputElement", "testValue"}, new Object[]{"testInputElement", 
"noSuchValue"});
         assertPass("assertSubmitButtonPresent", new Object[]{"submitButton", 
"buttonLabel"});
+        setWorkingForm("form5");
         assertPass("assertTextFieldEquals", new Object[]{"textarea", 
"sometexthere"});
+        setWorkingForm("form3");
         assertPass("assertRadioOptionSelected", new Object[]{"cool", "dog"});
-        assertPass("assertHiddenFieldPresent", new Object[]{"hiddenelement", 
"hiddenvalue"});
-        assertFail("assertTextFieldEquals", new Object[]{"testInputElement", 
"noSuchValue"});
+        setWorkingForm("form5");
+        assertPassFail("assertHiddenFieldPresent", new 
Object[]{"hiddenelement", "hiddenvalue"}, new Object[]{"hiddenelement", 
"notThisValue"});
+        setWorkingForm("form1");
         assertFail("assertTextFieldEquals", new Object[]{"noSuchElement", 
"testValue"});
         assertFail("assertHiddenFieldPresent", new Object[]{"noSuchElement", 
"testValue"});
-        assertFail("assertHiddenFieldPresent", new Object[]{"hiddenelement", 
"notThisValue"});
-        assertFail("assertTextFieldEquals", new Object[]{"passwordelement", 
"noSuchValue"});
-        assertPass("assertTextFieldEquals", new Object[]{"passwordelement", 
"password"});
+        setWorkingForm("form5");        
+        assertPassFail("assertTextFieldEquals", new 
Object[]{"passwordelement", "password"}, new Object[]{"passwordelement", 
"noSuchValue"});
     }
 
     public void testCheckboxSelected() throws Throwable {

Modified: 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
===================================================================
--- 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
 2007-05-05 17:51:21 UTC (rev 697)
+++ 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
 2007-05-05 17:53:20 UTC (rev 698)
@@ -197,6 +197,24 @@
         assertTextPresent("param2=anyvalue");
     }
 
+    public void testTextFieldSetOnMultiFormWithSameName() {
+        beginAt("/MultiFormPage.html");
+        setWorkingForm("form2");
+        setTextField("param2", "foo");
+        setTextField("email", "anyvalue");
+        submit();
+        assertTextPresent("email=anyvalue");
+        assertTextPresent("param2=foo");
+        closeBrowser();
+        beginAt("/MultiFormPage.html");
+        setWorkingForm("form3");
+        setTextField("param3", "foo");
+        setTextField("email", "anyvalue");
+        submit();
+        assertTextPresent("param3=foo");
+        assertTextPresent("email=anyvalue");
+    }
+
     public void testSetWorkingFormById() {
         beginAt("/MultiFormPage.html");
         setWorkingForm("form5");

Modified: 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html
===================================================================
--- 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html
   2007-05-05 17:51:21 UTC (rev 697)
+++ 
branches/jwebunit-1.4.x/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html
   2007-05-05 17:53:20 UTC (rev 698)
@@ -10,6 +10,7 @@
 
                <form name="form2" method=GET action="../params.jsp">
                        <input type="text" name="param2">
+                       <input type="text" name="email">
             <input type="reset">
                        <input type="submit" name="button2a" value="b2a">
                        <input type="submit" name="button2b" value="b2b">
@@ -18,6 +19,7 @@
 
                <form name="form3" method=GET action="../params.jsp">
                        <input type="text" name="param3">
+                       <input type="text" name="email">
                        <input type="submit">
                        <input type="hidden" name="myReferer" 
value="FormSubmissionTest/MultiFormPage.html">
                </form>

Modified: 
branches/jwebunit-1.4.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
===================================================================
--- 
branches/jwebunit-1.4.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
        2007-05-05 17:51:21 UTC (rev 697)
+++ 
branches/jwebunit-1.4.x/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
        2007-05-05 17:53:20 UTC (rev 698)
@@ -897,21 +897,32 @@
     }
 
     private HtmlForm getFormWithInput(String inputName) {
-        if (hasForm()) {
-            for (int i = 0; i < getForms().size(); i++) {
-                HtmlForm form = (HtmlForm) getForms().get(i);
-                List inputElements = form.getHtmlElementsByAttribute("input",
-                        "name", inputName);
-                if (inputElements.isEmpty()) {
-                    inputElements = form.getTextAreasByName(inputName);
-                }
-                if (!inputElements.isEmpty()) {
-                    setWorkingForm(form);
-                    return form;
-                }
-            }
-        }
-        return null;
+       // Search in Working form if available
+       if (form != null) {
+               if (!form.getHtmlElementsByAttribute("input",
+                               "name", inputName).isEmpty()) {
+                       return form;
+               }
+               if (!form.getTextAreasByName(inputName).isEmpty()) {
+                       return form;
+               }
+       } else {
+               if (hasForm()) {
+                       for (int i = 0; i < getForms().size(); i++) {
+                               HtmlForm form = (HtmlForm) getForms().get(i);
+                               List inputElements = 
form.getHtmlElementsByAttribute("input",
+                                               "name", inputName);
+                               if (inputElements.isEmpty()) {
+                                       inputElements = 
form.getTextAreasByName(inputName);
+                               }
+                               if (!inputElements.isEmpty()) {
+                                       setWorkingForm(form);
+                                       return form;
+                               }
+                       }
+               }
+       }
+       return null;
     }
 
     private HtmlForm getFormWithSelect(String selectName) {

Modified: branches/jwebunit-1.4.x/src/changes/changes.xml
===================================================================
--- branches/jwebunit-1.4.x/src/changes/changes.xml     2007-05-05 17:51:21 UTC 
(rev 697)
+++ branches/jwebunit-1.4.x/src/changes/changes.xml     2007-05-05 17:53:20 UTC 
(rev 698)
@@ -7,6 +7,13 @@
         </author>
     </properties>
     <body>
+       <release version="1.4.1" date="UNKNOW">
+               <action type="fix" dev="Julien Henry" 
issue="1708229,1710809,1712633" due-to="Jon,Joe Fisher">
+                setTextField now doesn't change the current working form if 
already set.
+                clickRadioOption now doesn't change the current working form 
if already set.
+                assertFormElementPresent now only searches the current working 
form if already set.
+            </action>
+       </release>
        <release version="1.4" date="march 17, 2007">
                <action type="update" dev="Julien Henry">
                 Update to HtmlUnit 1.11.


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 DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
JWebUnit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development

Reply via email to