Revision: 473
Author:   henryju
Date:     2006-06-06 01:29:12 -0700 (Tue, 06 Jun 2006)
ViewCVS:  http://svn.sourceforge.net/jwebunit/?rev=473&view=rev

Log Message:
-----------
Apply patch for SeleniumDialog. (Thanks Jon Frisby).
Implement hasResetButton(*) and hasSubmitButton() in each plugin.

Modified Paths:
--------------
    
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
    
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
    
trunk/jwebunit-jacobie-plugin/src/main/java/net/sourceforge/jwebunit/jacobie/JacobieDialog.java
    
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumDialog.java
Modified: 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
===================================================================
--- 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
  2006-06-05 15:19:57 UTC (rev 472)
+++ 
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
  2006-06-06 08:29:12 UTC (rev 473)
@@ -711,9 +711,26 @@
             return (HtmlSubmitInput) getForm().getInputByName(buttonName);
         } catch (ElementNotFoundException e) {
             return null;
+        } catch (ClassCastException e) {
+            return null;
         }
     }
 
+    public HtmlResetInput getResetButton(String buttonName) {
+        try {
+            checkFormStateWithButton(buttonName);
+        } catch (UnableToSetFormException e) {
+            return null;
+        }
+        try {
+            return (HtmlResetInput) getForm().getInputByName(buttonName);
+        } catch (ElementNotFoundException e) {
+            return null;
+        } catch (ClassCastException e) {
+            return null;
+        }
+    }
+
     public String getSubmitButtonValue(String buttonName) {
         return getSubmitButton(buttonName).getValueAttribute().trim();
     }
@@ -740,6 +757,17 @@
         return null;
     }
 
+    public boolean hasSubmitButton() {
+        List l = null;
+        try {
+            final HtmlUnitXPath xp = new HtmlUnitXPath("//[EMAIL 
PROTECTED]"submit\"]");
+            l = xp.selectNodes(getForm());
+        } catch (JaxenException e) {
+            throw new RuntimeException(e);
+        }
+        return (l.size() > 0);
+    }
+
     public boolean hasSubmitButton(String buttonName) {
         return getSubmitButton(buttonName) != null;
     }
@@ -753,6 +781,21 @@
 
     }
 
