Revision: 708
          http://svn.sourceforge.net/jwebunit/?rev=708&view=rev
Author:   henryju
Date:     2007-05-20 10:50:40 -0700 (Sun, 20 May 2007)

Log Message:
-----------
Improve Selenium plugin.

Modified Paths:
--------------
    trunk/jwebunit-core/pom.xml
    
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
    trunk/jwebunit-htmlunit-plugin/pom.xml
    
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumTestingEngineImpl.java
    trunk/pom.xml

Modified: trunk/jwebunit-core/pom.xml
===================================================================
--- trunk/jwebunit-core/pom.xml 2007-05-06 11:22:58 UTC (rev 707)
+++ trunk/jwebunit-core/pom.xml 2007-05-20 17:50:40 UTC (rev 708)
@@ -15,7 +15,6 @@
                <dependency>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
-            <scope>test</scope>
                </dependency>
                <dependency>
                        <groupId>regexp</groupId>

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 
    2007-05-06 11:22:58 UTC (rev 707)
+++ 
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 
    2007-05-20 17:50:40 UTC (rev 708)
@@ -1786,6 +1786,7 @@
      * @param nameOrId name or id of the form to work with.
      */
     public void setWorkingForm(String nameOrId) {
+        assertFormPresent(nameOrId);
         getTestingEngine().setWorkingForm(nameOrId, 0);
     }
 

Modified: trunk/jwebunit-htmlunit-plugin/pom.xml
===================================================================
--- trunk/jwebunit-htmlunit-plugin/pom.xml      2007-05-06 11:22:58 UTC (rev 
707)
+++ trunk/jwebunit-htmlunit-plugin/pom.xml      2007-05-20 17:50:40 UTC (rev 
708)
@@ -34,7 +34,7 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>htmlunit</groupId>
+            <groupId>net.sourceforge.htmlunit</groupId>
             <artifactId>htmlunit</artifactId>
         </dependency>
         <dependency>

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
       2007-05-06 11:22:58 UTC (rev 707)
+++ 
trunk/jwebunit-selenium-plugin/src/main/java/net/sourceforge/jwebunit/selenium/SeleniumTestingEngineImpl.java
       2007-05-20 17:50:40 UTC (rev 708)
@@ -107,7 +107,7 @@
     }
 
     public void clickLinkWithImage(String imageFileName, int index) {
-        selenium.click("xpath=//a[contains(img/@src,'" + imageFileName + 
"')]");
+        selenium.click("xpath=//a[contains(img/@src,'" + imageFileName + 
"')][" + index + 1 + "]");
         selenium.waitForPageToLoad(timeout);
     }
 
@@ -118,7 +118,7 @@
     }
 
     public void clickRadioOption(String radioGroup, String radioOptionValue) {
-        selenium.click("xpath=" + formSelector() + "//[EMAIL PROTECTED]'" + 
radioGroup + "' and @value='"
+        selenium.click("xpath=" + formSelector() + "//[EMAIL PROTECTED]'radio' 
and @name='" + radioGroup + "' and @value='"
                 + radioOptionValue + "']");
     }
 
@@ -260,7 +260,7 @@
 
     public boolean hasLinkWithImage(String imageFileName, int index) {
         return selenium.isElementPresent("xpath=//a[contains(img/@src,'"
-                + imageFileName + "')]");
+                + imageFileName + "')][" + index + 1 + "]");
     }
 
     public boolean hasLinkWithText(String linkText, int index) {
@@ -292,26 +292,32 @@
     }
     
     public boolean hasSubmitButton() {
+        String xpath1 = formSelector() + "//[EMAIL PROTECTED]'submit' or 
@type='image']";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'submit']";
         return selenium
