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