+    public boolean hasResetButton() {
+        List l = null;
+        try {
+            final HtmlUnitXPath xp = new HtmlUnitXPath("//[EMAIL 
PROTECTED]"reset\"]");
+            l = xp.selectNodes(getForm());
+        } catch (JaxenException e) {
+            throw new RuntimeException(e);
+        }
+        return (l.size() > 0);
+    }
+
+    public boolean hasResetButton(String buttonName) {
+        return getResetButton(buttonName) != null;
+    }
+
     /**
      * Return the HtmlUnit Button with a given id.
      * 

Modified: 
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
===================================================================
--- 
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
  2006-06-05 15:19:57 UTC (rev 472)
+++ 
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
  2006-06-06 08:29:12 UTC (rev 473)
@@ -597,6 +597,10 @@
         return getForm().getSubmitButton(buttonName, buttonValue);
     }
 
+    public boolean hasSubmitButton() {
+        return getForm().getSubmitButtons().length>0;
+    }
+    
     public boolean hasSubmitButton(String buttonName) {
         try {
             return getSubmitButton(buttonName) != null;
@@ -612,7 +616,16 @@
         } catch (UnableToSetFormException e) {
             return false;
         }
+    }
+    
+    public boolean hasResetButton() {
+        //TODO Implement hasResetButton in HttpUnitDialog
+        throw new UnsupportedOperationException("hasResetButton");
+    }
 
+    public boolean hasResetButton(String buttonName) {
+        //TODO Implement hasResetButton(String) in HttpUnitDialog
+        throw new UnsupportedOperationException("hasResetButton");
     }
 
     /**

Modified: 
trunk/jwebunit-jacobie-plugin/src/main/java/net/sourceforge/jwebunit/jacobie/JacobieDialog.java
===================================================================
--- 
trunk/jwebunit-jacobie-plugin/src/main/java/net/sourceforge/jwebunit/jacobie/JacobieDialog.java
     2006-06-05 15:19:57 UTC (rev 472)
+++ 
trunk/jwebunit-jacobie-plugin/src/main/java/net/sourceforge/jwebunit/jacobie/JacobieDialog.java
     2006-06-06 08:29:12 UTC (rev 473)
@@ -1414,4 +1414,19 @@
         return false;
     }
 
+    public boolean hasResetButton() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    public boolean hasResetButton(String nameOrID) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    public boolean hasSubmitButton() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
 }
\ No newline at end of file

Modified: 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumDialog.java
===================================================================
--- 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumDialog.java
  2006-06-05 15:19:57 UTC (rev 472)
+++ 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumDialog.java
  2006-06-06 08:29:12 UTC (rev 473)
@@ -42,9 +42,10 @@
     public void beginAt(String aInitialURL, TestContext aTestContext)
             throws TestingEngineResponseException {
         this.setTestContext(aTestContext);
-        selenium = new DefaultSelenium("localhost", port, "*firefox",
+        selenium = new DefaultSelenium("localhost", port, "*chrome",
                 aInitialURL);
         selenium.start();
+        gotoPage(aInitialURL);
     }
 
     public void checkCheckbox(String checkBoxName, String value) {
@@ -62,7 +63,7 @@
     }
 
     public void clickButtonWithText(String buttonValueText) {
-        selenium.click("xpath=//button[contains(.,'" + buttonValueText + 
"')]");
+        selenium.click("xpath=" + formSelector() + "//button[contains(.,'" + 
buttonValueText + "')]");
     }
 
     public void clickElementByXPath(String xpath) {
@@ -91,7 +92,7 @@
     }
 
     public void clickRadioOption(String radioGroup, String radioOptionValue) {
-        selenium.click("xpath=//[EMAIL PROTECTED]'" + radioGroup + "' and 
@value='"
+        selenium.click("xpath=" + formSelector() + "//[EMAIL PROTECTED]'" + 
radioGroup + "' and @value='"
                 + radioOptionValue + "']");
     }
 
@@ -131,7 +132,7 @@
     }
 
     public String getFormParameterValue(String paramName) {
-        return selenium.getValue("xpath=//form[" + formIdent + "]/[EMAIL 
PROTECTED]'"
+        return selenium.getValue("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'"
                 + paramName + "']");
     }
 
@@ -148,25 +149,25 @@
     }
 
     public String[] getSelectedOptions(String selectName) {
-        return selenium.getSelectedValues("xpath=//form[" + formIdent
-                + "]/[EMAIL PROTECTED]'" + selectName + "']");
+        return selenium.getSelectedValues("xpath=" + formSelector()
+                + "//[EMAIL PROTECTED]'" + selectName + "']");
     }
 
     public String getSelectOptionLabelForValue(String selectName,
             String optionValue) {
-        return selenium.getText("xpath=//form[" + formIdent
-                + "]/select/[EMAIL PROTECTED]'" + optionValue + "']");
+        return selenium.getText("xpath=" + formSelector()
+                + "//select/[EMAIL PROTECTED]'" + optionValue + "']");
     }
 
     public String getSelectOptionValueForLabel(String selectName,
             String optionLabel) {
-        return selenium.getValue("xpath=//form[" + formIdent
-                + "]/select/option[contains(.,'" + optionLabel + "']");
+        return selenium.getValue("xpath=" + formSelector()
+                + "//select/option[contains(.,'" + optionLabel + "']");
     }
 
     public String[] getSelectOptionValues(String selectName) {
-        String[] labels = selenium.getSelectOptions("xpath=//form[" + formIdent
-                + "]/[EMAIL PROTECTED]'" + selectName + "']");
+        String[] labels = selenium.getSelectOptions("xpath=" + formSelector()
+                + "//[EMAIL PROTECTED]'" + selectName + "']");
         String[] values = new String[labels.length];
         for (int i = 0; i < values.length; i++) {
             values[i] = getSelectOptionValueForLabel(selectName, labels[i]);
@@ -204,12 +205,14 @@
     }
 
     public boolean hasButton(String buttonId) {
+        // Not bothering with formSelector here because we're using an ID
+        // to identify the element.  Is this the right thing to do?
         return selenium.isElementPresent("xpath=//[EMAIL PROTECTED]'" + 
buttonId
                 + "']");
     }
 
     public boolean hasButtonWithText(String text) {
-        return selenium.isElementPresent("xpath=//button[contains(.,'" + text
+        return selenium.isElementPresent("xpath=" + formSelector() + 
"//button[contains(.,'" + text
                 + "')]");
     }
 
@@ -240,8 +243,8 @@
     }
 
     public boolean hasFormParameterNamed(String paramName) {
-        return selenium.isElementPresent("xpath=//form[" + formIdent
-                + "]/[EMAIL PROTECTED]'" + paramName + "']");
+        return selenium.isElementPresent("xpath=" + formSelector()
+                + "//[EMAIL PROTECTED]'" + paramName + "']");
     }
 
     public boolean hasFrame(String frameName) {
@@ -269,7 +272,7 @@
     }
 
     public boolean hasRadioOption(String radioGroup, String radioOptionValue) {
-        return selenium.isElementPresent("xpath=//[EMAIL PROTECTED]'" + 
radioGroup
+        return selenium.isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'" + radioGroup
                 + "' and @value='" + radioOptionValue + "']");
     }
 
@@ -290,20 +293,36 @@
             return false;
         }
     }
+    
+    public boolean hasSubmitButton() {
+        return selenium
+        .isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'submit']");
+    }
 
     public boolean hasSubmitButton(String nameOrID, String value) {
         return selenium
-                .isElementPresent("xpath=//[EMAIL PROTECTED]'submit' and 
(@id='"
+                .isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'submit' and (@id='"
                         + nameOrID + "' or @name='" + nameOrID
                         + "') and @value='" + value + "']");
     }
 
     public boolean hasSubmitButton(String nameOrID) {
         return selenium
-                .isElementPresent("xpath=//[EMAIL PROTECTED]'submit' and 
(@id='"
+                .isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'submit' and (@id='"
                         + nameOrID + "' or @name='" + nameOrID + "')]");
     }
 
+    public boolean hasResetButton() {
+        return selenium
+        .isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'reset']");
+    }
+
+    public boolean hasResetButton(String nameOrID) {
+        return selenium
+                .isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'reset' and (@id='"
+                        + nameOrID + "' or @name='" + nameOrID + "')]");
+    }
+
     public boolean hasTable(String tableSummaryNameOrId) {
         return selenium.isElementPresent("xpath=//[EMAIL 
PROTECTED]'"+tableSummaryNameOrId+"' or @name='"+tableSummaryNameOrId+"' or 
@summary='"+tableSummaryNameOrId+"']");
     }
@@ -319,7 +338,7 @@
     }
 
     public boolean isCheckboxSelected(String checkBoxName) {
-        return selenium.isChecked("xpath=//[EMAIL PROTECTED]'checkbox' and 
@name='"
+        return selenium.isChecked("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'checkbox' and @name='"
                 + checkBoxName + "']");
     }
 
@@ -338,12 +357,12 @@
     }
 
     public void reset() {
-        selenium.click("xpath=//form["+formIdent+"]/[EMAIL 
PROTECTED]'reset']");
+        selenium.click("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'reset']");
     }
 
     public void selectOptions(String selectName, String[] optionsValue) {
         for (int i=0; i<optionsValue.length; i++) {
-            selenium.addSelection("xpath=//form["+formIdent+"]/[EMAIL 
PROTECTED]'"+selectName+"']","value="+optionsValue[i]);
+            selenium.addSelection("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'"+selectName+"']","value="+optionsValue[i]);
         }
     }
 
@@ -357,38 +376,41 @@
     }
 
     public void setTextField(String inputName, String text) {
-        selenium.type("xpath=//form["+formIdent+"]/[EMAIL 
PROTECTED]'"+inputName+"' and (@type=text or @type=password)]", text);
+        selenium.type("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'"+inputName+"' and (@type=text or @type=password)]", text);
     }
 
     public void setWorkingForm(String nameOrId) {
-        formIdent="@name='"+nameOrId+"' or @id='"+nameOrId+"'";
+        if (nameOrId != null)
+            formIdent="@name='"+nameOrId+"' or @id='"+nameOrId+"'";
+        else
+            formIdent=null;
     }
 
     public void submit() {
-        selenium.click("xpath=//form["+formIdent+"]/[EMAIL 
PROTECTED]'submit']");
+        selenium.click("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'submit']");
     }
 
     public void submit(String buttonName, String buttonValue) {
-        selenium.click("xpath=//form["+formIdent+"]/[EMAIL PROTECTED]'submit' 
and @name='"+buttonName+"' and @value='"+buttonValue+"']");
+        selenium.click("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'submit' and @name='"+buttonName+"' and @value='"+buttonValue+"']");
     }
 
     public void submit(String buttonName) {
-        selenium.click("xpath=//form["+formIdent+"]/[EMAIL PROTECTED]'submit' 
and @name='"+buttonName+"']");
+        selenium.click("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'submit' and @name='"+buttonName+"']");
     }
 
     public void uncheckCheckbox(String checkBoxName, String value) {
-        selenium.uncheck("xpath=//[EMAIL PROTECTED]'checkbox' and @name='"
+        selenium.uncheck("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'checkbox' and @name='"
                 + checkBoxName + "' and @value='" + value + "']");
     }
 
     public void uncheckCheckbox(String checkBoxName) {
-        selenium.uncheck("xpath=//[EMAIL PROTECTED]'checkbox' and @name='"
+        selenium.uncheck("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'checkbox' and @name='"
                 + checkBoxName + "']");
     }
 
     public void unselectOptions(String selectName, String[] options) {
         for (int i=0; i<options.length; i++) {
-            selenium.removeSelection("xpath=//form["+formIdent+"]/[EMAIL 
PROTECTED]'"+selectName+"']","value="+options[i]);
+            selenium.removeSelection("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'"+selectName+"']","value="+options[i]);
         }
     }
 
@@ -410,4 +432,10 @@
         return null;
     }
 
+    protected String formSelector() {
+        if (formIdent == null)
+            return "";
+
+        return "//form[" + formIdent + "]";
+    }
 }
\ No newline at end of file


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



_______________________________________________
Jwebunit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development

Reply via email to