Revision: 723
          http://jwebunit.svn.sourceforge.net/jwebunit/?rev=723&view=rev
Author:   henryju
Date:     2008-04-14 06:53:41 -0700 (Mon, 14 Apr 2008)

Log Message:
-----------
[1793818] Added setHiddenFieldValue method to WebTestCase

Modified Paths:
--------------
    
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
    
trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html
    
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/ITestingEngine.java
    
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
    
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java
    
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumTestingEngineImpl.java
    trunk/src/changes/changes.xml

Modified: 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
===================================================================
--- 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
   2008-04-14 12:32:53 UTC (rev 722)
+++ 
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java
   2008-04-14 13:53:41 UTC (rev 723)
@@ -310,6 +310,14 @@
         assertTextPresent("Submitted parameters");
         assertTextPresent("color=blue");
     }
+    
+    public void testSetHiddenField() {
+        beginAt("/SingleNamedButtonForm.html");
+        assertHiddenFieldPresent("hidden", "foo");
+        setHiddenField("hidden", "bar");
+        submit();
+        assertTextPresent("hidden=bar");
+    }
 
 
 }

Modified: 
trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html
===================================================================
--- 
trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html
     2008-04-14 12:32:53 UTC (rev 722)
+++ 
trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html
     2008-04-14 13:53:41 UTC (rev 723)
@@ -7,6 +7,7 @@
                <input type="CHECKBOX" name="checkBox" />
                <input type="submit" name="button" value="click me">
                <input type="hidden" name="myReferer" 
value="FormSubmissionTest/SingleNamedButtonForm.html">
+        <input type="hidden" name="hidden" value="foo">
        </form>
 </body>
 </html>
\ No newline at end of file

Modified: 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/ITestingEngine.java
===================================================================
--- 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/ITestingEngine.java
  2008-04-14 12:32:53 UTC (rev 722)
+++ 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/ITestingEngine.java
  2008-04-14 13:53:41 UTC (rev 723)
@@ -205,6 +205,14 @@
      * @param text value to type in the field.
      */
     void setTextField(String inputName, String text);
+    
+    /**
+     * Fill hidden field with the provided text.
+     * 
+     * @param inputName name of the hidden element
+     * @param text value to set in the hidden field.
+     */
+    void setHiddenField(String inputName, String text);
 
     /**
      * Return a string array of select box option values.

Modified: 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
===================================================================
--- 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 
    2008-04-14 12:32:53 UTC (rev 722)
+++ 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 
    2008-04-14 13:53:41 UTC (rev 723)
@@ -2115,6 +2115,18 @@
         assertFormElementPresent(inputName);
         getTestingEngine().setTextField(inputName, value);
     }
+    
+    /**
+     * Set the value of an hidden input field.
+     * 
+     * @param inputName name of form element.
+     * @param value value to set.
+     */
+    public void setHiddenField(String inputName, String value) {
+        assertFormPresent();
+        assertFormElementPresent(inputName);
+        getTestingEngine().setHiddenField(inputName, value);
+    }
 
     /**
      * Select a specified checkbox. If the checkbox is already checked then 
the checkbox will stay checked.

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
       2008-04-14 12:32:53 UTC (rev 722)
+++ 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java
       2008-04-14 13:53:41 UTC (rev 723)
@@ -496,6 +496,37 @@
         throw new RuntimeException("No text field with name [" + fieldName
                 + "] was found.");
     }
+    
+    /**
+     * Set a form hidden element to the provided value.
+     * 
+     * @param fieldName name of the hidden input element
+     * @param paramValue parameter value to submit for the element.
+     */
+    public void setHiddenField(String fieldName, String text) {
+        List hiddenFieldElements = new LinkedList();
+        if (form != null) {
+            hiddenFieldElements.addAll(getForm().getInputsByName(fieldName));
+        } else {
+            for (Iterator i = getCurrentPage().getForms().iterator(); i
+                    .hasNext();) {
+                HtmlForm f = (HtmlForm) i.next();
+                hiddenFieldElements.addAll(f.getInputsByName(fieldName));
+            }
+        }
+        for (Iterator i = hiddenFieldElements.iterator(); i.hasNext();) {
+            HtmlElement e = (HtmlElement) i.next();
+            if (e instanceof HtmlHiddenInput) {
+                ((HtmlHiddenInput) e).setValueAttribute(text);
+                if (form == null) {
+                    form = e.getEnclosingFormOrDie();
+                }
+                return;
+            }
+        }
+        throw new RuntimeException("No hidden field with name [" + fieldName
+                + "] was found.");
+    }
 
     /**
      * Return a string array of select box option values.

Modified: 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumTestingEngineImpl.java
===================================================================
--- 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumTestingEngineImpl.java
       2008-04-14 12:32:53 UTC (rev 722)
+++ 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumTestingEngineImpl.java
       2008-04-14 13:53:41 UTC (rev 723)
@@ -427,6 +427,11 @@
         String xpath2 = formSelector() + "//[EMAIL PROTECTED]'"+inputName+"']";
         selenium.type("xpath=" + xpath1 + "|" + xpath2, text);
     }
+    
+    public void setHiddenField(String inputName, String text) {
+        String xpath = formSelector() + "//[EMAIL PROTECTED]'"+inputName+"' 
and @type='hidden']";
+        selenium.type("xpath=" + xpath, text);
+    }
 
     public void setWorkingForm(String nameOrId, int index) {
         if (nameOrId != null)

Modified: trunk/src/changes/changes.xml
===================================================================
--- trunk/src/changes/changes.xml       2008-04-14 12:32:53 UTC (rev 722)
+++ trunk/src/changes/changes.xml       2008-04-14 13:53:41 UTC (rev 723)
@@ -8,6 +8,9 @@
     </properties>
     <body>
         <release version="1.5" date="UNKNOW" description="The latest major 
release before Java 1.5 migration">
+            <action type="add" dev="henryju" issue="1793818" due-to="Achim 
Huegen">
+                Added setHiddenField method to WebTestCase.
+            </action>
             <action type="fix" dev="henryju" issue="1747033" due-to="Carlo 
Possati">
                 assertCheckbox[Not]Present now works if HTML type attribute 
value is not lowercase (e.g.: type="CHECKBOX").
             </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 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
JWebUnit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development

Reply via email to