-        .isElementPresent("xpath=" + formSelector() + "(//[EMAIL 
PROTECTED]'submit' or @type='image']|//[EMAIL PROTECTED]'submit'])");
+        .isElementPresent("xpath=" + xpath1 + "|" + xpath2);
     }
 
     public boolean hasSubmitButton(String nameOrID, String value) {
+        String xpath1 = formSelector() + "//input[(@type='submit' or 
@type='image') and (@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "') and @value='" + value + "']";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'submit' and 
(@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "') and @value='" + value + "']";
         return selenium
-                .isElementPresent("xpath=" + formSelector() + 
"(//input[(@type='submit' or @type='image') and (@id='"
-                        + nameOrID + "' or @name='" + nameOrID
-                        + "') and @value='" + value + "']|//[EMAIL 
PROTECTED]'submit' and (@id='"
-                        + nameOrID + "' or @name='" + nameOrID
-                        + "') and @value='" + value + "'])");
+                .isElementPresent("xpath=" + xpath1 + "|" + xpath2);
     }
 
     public boolean hasSubmitButton(String nameOrID) {
+        String xpath1 = formSelector() + "//input[(@type='submit' or 
@type='image') and (@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "')]";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'submit' and 
(@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "')]";
         return selenium
-        .isElementPresent("xpath=" + formSelector() + 
"(//input[(@type='submit' or @type='image') and (@id='"
-                + nameOrID + "' or @name='" + nameOrID
-                + "')]|//[EMAIL PROTECTED]'submit' and (@id='"
-                + nameOrID + "' or @name='" + nameOrID
-                + "')])");
+                .isElementPresent("xpath=" + xpath1 + "|" + xpath2);
     }
 
     public boolean hasResetButton() {
@@ -385,36 +391,44 @@
     }
 
     public void setTextField(String inputName, String text) {
-        selenium.type("xpath=" + formSelector() + "(//[EMAIL 
PROTECTED]'"+inputName+"' and (@type='text' or @type='password' or 
@type='file')]|//[EMAIL PROTECTED]'"+inputName+"'])", text);
+        String xpath1 = formSelector() + "//[EMAIL PROTECTED]'"+inputName+"' 
and (@type='text' or @type='password' or @type='file')]";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'"+inputName+"']";
+        selenium.type("xpath=" + xpath1 + "|" + xpath2, text);
     }
 
     public void setWorkingForm(String nameOrId, int index) {
         if (nameOrId != null)
-            formIdent="(@name='"+nameOrId+"' or @id='"+nameOrId+"') and 
position()="+index;
+            formIdent="(@name='"+nameOrId+"' or @id='"+nameOrId+"')][ 
position()="+(index+1);
         else
             formIdent=null;
     }
 
     public void submit() {
-        selenium.click("xpath=" + formSelector() + "(//[EMAIL 
PROTECTED]'submit' or @type='image']|//[EMAIL PROTECTED]'submit'])");
+        String xpath1 = formSelector() + "//[EMAIL PROTECTED]'submit' or 
@type='image']";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'submit']";
+        selenium.click("xpath=" + xpath1 + "|" + xpath2);
         selenium.waitForPageToLoad(timeout);
     }
 
-    public void submit(String buttonName, String buttonValue) {
-        selenium.click("xpath=" + formSelector() + "(//input[(@type='submit' 
or @type='image') and (@id='"
-                        + buttonName + "' or @name='" + buttonName
-                        + "') and @value='" + buttonValue + "']|//[EMAIL 
PROTECTED]'submit' and (@id='"
-                        + buttonName + "' or @name='" + buttonName
-                        + "') and @value='" + buttonValue + "'])");
+    public void submit(String nameOrID, String value) {
+        String xpath1 = formSelector() + "//input[(@type='submit' or 
@type='image') and (@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "') and @value='" + value + "']";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'submit' and 
(@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "') and @value='" + value + "']";
+        selenium.click("xpath=" + xpath1 + "|" + xpath2);
         selenium.waitForPageToLoad(timeout);
     }
 
-    public void submit(String buttonName) {
-        selenium.click("xpath=" + formSelector() + "(//input[(@type='submit' 
or @type='image') and (@id='"
-                        + buttonName + "' or @name='" + buttonName
-                        + "')]|//[EMAIL PROTECTED]'submit' and (@id='"
-                        + buttonName + "' or @name='" + buttonName
-                        + "')])");
+    public void submit(String nameOrID) {
+        String xpath1 = formSelector() + "//input[(@type='submit' or 
@type='image') and (@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "')]";
+        String xpath2 = formSelector() + "//[EMAIL PROTECTED]'submit' and 
(@id='"
+        + nameOrID + "' or @name='" + nameOrID
+        + "')]";
+        selenium.click("xpath=" + xpath1 + "|" + xpath2);
         selenium.waitForPageToLoad(timeout);
     }
 
@@ -525,8 +539,23 @@
      * @see 
net.sourceforge.jwebunit.api.ITestingEngine#getSelectedRadio(java.lang.String)
      */
     public String getSelectedRadio(String radioGroup) {
-        throw new UnsupportedOperationException("getSelectedRadio");
+        int count = 0;
+        while (selenium.isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'radio' and @name='"+radioGroup+"']["+(count+1)+"]")) {
+            if ("on".equals(selenium.getValue("xpath=" + formSelector() + 
"//[EMAIL PROTECTED]'radio' and @name='"+radioGroup+"']["+(count+1)+"]"))) {
+                return selenium.getAttribute("xpath=" + formSelector() + 
"//[EMAIL PROTECTED]'radio' and @name='"+radioGroup+"']["+(count+1)+"[EMAIL 
PROTECTED]");
+            }
+            count++;
+        }
+        return null;
     }
+    
+    protected int getRadioCount(String radioGroup) {
+        int count = 0;
+        while (selenium.isElementPresent("xpath=" + formSelector() + "//[EMAIL 
PROTECTED]'radio' and @name='"+radioGroup+"']["+(count+1)+"]")) {
+            count++;
+        }
+        return count;
+    }
 
     /* (non-Javadoc)
      * @see 
net.sourceforge.jwebunit.api.ITestingEngine#setExpectedJavaScriptAlert(net.sourceforge.jwebunit.javascript.JavascriptAlert[])
@@ -558,8 +587,7 @@
      * @see net.sourceforge.jwebunit.api.ITestingEngine#setWorkingForm(int)
      */
     public void setWorkingForm(int index) {
-        // TODO Auto-generated method stub
-        throw new UnsupportedOperationException("setWorkingForm");
+            formIdent="position()="+(index+1);
     }
 
 }

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml       2007-05-06 11:22:58 UTC (rev 707)
+++ trunk/pom.xml       2007-05-20 17:50:40 UTC (rev 708)
@@ -162,7 +162,7 @@
         <repository>
             <id>Codehaus</id>
             <name>Mojo Codehaus Repository</name>
-            <url>http://repository.codehaus.org/org/codehaus/mojo/</url>
+            <url>http://repository.codehaus.org/</url>
         </repository>
     </repositories>
     <build>
@@ -269,7 +269,7 @@
             <dependency>
                 <groupId>org.mortbay.jetty</groupId>
                 <artifactId>jetty</artifactId>
-                <version>6.1.2rc2</version>
+                <version>6.1.3</version>
             </dependency>
             <dependency>
                 <groupId>commons-fileupload</groupId>
@@ -282,9 +282,9 @@
                 <version>1.3.1</version>
             </dependency>
             <dependency>
-                <groupId>htmlunit</groupId>
+                <groupId>net.sourceforge.htmlunit</groupId>
                 <artifactId>htmlunit</artifactId>
-                <version>1.11</version>
+                <version>1.12-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>regexp</groupId>
@@ -305,7 +305,7 @@
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-log4j12</artifactId>
                 <version>1.3.0</version>
-                <scope>test</scope>
+                <scope>optional</scope>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -447,7 +447,7 @@
         <site>
             <id>jwebunit-website</id>
             <name>JWebUnit WebSite - Sourceforge</name>
-            
<url>scp://shell.sourceforge.net/home/groups/j/jw/jwebunit/htdocs</url>
+            <url>file:///home/julien/site-jwebunit</url>
         </site>
         <repository>
             <id>jwebunit-m2-repo</id>


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