jwebunit-development Mailing List for JWebUnit (Page 2)
Brought to you by:
henryju
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(98) |
Jul
(45) |
Aug
(49) |
Sep
(90) |
Oct
(28) |
Nov
(18) |
Dec
(17) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(14) |
Feb
(21) |
Mar
(52) |
Apr
(39) |
May
(61) |
Jun
(35) |
Jul
(42) |
Aug
(31) |
Sep
(34) |
Oct
(16) |
Nov
(14) |
Dec
(61) |
2006 |
Jan
(39) |
Feb
(11) |
Mar
(29) |
Apr
(29) |
May
(30) |
Jun
(145) |
Jul
(61) |
Aug
(40) |
Sep
(36) |
Oct
(66) |
Nov
(50) |
Dec
(11) |
2007 |
Jan
(30) |
Feb
(1) |
Mar
(47) |
Apr
(9) |
May
(36) |
Jun
(13) |
Jul
(7) |
Aug
(5) |
Sep
(6) |
Oct
(3) |
Nov
(11) |
Dec
(36) |
2008 |
Jan
(12) |
Feb
|
Mar
(4) |
Apr
(29) |
May
(1) |
Jun
(8) |
Jul
(10) |
Aug
|
Sep
(2) |
Oct
(77) |
Nov
(107) |
Dec
(46) |
2009 |
Jan
(17) |
Feb
(13) |
Mar
(27) |
Apr
(5) |
May
(8) |
Jun
(17) |
Jul
(10) |
Aug
(25) |
Sep
(15) |
Oct
(4) |
Nov
(4) |
Dec
(10) |
2010 |
Jan
|
Feb
(6) |
Mar
(12) |
Apr
(15) |
May
(4) |
Jun
(5) |
Jul
(9) |
Aug
(5) |
Sep
(5) |
Oct
(63) |
Nov
(9) |
Dec
(1) |
2011 |
Jan
(9) |
Feb
(3) |
Mar
(15) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
(14) |
Sep
(15) |
Oct
(11) |
Nov
(1) |
Dec
(2) |
2012 |
Jan
(6) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(14) |
Aug
(17) |
Sep
(8) |
Oct
(1) |
Nov
(17) |
Dec
|
2014 |
Jan
|
Feb
|
Mar
(13) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(13) |
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
From: <jev...@us...> - 2014-03-17 23:23:28
|
Revision: 976 http://sourceforge.net/p/jwebunit/code/976 Author: jevonwright Date: 2014-03-17 23:23:25 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Adding methods hasElementById(), hasElementByXPath(), hasElementsByXPath() so one can test for elements without having to catch AssertionErrors as per getElementById() etc. Modified Paths: -------------- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java Property Changed: ---------------- trunk/ Index: trunk =================================================================== --- trunk 2014-03-17 11:04:26 UTC (rev 975) +++ trunk 2014-03-17 23:23:25 UTC (rev 976) Property changes on: trunk ___________________________________________________________________ Modified: svn:ignore ## -1,3 +1,4 ## target .project .settings +bin Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java 2014-03-17 11:04:26 UTC (rev 975) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java 2014-03-17 23:23:25 UTC (rev 976) @@ -18,22 +18,8 @@ */ package net.sourceforge.jwebunit.tests; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertCommentNotPresent; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertCommentPresent; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertElementPresent; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertFormElementPresent; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertMatch; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertNotMatch; -import static net.sourceforge.jwebunit.junit.JWebUnit.assertTextFieldEquals; -import static net.sourceforge.jwebunit.junit.JWebUnit.beginAt; -import static net.sourceforge.jwebunit.junit.JWebUnit.getElementById; -import static net.sourceforge.jwebunit.junit.JWebUnit.getElementByXPath; -import static net.sourceforge.jwebunit.junit.JWebUnit.getElementsByXPath; -import static net.sourceforge.jwebunit.junit.JWebUnit.setBaseUrl; -import static net.sourceforge.jwebunit.junit.JWebUnit.setTextField; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static net.sourceforge.jwebunit.junit.JWebUnit.*; +import static org.junit.Assert.*; import java.util.Date; import java.util.List; @@ -65,8 +51,23 @@ assertEquals(element.getAttribute("id"), "test"); assertEquals(element.getAttribute("value"), "test3"); } + + @Test + public void testSimpleHasID() { + assertTrue(hasElementById("test")); + } @Test + public void testSimpleHasXPath() { + assertTrue(hasElementByXPath("//input[@id='test']")); + } + + @Test + public void testSimpleHasXPaths() { + assertTrue(hasElementsByXPath("//input[@id='test']")); + } + + @Test public void testMissing() { // a missing element should throw an exception try { @@ -77,6 +78,21 @@ } } + @Test + public void testMissingHasID() { + assertFalse(hasElementById("test2")); + } + + @Test + public void testMissingHasXPath() { + assertFalse(hasElementByXPath("//input[@id='test2']")); + } + + @Test + public void testMissingHasXPaths() { + assertFalse(hasElementsByXPath("//input[@id='test2']")); + } + /** * Test parent, child methods */ 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 2014-03-17 11:04:26 UTC (rev 975) +++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 2014-03-17 23:23:25 UTC (rev 976) @@ -2737,6 +2737,16 @@ return getTestingEngine().getElementByXPath(xpath); } + /** + * Return {@code true} if the given element by XPath exists. + * + * @param xpath XPath to search + * @return {@code true} if the the requested element + * @throws AssertionError if the element xpath is not found + */ + public boolean hasElementByXPath(String xpath) { + return getTestingEngine().getElementByXPath(xpath) != null; + } /** * Get an element for a particular ID. @@ -2749,6 +2759,16 @@ assertElementPresent(id); return getTestingEngine().getElementByID(id); } + + /** + * Returns {@code true} if an element with the given ID exists. + * + * @param id element ID to find + * @return {@code true} if the element ID exists, {@code false} otherwise + */ + public boolean hasElementById(String id) { + return getTestingEngine().getElementByID(id) != null; + } /** * Get elements for a particular xpath. @@ -2760,6 +2780,17 @@ return getTestingEngine().getElementsByXPath(xpath); } + /** + * Return {@code true} if the given elements by XPath exists. + * + * @param xpath XPath to search + * @return {@code true} if the given elements by XPath exist + */ + public boolean hasElementsByXPath(String xpath) { + List<IElement> list = getTestingEngine().getElementsByXPath(xpath); + return list != null && !list.isEmpty(); + } + // label methods /** * Assert a label for a given ID exists. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 11:04:29
|
Revision: 975 http://sourceforge.net/p/jwebunit/code/975 Author: henryju Date: 2014-03-17 11:04:26 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Update SVN URL Modified Paths: -------------- trunk/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-03-17 11:02:29 UTC (rev 974) +++ trunk/pom.xml 2014-03-17 11:04:26 UTC (rev 975) @@ -183,9 +183,9 @@ </license> </licenses> <scm> - <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</connection> - <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</developerConnection> - <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/trunk</url> + <connection>scm:svn:http://svn.code.sf.net/p/jwebunit/code/trunk</connection> + <developerConnection>scm:svn:https://svn.code.sf.net/p/jwebunit/code/trunk</developerConnection> + <url>http://sourceforge.net/p/jwebunit/code/HEAD/tree/trunk</url> </scm> <organization> <name>SourceForge</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 11:02:32
|
Revision: 974 http://sourceforge.net/p/jwebunit/code/974 Author: henryju Date: 2014-03-17 11:02:29 +0000 (Mon, 17 Mar 2014) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/jwebunit-code-generator/pom.xml trunk/jwebunit-commons-tests/pom.xml trunk/jwebunit-core/pom.xml trunk/jwebunit-htmlunit-plugin/pom.xml trunk/jwebunit-webdriver-plugin/pom.xml trunk/pom.xml Modified: trunk/jwebunit-code-generator/pom.xml =================================================================== --- trunk/jwebunit-code-generator/pom.xml 2014-03-17 11:02:21 UTC (rev 973) +++ trunk/jwebunit-code-generator/pom.xml 2014-03-17 11:02:29 UTC (rev 974) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2</version> + <version>3.3-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-commons-tests/pom.xml =================================================================== --- trunk/jwebunit-commons-tests/pom.xml 2014-03-17 11:02:21 UTC (rev 973) +++ trunk/jwebunit-commons-tests/pom.xml 2014-03-17 11:02:29 UTC (rev 974) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2</version> + <version>3.3-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-core/pom.xml =================================================================== --- trunk/jwebunit-core/pom.xml 2014-03-17 11:02:21 UTC (rev 973) +++ trunk/jwebunit-core/pom.xml 2014-03-17 11:02:29 UTC (rev 974) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2</version> + <version>3.3-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-htmlunit-plugin/pom.xml =================================================================== --- trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 11:02:21 UTC (rev 973) +++ trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 11:02:29 UTC (rev 974) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2</version> + <version>3.3-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-webdriver-plugin/pom.xml =================================================================== --- trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 11:02:21 UTC (rev 973) +++ trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 11:02:29 UTC (rev 974) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2</version> + <version>3.3-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-03-17 11:02:21 UTC (rev 973) +++ trunk/pom.xml 2014-03-17 11:02:29 UTC (rev 974) @@ -3,7 +3,7 @@ <groupId>net.sourceforge.jwebunit</groupId> <artifactId>jwebunit</artifactId> <name>JWebUnit</name> - <version>3.2</version> + <version>3.3-SNAPSHOT</version> <packaging>pom</packaging> <description> JWebUnit is a Java framework that facilitates creation of @@ -183,9 +183,9 @@ </license> </licenses> <scm> - <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/tags/jwebunit-3.2</connection> - <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/tags/jwebunit-3.2</developerConnection> - <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/tags/jwebunit-3.2</url> + <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</connection> + <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</developerConnection> + <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/trunk</url> </scm> <organization> <name>SourceForge</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 11:02:24
|
Revision: 973 http://sourceforge.net/p/jwebunit/code/973 Author: henryju Date: 2014-03-17 11:02:21 +0000 (Mon, 17 Mar 2014) Log Message: ----------- [maven-release-plugin] copy for tag jwebunit-3.2 Added Paths: ----------- tags/jwebunit-3.2/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 10:57:42
|
Revision: 972 http://sourceforge.net/p/jwebunit/code/972 Author: henryju Date: 2014-03-17 10:57:39 +0000 (Mon, 17 Mar 2014) Log Message: ----------- [maven-release-plugin] prepare release jwebunit-3.2 Modified Paths: -------------- trunk/jwebunit-code-generator/pom.xml trunk/jwebunit-commons-tests/pom.xml trunk/jwebunit-core/pom.xml trunk/jwebunit-htmlunit-plugin/pom.xml trunk/jwebunit-webdriver-plugin/pom.xml trunk/pom.xml Modified: trunk/jwebunit-code-generator/pom.xml =================================================================== --- trunk/jwebunit-code-generator/pom.xml 2014-03-17 10:46:39 UTC (rev 971) +++ trunk/jwebunit-code-generator/pom.xml 2014-03-17 10:57:39 UTC (rev 972) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2-SNAPSHOT</version> + <version>3.2</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-commons-tests/pom.xml =================================================================== --- trunk/jwebunit-commons-tests/pom.xml 2014-03-17 10:46:39 UTC (rev 971) +++ trunk/jwebunit-commons-tests/pom.xml 2014-03-17 10:57:39 UTC (rev 972) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2-SNAPSHOT</version> + <version>3.2</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-core/pom.xml =================================================================== --- trunk/jwebunit-core/pom.xml 2014-03-17 10:46:39 UTC (rev 971) +++ trunk/jwebunit-core/pom.xml 2014-03-17 10:57:39 UTC (rev 972) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2-SNAPSHOT</version> + <version>3.2</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-htmlunit-plugin/pom.xml =================================================================== --- trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 10:46:39 UTC (rev 971) +++ trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 10:57:39 UTC (rev 972) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2-SNAPSHOT</version> + <version>3.2</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-webdriver-plugin/pom.xml =================================================================== --- trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 10:46:39 UTC (rev 971) +++ trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 10:57:39 UTC (rev 972) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2-SNAPSHOT</version> + <version>3.2</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-03-17 10:46:39 UTC (rev 971) +++ trunk/pom.xml 2014-03-17 10:57:39 UTC (rev 972) @@ -3,7 +3,7 @@ <groupId>net.sourceforge.jwebunit</groupId> <artifactId>jwebunit</artifactId> <name>JWebUnit</name> - <version>3.2-SNAPSHOT</version> + <version>3.2</version> <packaging>pom</packaging> <description> JWebUnit is a Java framework that facilitates creation of @@ -183,9 +183,9 @@ </license> </licenses> <scm> - <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</connection> - <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</developerConnection> - <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/trunk</url> + <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/tags/jwebunit-3.2</connection> + <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/tags/jwebunit-3.2</developerConnection> + <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/tags/jwebunit-3.2</url> </scm> <organization> <name>SourceForge</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 10:46:49
|
Revision: 971 http://sourceforge.net/p/jwebunit/code/971 Author: henryju Date: 2014-03-17 10:46:39 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Prepare release 3.2. Update Webdriver plugin. Modified Paths: -------------- trunk/README.txt trunk/jwebunit-commons-tests/pom.xml trunk/jwebunit-htmlunit-plugin/src/site/xdoc/index.xml trunk/jwebunit-webdriver-plugin/pom.xml trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverTestingEngineImpl.java trunk/jwebunit-webdriver-plugin/src/site/xdoc/index.xml trunk/src/changes/changes.xml trunk/src/site/xdoc/how-to-release.xml trunk/src/site/xdoc/index.xml trunk/src/site/xdoc/installation.xml Modified: trunk/README.txt =================================================================== --- trunk/README.txt 2014-03-17 10:00:59 UTC (rev 970) +++ trunk/README.txt 2014-03-17 10:46:39 UTC (rev 971) @@ -1,11 +1,11 @@ -The JWebUnit team is pleased to announce the JWebUnit 3.1 release! +The JWebUnit team is pleased to announce the JWebUnit 3.2 release! http://jwebunit.sourceforge.net JWebUnit is a Java framework that facilitates creation of acceptance tests for -web applications. It evolved from a project where we were using HttpUnit and -JUnit to create acceptance tests. As the tests were being written, they were -continuously refactored to remove duplication and other bad smells in the test +web applications. It evolved from a project where we were using HttpUnit and +JUnit to create acceptance tests. As the tests were being written, they were +continuously refactored to remove duplication and other bad smells in the test code. JWebUnit is the result of these refactorings. We are using HtmlUnit (htmlunit.sourceforge.net). @@ -14,4 +14,4 @@ Have fun! -The JWebUnit team - + Modified: trunk/jwebunit-commons-tests/pom.xml =================================================================== --- trunk/jwebunit-commons-tests/pom.xml 2014-03-17 10:00:59 UTC (rev 970) +++ trunk/jwebunit-commons-tests/pom.xml 2014-03-17 10:46:39 UTC (rev 971) @@ -35,7 +35,7 @@ <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> - <version>2.0.1</version> + <version>2.4</version> </dependency> <dependency> <groupId>com.google.code.tempus-fugit</groupId> Modified: trunk/jwebunit-htmlunit-plugin/src/site/xdoc/index.xml =================================================================== --- trunk/jwebunit-htmlunit-plugin/src/site/xdoc/index.xml 2014-03-17 10:00:59 UTC (rev 970) +++ trunk/jwebunit-htmlunit-plugin/src/site/xdoc/index.xml 2014-03-17 10:46:39 UTC (rev 971) @@ -25,9 +25,9 @@ <title>JWebUnit</title> </properties> <meta name="keyword" content="jwebunit, java, junit, htmlunit, jacobie, httpunit, integration, test, automated, html, webtest"/> - <head> - <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" /> - </head> + <head> + <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" /> + </head> <body> <section name="HtmlUnit plugin"> <p> @@ -55,7 +55,7 @@ import org.junit.Test; public class SearchExample { - + @Test public void testSearch() throws Exception { final WebClient webClient = new WebClient(); @@ -82,12 +82,12 @@ import static net.sourceforge.jwebunit.junit.JWebUnit.*; public class SearchExample { - + @Before public void prepare() { setBaseUrl("http://www.google.com"); } - + @Test public void testSearch() { beginAt("/"); @@ -105,22 +105,22 @@ </p> </section> <section name="HowTo manage dependencies with Maven 2"> - <p> - Just add the following dependency to your pom: - <source><pre> + <p> + Just add the following dependency to your pom: + <source><pre> ... <dependencies> ... <dependency> <groupId>net.sourceforge.jwebunit</groupId> <artifactId>jwebunit-htmlunit-plugin</artifactId> - <version>3.1</version> + <version>3.2</version> </dependency> ... </dependencies> ... - </pre></source> - </p> + </pre></source> + </p> </section> -</body> +</body> </document> Modified: trunk/jwebunit-webdriver-plugin/pom.xml =================================================================== --- trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 10:00:59 UTC (rev 970) +++ trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 10:46:39 UTC (rev 971) @@ -34,7 +34,7 @@ <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-htmlunit-driver</artifactId> - <version>2.26.0</version> + <version>2.40.0</version> <exclusions> <exclusion> <artifactId>commons-logging</artifactId> @@ -45,7 +45,7 @@ <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-support</artifactId> - <version>2.26.0</version> + <version>2.40.0</version> </dependency> <dependency> <groupId>net.sourceforge.jwebunit</groupId> @@ -75,20 +75,24 @@ <dependency> <groupId>biz.neustar</groupId> <artifactId>browsermob-proxy</artifactId> - <version>2.0-beta-6</version> + <version>2.0-beta-7</version> <exclusions> <exclusion> + <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> - <groupId>commons-logging</groupId> </exclusion> <exclusion> + <groupId>commons-io</groupId> <artifactId>org.apache.commons</artifactId> - <groupId>commons-io</groupId> </exclusion> <exclusion> + <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> - <groupId>org.slf4j</groupId> </exclusion> + <exclusion> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpmime</artifactId> + </exclusion> </exclusions> </dependency> <dependency> Modified: trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverTestingEngineImpl.java =================================================================== --- trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverTestingEngineImpl.java 2014-03-17 10:00:59 UTC (rev 970) +++ trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverTestingEngineImpl.java 2014-03-17 10:46:39 UTC (rev 971) @@ -18,19 +18,8 @@ */ package net.sourceforge.jwebunit.webdriver; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; - +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.WebResponse; import net.sourceforge.jwebunit.api.HttpHeader; import net.sourceforge.jwebunit.api.IElement; import net.sourceforge.jwebunit.api.ITestingEngine; @@ -45,20 +34,16 @@ import net.sourceforge.jwebunit.javascript.JavascriptConfirm; import net.sourceforge.jwebunit.javascript.JavascriptPrompt; import net.sourceforge.jwebunit.util.TestContext; - import org.apache.commons.lang.StringUtils; import org.apache.http.Header; -import org.apache.http.HttpException; -import org.apache.http.HttpRequest; -import org.apache.http.HttpRequestInterceptor; -import org.apache.http.HttpResponse; -import org.apache.http.HttpResponseInterceptor; import org.apache.http.HttpStatus; -import org.apache.http.entity.BufferedHttpEntity; -import org.apache.http.protocol.HttpContext; import org.apache.regexp.RE; import org.apache.regexp.RESyntaxException; import org.browsermob.proxy.ProxyServer; +import org.browsermob.proxy.http.BrowserMobHttpRequest; +import org.browsermob.proxy.http.BrowserMobHttpResponse; +import org.browsermob.proxy.http.RequestInterceptor; +import org.browsermob.proxy.http.ResponseInterceptor; import org.browsermob.proxy.jetty.util.MultiException; import org.openqa.selenium.By; import org.openqa.selenium.Cookie; @@ -75,8 +60,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gargoylesoftware.htmlunit.WebClient; -import com.gargoylesoftware.htmlunit.WebResponse; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.Set; /** * Acts as the wrapper for Webdriver access. A testing engine is initialized with a given URL, and maintains @@ -86,1054 +81,1056 @@ */ public class WebDriverTestingEngineImpl implements ITestingEngine { - /** - * Logger for this class. - */ - private final Logger logger = LoggerFactory.getLogger(WebDriverTestingEngineImpl.class); - private ProxyServer proxyServer; - private WebDriver driver; - private TestContext testContext; - private static final int TRY_COUNT = 50; - private static final int DEFAULT_PORT = 8183; - private static final Random RANDOM = new Random(); - private HttpResponse response; - // The xpath string that identifie the current form - // ie : @name='myForm' - private String formIdent; - private boolean throwExceptionOnScriptError = true;//TODO - private boolean ignoreFailingStatusCodes = false; - /** - * Is Javascript enabled. - */ - private boolean jsEnabled = true; + /** + * Logger for this class. + */ + private final Logger logger = LoggerFactory.getLogger(WebDriverTestingEngineImpl.class); + private ProxyServer proxyServer; + private WebDriver driver; + private TestContext testContext; + private static final int TRY_COUNT = 50; + private static final int DEFAULT_PORT = 8183; + private static final Random RANDOM = new Random(); + private BrowserMobHttpResponse response; + // The xpath string that identifie the current form + // ie : @name='myForm' + private String formIdent; + private boolean throwExceptionOnScriptError = true;// TODO + private boolean ignoreFailingStatusCodes = false; + /** + * Is Javascript enabled. + */ + private boolean jsEnabled = true; - public WebDriverTestingEngineImpl() { - } + public WebDriverTestingEngineImpl() { + } - public void beginAt(URL aInitialURL, TestContext aTestContext) throws TestingEngineResponseException { - this.setTestContext(aTestContext); - // start the proxy - Proxy proxy = startBrowserMobProxy(); + public void beginAt(URL aInitialURL, TestContext aTestContext) throws TestingEngineResponseException { + this.setTestContext(aTestContext); + // start the proxy + Proxy proxy = startBrowserMobProxy(); - DesiredCapabilities capabilities = new DesiredCapabilities(); - capabilities.setCapability(CapabilityType.PROXY, proxy); - capabilities.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, jsEnabled); - capabilities.setBrowserName("htmlunit"); - capabilities.setVersion("firefox"); + DesiredCapabilities capabilities = new DesiredCapabilities(); + capabilities.setCapability(CapabilityType.PROXY, proxy); + capabilities.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, jsEnabled); + capabilities.setBrowserName("htmlunit"); + capabilities.setVersion("firefox"); - driver = new HtmlUnitDriver(capabilities); + driver = new HtmlUnitDriver(capabilities); - //Reset form - formIdent = null; + // Reset form + formIdent = null; - // Deal with cookies - for (javax.servlet.http.Cookie c : aTestContext.getCookies()) { - //FIXME Hack for BrowserMob - String domain = c.getDomain(); - if ("localhost".equals(domain)) { - domain = null; - } - if ("".equals(domain)) { - domain = null; - } - Date expiry = null; - if (c.getMaxAge() != -1) { - Calendar cal = Calendar.getInstance(); - cal.add(Calendar.SECOND, c.getMaxAge()); - expiry = cal.getTime(); - } - driver.manage().addCookie( - new org.openqa.selenium.Cookie(c - .getName(), c.getValue(), domain, c.getPath() != null ? c - .getPath() : "", expiry, c.getSecure())); - } - gotoPage(aInitialURL); + // Deal with cookies + for (javax.servlet.http.Cookie c : aTestContext.getCookies()) { + // FIXME Hack for BrowserMob + String domain = c.getDomain(); + if ("localhost".equals(domain)) { + domain = null; + } + if ("".equals(domain)) { + domain = null; + } + Date expiry = null; + if (c.getMaxAge() != -1) { + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.SECOND, c.getMaxAge()); + expiry = cal.getTime(); + } + driver.manage().addCookie( + new org.openqa.selenium.Cookie(c + .getName(), c.getValue(), domain, c.getPath() != null ? c + .getPath() : "", expiry, c.getSecure())); } + gotoPage(aInitialURL); + } - private Proxy startBrowserMobProxy() { - for (int i = 1; i <= TRY_COUNT; i++) { - int port = getRandomPort(); - proxyServer = new ProxyServer(port); - try { - proxyServer.start(); - proxyServer.addResponseInterceptor(new HttpResponseInterceptor() { - public void process(HttpResponse response, HttpContext context) throws HttpException, IOException { - response.setEntity(new BufferedHttpEntity(response.getEntity())); - WebDriverTestingEngineImpl.this.response = response; - } - }); - if (testContext.getRequestHeaders() != null && !testContext.getRequestHeaders().isEmpty()) { - proxyServer.addRequestInterceptor(new HttpRequestInterceptor() { - public void process(HttpRequest request, HttpContext context) throws HttpException, IOException { - for (Map.Entry<String, String> requestHeader : testContext.getRequestHeaders().entrySet()) { - request.addHeader(requestHeader.getKey(), requestHeader.getValue()); - } - } - }); - } - if (StringUtils.isNotBlank(testContext.getUserAgent())) { - proxyServer.addRequestInterceptor(new HttpRequestInterceptor() { - public void process(HttpRequest request, HttpContext context) throws HttpException, IOException { - request.removeHeaders("User-Agent"); - request.addHeader("User-Agent", testContext.getUserAgent()); - } - }); - } - return proxyServer.seleniumProxy(); + private Proxy startBrowserMobProxy() { + for (int i = 1; i <= TRY_COUNT; i++) { + int port = getRandomPort(); + proxyServer = new ProxyServer(port); + try { + proxyServer.start(); + proxyServer.addResponseInterceptor(new ResponseInterceptor() { + + @Override + public void process(BrowserMobHttpResponse response) { + WebDriverTestingEngineImpl.this.response = response; + } + }); + if (testContext.getRequestHeaders() != null && !testContext.getRequestHeaders().isEmpty()) { + proxyServer.addRequestInterceptor(new RequestInterceptor() { + + @Override + public void process(BrowserMobHttpRequest request) { + for (Map.Entry<String, String> requestHeader : testContext.getRequestHeaders().entrySet()) { + request.addRequestHeader(requestHeader.getKey(), requestHeader.getValue()); + } } - catch (Exception e) { - if (i<TRY_COUNT) { - logger.error("Error while starting BrowserMob proxy on port " + port + ". Retry...: " + e.getMessage(), e); - if (e instanceof MultiException) { - Exception e1 = ((MultiException) e).getException(0); - logger.error("First exception: " + e1.getMessage(), e1); - } - continue; - } + }); + } + if (StringUtils.isNotBlank(testContext.getUserAgent())) { + proxyServer.addRequestInterceptor(new RequestInterceptor() { + @Override + public void process(BrowserMobHttpRequest request) { + request.getMethod().removeHeaders("User-Agent"); + request.addRequestHeader("User-Agent", testContext.getUserAgent()); } + }); } - throw new RuntimeException("Unable to start BrowserMob proxy after " + TRY_COUNT + " retries"); - } - - private static int getRandomPort() { - synchronized (RANDOM) { - return DEFAULT_PORT + RANDOM.nextInt(1000); + return proxyServer.seleniumProxy(); + } catch (Exception e) { + if (i < TRY_COUNT) { + logger.error("Error while starting BrowserMob proxy on port " + port + ". Retry...: " + e.getMessage(), e); + if (e instanceof MultiException) { + Exception e1 = ((MultiException) e).getException(0); + logger.error("First exception: " + e1.getMessage(), e1); + } + continue; } + } } + throw new RuntimeException("Unable to start BrowserMob proxy after " + TRY_COUNT + " retries"); + } - public void setTestContext(TestContext testContext) { - this.testContext = testContext; + private static int getRandomPort() { + synchronized (RANDOM) { + return DEFAULT_PORT + RANDOM.nextInt(1000); } + } - public void closeBrowser() throws ExpectedJavascriptAlertException, ExpectedJavascriptConfirmException, ExpectedJavascriptPromptException { - formIdent = null; - if (driver != null) { - driver.quit(); - driver = null; - } - if (proxyServer != null) { - try { - proxyServer.stop(); - proxyServer = null; - } - catch (Exception e) { - logger.error("Error while stopping proxy", e); - throw new RuntimeException("Error while stopping proxy", e); - } - } - } + public void setTestContext(TestContext testContext) { + this.testContext = testContext; + } - public void gotoPage(URL url) throws TestingEngineResponseException { - formIdent = null; - //Big hack for browsermob - String urlStr = url.toString().replace("http://localhost", "http://127.0.0.1"); - driver.get(urlStr); - throwFailingHttpStatusCodeExceptionIfNecessary( - response.getStatusLine().getStatusCode(), urlStr); + public void closeBrowser() throws ExpectedJavascriptAlertException, ExpectedJavascriptConfirmException, ExpectedJavascriptPromptException { + formIdent = null; + if (driver != null) { + driver.quit(); + driver = null; } - - /** - * Copied from {@link WebClient#throwFailingHttpStatusCodeExceptionIfNecessary(WebResponse)} - * - * @param webResponse - */ - private void throwFailingHttpStatusCodeExceptionIfNecessary(int statusCode, String url) { - final boolean successful = (statusCode >= HttpStatus.SC_OK && statusCode < HttpStatus.SC_MULTIPLE_CHOICES) - || statusCode == HttpStatus.SC_USE_PROXY - || statusCode == HttpStatus.SC_NOT_MODIFIED; - if (!this.ignoreFailingStatusCodes && !successful) { - throw new TestingEngineResponseException(statusCode, - "unexpected status code [" + statusCode + "] at URL: [" + url + "]"); - } + if (proxyServer != null) { + try { + proxyServer.stop(); + proxyServer = null; + } catch (Exception e) { + logger.error("Error while stopping proxy", e); + throw new RuntimeException("Error while stopping proxy", e); + } } + } - public void setScriptingEnabled(boolean value) { - // This variable is used to set Javascript before wc is instancied - jsEnabled = value; - if (driver != null && driver instanceof HtmlUnitDriver) { - ((HtmlUnitDriver) driver).setJavascriptEnabled(value); - } - } + public void gotoPage(URL url) throws TestingEngineResponseException { + formIdent = null; + // Big hack for browsermob + String urlStr = url.toString().replace("http://localhost", "http://127.0.0.1"); + driver.get(urlStr); + throwFailingHttpStatusCodeExceptionIfNecessary( + getServerResponseCode(), urlStr); + } - public void setThrowExceptionOnScriptError(boolean value) { - this.throwExceptionOnScriptError = true; + /** + * Copied from {@link WebClient#throwFailingHttpStatusCodeExceptionIfNecessary(WebResponse)} + * + * @param webResponse + */ + private void throwFailingHttpStatusCodeExceptionIfNecessary(int statusCode, String url) { + final boolean successful = (statusCode >= HttpStatus.SC_OK && statusCode < HttpStatus.SC_MULTIPLE_CHOICES) + || statusCode == HttpStatus.SC_USE_PROXY + || statusCode == HttpStatus.SC_NOT_MODIFIED; + if (!this.ignoreFailingStatusCodes && !successful) { + throw new TestingEngineResponseException(statusCode, + "unexpected status code [" + statusCode + "] at URL: [" + url + "]"); } + } - public List<javax.servlet.http.Cookie> getCookies() { - List<javax.servlet.http.Cookie> result = new LinkedList<javax.servlet.http.Cookie>(); - Set<Cookie> cookies = driver.manage().getCookies(); - for (Cookie cookie : cookies) { - javax.servlet.http.Cookie c = new javax.servlet.http.Cookie( - cookie.getName(), cookie.getValue()); - c.setDomain(cookie.getDomain()); - Date expire = cookie.getExpiry(); - if (expire == null) { - c.setMaxAge(-1); - } else { - Date now = Calendar.getInstance().getTime(); - // Convert milli-second to second - Long second = Long.valueOf((expire.getTime() - now.getTime()) / 1000); - c.setMaxAge(second.intValue()); - } - c.setPath(cookie.getPath()); - c.setSecure(cookie.isSecure()); - result.add(c); - } - return result; + public void setScriptingEnabled(boolean value) { + // This variable is used to set Javascript before wc is instancied + jsEnabled = value; + if (driver != null && driver instanceof HtmlUnitDriver) { + ((HtmlUnitDriver) driver).setJavascriptEnabled(value); } + } - public boolean hasWindow(String windowName) { - //Save current handle - String current = driver.getWindowHandle(); - try { - driver.switchTo().window(windowName); - driver.switchTo().window(current); - return true; - } catch (NoSuchWindowException e) { - return false; - } - } + public void setThrowExceptionOnScriptError(boolean value) { + this.throwExceptionOnScriptError = true; + } - public boolean hasWindowByTitle(String windowTitle) { - //Save current handle - String current = driver.getWindowHandle(); - for (String handle : driver.getWindowHandles()) { - driver.switchTo().window(handle); - if (driver.getTitle().equals(windowTitle)) { - driver.switchTo().window(current); - return true; - } - } - driver.switchTo().window(current); - return false; + public List<javax.servlet.http.Cookie> getCookies() { + List<javax.servlet.http.Cookie> result = new LinkedList<javax.servlet.http.Cookie>(); + Set<Cookie> cookies = driver.manage().getCookies(); + for (Cookie cookie : cookies) { + javax.servlet.http.Cookie c = new javax.servlet.http.Cookie( + cookie.getName(), cookie.getValue()); + c.setDomain(cookie.getDomain()); + Date expire = cookie.getExpiry(); + if (expire == null) { + c.setMaxAge(-1); + } else { + Date now = Calendar.getInstance().getTime(); + // Convert milli-second to second + Long second = Long.valueOf((expire.getTime() - now.getTime()) / 1000); + c.setMaxAge(second.intValue()); + } + c.setPath(cookie.getPath()); + c.setSecure(cookie.isSecure()); + result.add(c); } + return result; + } - public void gotoWindow(String windowName) { - driver.switchTo().window(windowName); + public boolean hasWindow(String windowName) { + // Save current handle + String current = driver.getWindowHandle(); + try { + driver.switchTo().window(windowName); + driver.switchTo().window(current); + return true; + } catch (NoSuchWindowException e) { + return false; } + } - public void gotoWindowByTitle(String title) { - //Save current handle - String current = driver.getWindowHandle(); - for (String handle : driver.getWindowHandles()) { - driver.switchTo().window(handle); - if (title.equals(driver.getTitle())) { - return; - } - } + public boolean hasWindowByTitle(String windowTitle) { + // Save current handle + String current = driver.getWindowHandle(); + for (String handle : driver.getWindowHandles()) { + driver.switchTo().window(handle); + if (driver.getTitle().equals(windowTitle)) { driver.switchTo().window(current); - throw new RuntimeException("No window found with title [" + title + "]"); + return true; + } } + driver.switchTo().window(current); + return false; + } - public void gotoWindow(int windowID) { - Set<String> handles = driver.getWindowHandles(); - driver.switchTo().window(handles.toArray(new String[handles.size()])[windowID]); - } + public void gotoWindow(String windowName) { + driver.switchTo().window(windowName); + } - public void gotoRootWindow() { - driver.switchTo().defaultContent(); + public void gotoWindowByTitle(String title) { + // Save current handle + String current = driver.getWindowHandle(); + for (String handle : driver.getWindowHandles()) { + driver.switchTo().window(handle); + if (title.equals(driver.getTitle())) { + return; + } } + driver.switchTo().window(current); + throw new RuntimeException("No window found with title [" + title + "]"); + } - public int getWindowCount() { - return driver.getWindowHandles().size(); - } + public void gotoWindow(int windowID) { + Set<String> handles = driver.getWindowHandles(); + driver.switchTo().window(handles.toArray(new String[handles.size()])[windowID]); + } - public void closeWindow() { - formIdent = null; - driver.close(); - //FIXME Issue 1466 & 2834 - if (getWindowCount() > 0) { - driver.switchTo().window(driver.getWindowHandles().iterator().next()); - } - } + public void gotoRootWindow() { + driver.switchTo().defaultContent(); + } - public boolean hasFrame(String frameNameOrId) { - List<WebElement> frameset = driver.findElements(By.tagName("frame")); - for (WebElement frame : frameset) { - if (frameNameOrId.equals(frame.getAttribute("name")) - || frameNameOrId.equals(frame.getAttribute("id"))) { - return true; - } - } - return false; - } + public int getWindowCount() { + return driver.getWindowHandles().size(); + } - public void gotoFrame(String frameNameOrId) { - driver.switchTo().frame(frameNameOrId); + public void closeWindow() { + formIdent = null; + driver.close(); + // FIXME Issue 1466 & 2834 + if (getWindowCount() > 0) { + driver.switchTo().window(driver.getWindowHandles().iterator().next()); } + } - public void setWorkingForm(int index) { - formIdent = "position()=" + (index + 1); + public boolean hasFrame(String frameNameOrId) { + List<WebElement> frameset = driver.findElements(By.tagName("frame")); + for (WebElement frame : frameset) { + if (frameNameOrId.equals(frame.getAttribute("name")) + || frameNameOrId.equals(frame.getAttribute("id"))) { + return true; + } } + return false; + } - public void setWorkingForm(String nameOrId, int index) { - if (nameOrId != null) { - formIdent = "(@name=" + escapeQuotes(nameOrId) + " or @id=" + escapeQuotes(nameOrId) + ")][position()=" - + (index + 1); - } else { - formIdent = null; - } - } + public void gotoFrame(String frameNameOrId) { + driver.switchTo().frame(frameNameOrId); + } - protected String formSelector() { - if (formIdent == null) { - return "//form"; - } - return "//form[" + formIdent + "]"; - } + public void setWorkingForm(int index) { + formIdent = "position()=" + (index + 1); + } - public boolean hasForm() { - return hasElementByXPath("//form"); + public void setWorkingForm(String nameOrId, int index) { + if (nameOrId != null) { + formIdent = "(@name=" + escapeQuotes(nameOrId) + " or @id=" + escapeQuotes(nameOrId) + ")][position()=" + + (index + 1); + } else { + formIdent = null; } + } - public boolean hasForm(String nameOrID) { - return hasElementByXPath("//form[@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + "]"); + protected String formSelector() { + if (formIdent == null) { + return "//form"; } + return "//form[" + formIdent + "]"; + } - public boolean hasForm(String nameOrID, int index) { - return hasElementByXPath("//form[@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + "][position()=" - + (index + 1) + "]"); - } + public boolean hasForm() { + return hasElementByXPath("//form"); + } - public boolean hasFormParameterNamed(String paramName) { - return getWebElementByXPath("//*[@name=" + escapeQuotes(paramName) + "]", false, true) != null; - } + public boolean hasForm(String nameOrID) { + return hasElementByXPath("//form[@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + "]"); + } - private WebElement getWebElementByXPath(String xpathAfterForm, boolean searchOnlyInCurrentForm, boolean overrideWorkingForm) { - //First try the current form - if (formIdent != null) { - try { - return driver.findElement(By.xpath("//form[" + formIdent + "]" + xpathAfterForm)); - } catch (NoSuchElementException ex) { - if (searchOnlyInCurrentForm) { - return null; - } - } + public boolean hasForm(String nameOrID, int index) { + return hasElementByXPath("//form[@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + "][position()=" + + (index + 1) + "]"); + } + + public boolean hasFormParameterNamed(String paramName) { + return getWebElementByXPath("//*[@name=" + escapeQuotes(paramName) + "]", false, true) != null; + } + + private WebElement getWebElementByXPath(String xpathAfterForm, boolean searchOnlyInCurrentForm, boolean overrideWorkingForm) { + // First try the current form + if (formIdent != null) { + try { + return driver.findElement(By.xpath("//form[" + formIdent + "]" + xpathAfterForm)); + } catch (NoSuchElementException ex) { + if (searchOnlyInCurrentForm) { + return null; } - // not in the current form: try other forms - List<WebElement> forms = driver.findElements(By.tagName("form")); - int index = 0; - for (WebElement f : forms) { - try { - WebElement e = driver.findElement(By.xpath("//form[position()=" + (index + 1) + "]" + xpathAfterForm)); - if (overrideWorkingForm) { - setWorkingForm(index); - } - return e; - } catch (NoSuchElementException ex) { - index ++; - } - } - // now look everywhere (maybe outside of form) - try { - return driver.findElement(By.xpath("//body" + xpathAfterForm)); - } catch (NoSuchElementException ex) { - return null; - } + } } - - private List<WebElement> getWebElementsByXPath(String xpathAfterForm) { - try { - return driver.findElements(By.xpath(formSelector() + xpathAfterForm)); - } catch (NoSuchElementException e) { - return null; + // not in the current form: try other forms + List<WebElement> forms = driver.findElements(By.tagName("form")); + int index = 0; + for (WebElement f : forms) { + try { + WebElement e = driver.findElement(By.xpath("//form[position()=" + (index + 1) + "]" + xpathAfterForm)); + if (overrideWorkingForm) { + setWorkingForm(index); } + return e; + } catch (NoSuchElementException ex) { + index++; + } } - - public String getTextFieldValue(String paramName) { - WebElement e = getTextField(paramName); - return e.getAttribute("value"); + // now look everywhere (maybe outside of form) + try { + return driver.findElement(By.xpath("//body" + xpathAfterForm)); + } catch (NoSuchElementException ex) { + return null; } + } - public String getHiddenFieldValue(String paramName) { - WebElement e = getWebElementByXPath("//input[@type='hidden' and @name=" + escapeQuotes(paramName) + "]", false, true); - return e.getAttribute("value"); + private List<WebElement> getWebElementsByXPath(String xpathAfterForm) { + try { + return driver.findElements(By.xpath(formSelector() + xpathAfterForm)); + } catch (NoSuchElementException e) { + return null; } + } - public void setTextField(String inputName, String text) { - WebElement e = getTextField(inputName); - e.clear(); - e.sendKeys(text); - } + public String getTextFieldValue(String paramName) { + WebElement e = getTextField(paramName); + return e.getAttribute("value"); + } - /** - * Look for any text field (input text, input password, textarea, file input). - */ - private WebElement getTextField(String paramName) { - WebElement e = getWebElementByXPath("//input[@type='text' and @name=" + escapeQuotes(paramName) + "]", false, true); - if (e == null) { - e = getWebElementByXPath("//textarea[@name=" + escapeQuotes(paramName) + "]", false, true); - } - if (e == null) { - e = getWebElementByXPath("//input[@type='file' and @name=" + escapeQuotes(paramName) + "]", false, true); - } - if (e == null) { - e = getWebElementByXPath("//input[@type='password' and @name=" + escapeQuotes(paramName) + "]", false, true); - } - return e; - } + public String getHiddenFieldValue(String paramName) { + WebElement e = getWebElementByXPath("//input[@type='hidden' and @name=" + escapeQuotes(paramName) + "]", false, true); + return e.getAttribute("value"); + } - public void setHiddenField(String inputName, String text) { - WebElement e = getWebElementByXPath("//input[@type='hidden' and @name=" + escapeQuotes(inputName) + "]", false, true); - ((JavascriptExecutor)driver).executeScript("arguments[0].value=" + escapeQuotes(text), e); - } + public void setTextField(String inputName, String text) { + WebElement e = getTextField(inputName); + e.clear(); + e.sendKeys(text); + } - public String[] getSelectOptionValues(String selectName) { - return getSelectOptionValues(selectName, 0); + /** + * Look for any text field (input text, input password, textarea, file input). + */ + private WebElement getTextField(String paramName) { + WebElement e = getWebElementByXPath("//input[@type='text' and @name=" + escapeQuotes(paramName) + "]", false, true); + if (e == null) { + e = getWebElementByXPath("//textarea[@name=" + escapeQuotes(paramName) + "]", false, true); } - - public String[] getSelectOptionValues(String selectName, int index) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - ArrayList<String> result = new ArrayList<String>(); - for (WebElement opt : select.getOptions()) { - result.add(opt.getAttribute("value")); - } - return result.toArray(new String[result.size()]); + if (e == null) { + e = getWebElementByXPath("//input[@type='file' and @name=" + escapeQuotes(paramName) + "]", false, true); } - - public String[] getSelectedOptions(String selectName) { - return getSelectedOptions(selectName, 0); + if (e == null) { + e = getWebElementByXPath("//input[@type='password' and @name=" + escapeQuotes(paramName) + "]", false, true); } + return e; + } - private String[] getSelectedOptions(Select select) { - //FIXME http://code.google.com/p/selenium/issues/detail?id=2295 - String[] result = new String[select.getAllSelectedOptions().size()]; - int i = 0; - for (WebElement opt : select.getAllSelectedOptions()) { - result[i++] = opt.getAttribute("value"); - } - return result; - } + public void setHiddenField(String inputName, String text) { + WebElement e = getWebElementByXPath("//input[@type='hidden' and @name=" + escapeQuotes(inputName) + "]", false, true); + ((JavascriptExecutor) driver).executeScript("arguments[0].value=" + escapeQuotes(text), e); + } - public String[] getSelectedOptions(String selectName, int index) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - return getSelectedOptions(select); - } + public String[] getSelectOptionValues(String selectName) { + return getSelectOptionValues(selectName, 0); + } - private String getSelectOptionValueForLabel(Select select, String label) { - for (WebElement opt : select.getOptions()) { - if (opt.getText().equals(label)) { - return opt.getAttribute("value"); - } - } - throw new RuntimeException("Unable to find option " + label); + public String[] getSelectOptionValues(String selectName, int index) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + ArrayList<String> result = new ArrayList<String>(); + for (WebElement opt : select.getOptions()) { + result.add(opt.getAttribute("value")); } + return result.toArray(new String[result.size()]); + } - private String getSelectOptionLabelForValue(Select select, String value) { - for (WebElement opt : select.getOptions()) { - if (opt.getAttribute("value").equals(value)) { - return opt.getText(); - } - } - throw new RuntimeException("Unable to find option " + value); - } + public String[] getSelectedOptions(String selectName) { + return getSelectedOptions(selectName, 0); + } - public String getSelectOptionLabelForValue(String selectName, String optionValue) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "]", true, true)); - return getSelectOptionLabelForValue(select, optionValue); + private String[] getSelectedOptions(Select select) { + // FIXME http://code.google.com/p/selenium/issues/detail?id=2295 + String[] result = new String[select.getAllSelectedOptions().size()]; + int i = 0; + for (WebElement opt : select.getAllSelectedOptions()) { + result[i++] = opt.getAttribute("value"); } + return result; + } - public String getSelectOptionLabelForValue(String selectName, int index, String optionValue) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - return getSelectOptionLabelForValue(select, optionValue); - } + public String[] getSelectedOptions(String selectName, int index) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + return getSelectedOptions(select); + } - public String getSelectOptionValueForLabel(String selectName, String optionLabel) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "]", true, true)); - return getSelectOptionValueForLabel(select, optionLabel); + private String getSelectOptionValueForLabel(Select select, String label) { + for (WebElement opt : select.getOptions()) { + if (opt.getText().equals(label)) { + return opt.getAttribute("value"); + } } + throw new RuntimeException("Unable to find option " + label); + } - public String getSelectOptionValueForLabel(String selectName, int index, String optionLabel) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - return getSelectOptionValueForLabel(select, optionLabel); + private String getSelectOptionLabelForValue(Select select, String value) { + for (WebElement opt : select.getOptions()) { + if (opt.getAttribute("value").equals(value)) { + return opt.getText(); + } } + throw new RuntimeException("Unable to find option " + value); + } - public void selectOptions(String selectName, String[] optionValues) { - selectOptions(selectName, 0, optionValues); - } + public String getSelectOptionLabelForValue(String selectName, String optionValue) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "]", true, true)); + return getSelectOptionLabelForValue(select, optionValue); + } - public void selectOptions(String selectName, int index, String[] optionValues) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - if (!select.isMultiple() && optionValues.length > 1) - throw new RuntimeException("Multiselect not enabled"); - for (String option : optionValues) { - boolean found = false; - for (WebElement opt : select.getOptions()) { - if (opt.getAttribute("value").equals(option)) { - select.selectByValue(option); - found = true; - break; - } - } - if (!found) { - throw new RuntimeException("Option " + option - + " not found"); - } + public String getSelectOptionLabelForValue(String selectName, int index, String optionValue) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + return getSelectOptionLabelForValue(select, optionValue); + } + + public String getSelectOptionValueForLabel(String selectName, String optionLabel) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "]", true, true)); + return getSelectOptionValueForLabel(select, optionLabel); + } + + public String getSelectOptionValueForLabel(String selectName, int index, String optionLabel) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + return getSelectOptionValueForLabel(select, optionLabel); + } + + public void selectOptions(String selectName, String[] optionValues) { + selectOptions(selectName, 0, optionValues); + } + + public void selectOptions(String selectName, int index, String[] optionValues) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + if (!select.isMultiple() && optionValues.length > 1) + throw new RuntimeException("Multiselect not enabled"); + for (String option : optionValues) { + boolean found = false; + for (WebElement opt : select.getOptions()) { + if (opt.getAttribute("value").equals(option)) { + select.selectByValue(option); + found = true; + break; } + } + if (!found) { + throw new RuntimeException("Option " + option + + " not found"); + } } + } - public void unselectOptions(String selectName, String[] optionValues) { - unselectOptions(selectName, 0, optionValues); - } + public void unselectOptions(String selectName, String[] optionValues) { + unselectOptions(selectName, 0, optionValues); + } - public void unselectOptions(String selectName, int index, String[] optionValues) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - if (!select.isMultiple() && optionValues.length > 1) - throw new RuntimeException("Multiselect not enabled"); - for (String option : optionValues) { - boolean found = false; - for (WebElement opt : select.getOptions()) { - if (opt.getAttribute("value").equals(option)) { - select.deselectByValue(option); - found = true; - break; - } - } - if (!found) { - throw new RuntimeException("Option " + option - + " not found"); - } + public void unselectOptions(String selectName, int index, String[] optionValues) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + if (!select.isMultiple() && optionValues.length > 1) + throw new RuntimeException("Multiselect not enabled"); + for (String option : optionValues) { + boolean found = false; + for (WebElement opt : select.getOptions()) { + if (opt.getAttribute("value").equals(option)) { + select.deselectByValue(option); + found = true; + break; } + } + if (!found) { + throw new RuntimeException("Option " + option + + " not found"); + } } + } - public boolean hasSelectOption(String selectName, String optionLabel) { - return hasSelectOption(selectName, 0, optionLabel); - } + public boolean hasSelectOption(String selectName, String optionLabel) { + return hasSelectOption(selectName, 0, optionLabel); + } - public boolean hasSelectOptionValue(String selectName, String optionValue) { - return hasSelectOptionValue(selectName, 0, optionValue); - } + public boolean hasSelectOptionValue(String selectName, String optionValue) { + return hasSelectOptionValue(selectName, 0, optionValue); + } - public boolean hasSelectOption(String selectName, int index, String optionLabel) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - for (WebElement opt : select.getOptions()) { - if (opt.getText().equals(optionLabel)) { - return true; - } - } - return false; + public boolean hasSelectOption(String selectName, int index, String optionLabel) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + for (WebElement opt : select.getOptions()) { + if (opt.getText().equals(optionLabel)) { + return true; + } } + return false; + } - public boolean hasSelectOptionValue(String selectName, int index, String optionValue) { - Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); - for (WebElement opt : select.getOptions()) { - if (opt.getAttribute("value").equals(optionValue)) { - return true; - } - } - return false; + public boolean hasSelectOptionValue(String selectName, int index, String optionValue) { + Select select = new Select(getWebElementByXPath("//select[@name=" + escapeQuotes(selectName) + "][" + (index + 1) + "]", true, true)); + for (WebElement opt : select.getOptions()) { + if (opt.getAttribute("value").equals(optionValue)) { + return true; + } } + return false; + } - public boolean isCheckboxSelected(String checkBoxName) { - WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + "]", true, true); - return e.isSelected(); - } + public boolean isCheckboxSelected(String checkBoxName) { + WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + "]", true, true); + return e.isSelected(); + } - public boolean isCheckboxSelected(String checkBoxName, String checkBoxValue) { - WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + " and @value=" + escapeQuotes(checkBoxValue) + "]", true, true); - return e.isSelected(); - } + public boolean isCheckboxSelected(String checkBoxName, String checkBoxValue) { + WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + " and @value=" + escapeQuotes(checkBoxValue) + "]", true, true); + return e.isSelected(); + } - public void checkCheckbox(String checkBoxName) { - WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + "]", true, true); - if (!e.isSelected()) { - e.click(); - } + public void checkCheckbox(String checkBoxName) { + WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + "]", true, true); + if (!e.isSelected()) { + e.click(); } + } - public void checkCheckbox(String checkBoxName, String checkBoxValue) { - WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + " and @value=" + escapeQuotes(checkBoxValue) + "]", true, true); - if (!e.isSelected()) { - e.click(); - } + public void checkCheckbox(String checkBoxName, String checkBoxValue) { + WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + " and @value=" + escapeQuotes(checkBoxValue) + "]", true, true); + if (!e.isSelected()) { + e.click(); } + } - public void uncheckCheckbox(String checkBoxName) { - WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + "]", true, true); - if (e.isSelected()) { - e.click(); - } + public void uncheckCheckbox(String checkBoxName) { + WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + "]", true, true); + if (e.isSelected()) { + e.click(); } + } - public void uncheckCheckbox(String checkBoxName, String value) { - WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + " and @value=" + escapeQuotes(value) + "]", true, true); - if (e.isSelected()) { - e.click(); - } + public void uncheckCheckbox(String checkBoxName, String value) { + WebElement e = getWebElementByXPath("//input[@type='checkbox' and @name=" + escapeQuotes(checkBoxName) + " and @value=" + escapeQuotes(value) + "]", true, true); + if (e.isSelected()) { + e.click(); } + } - public void clickRadioOption(String radioGroup, String radioOptionValue) { - WebElement e = getWebElementByXPath("//input[@type='radio' and @name=" + escapeQuotes(radioGroup) + " and @value=" + escapeQuotes(radioOptionValue) + "]", false, true); - e.click(); - } + public void clickRadioOption(String radioGroup, String radioOptionValue) { + WebElement e = getWebElementByXPath("//input[@type='radio' and @name=" + escapeQuotes(radioGroup) + " and @value=" + escapeQuotes(radioOptionValue) + "]", false, true); + e.click(); + } - public boolean hasRadioOption(String radioGroup, String radioOptionValue) { - WebElement e = getWebElementByXPath("//input[@type='radio' and @name=" + escapeQuotes(radioGroup) + " and @value=" + escapeQuotes(radioOptionValue) + "]", false, true); - return e != null; - } + public boolean hasRadioOption(String radioGroup, String radioOptionValue) { + WebElement e = getWebElementByXPath("//input[@type='radio' and @name=" + escapeQuotes(radioGroup) + " and @value=" + escapeQuotes(radioOptionValue) + "]", false, true); + return e != null; + } - public String getSelectedRadio(String radioGroup) { - List<WebElement> radios = getWebElementsByXPath("/input[@type='radio' and @name=" + escapeQuotes(radioGroup) + "]"); - for (WebElement r : radios) { - if (r.isSelected()) { - return r.getAttribute("value"); - } - } - return null; + public String getSelectedRadio(String radioGroup) { + List<WebElement> radios = getWebElementsByXPath("/input[@type='radio' and @name=" + escapeQuotes(radioGroup) + "]"); + for (WebElement r : radios) { + if (r.isSelected()) { + return r.getAttribute("value"); + } } + return null; + } - public boolean hasSubmitButton() { - return (getWebElementByXPath("//input[@type='submit' or @type='image']", true, true) != null) || (getWebElementByXPath("//button[@type='submit']", false, true) != null); - } + public boolean hasSubmitButton() { + return (getWebElementByXPath("//input[@type='submit' or @type='image']", true, true) != null) || (getWebElementByXPath("//button[@type='submit']", false, true) != null); + } - public boolean hasSubmitButton(String nameOrID) { - return (getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(nameOrID) + " or @id=" + nameOrID + ")]", true, true) != null) - || (getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ")]", true, true) != null); - } + public boolean hasSubmitButton(String nameOrID) { + return (getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(nameOrID) + " or @id=" + nameOrID + ")]", true, true) != null) + || (getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ")]", true, true) != null); + } - public boolean hasSubmitButton(String nameOrID, String value) { - return (getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ") and @value=" + escapeQuotes(value) + "]", true, true) != null) - || (getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ") and @value=" + escapeQuotes(value) + "]", true, true) != null); - } + public boolean hasSubmitButton(String nameOrID, String value) { + return (getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ") and @value=" + + escapeQuotes(value) + "]", true, true) != null) + || (getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ") and @value=" + escapeQuotes(value) + "]", + true, true) != null); + } - public void submit() { - WebElement e = getWebElementByXPath("//input[@type='submit' or @type='image']", true, true); - if (e == null) { - e = getWebElementByXPath("//button[@type='submit']", true, true); - } - e.submit(); - throwFailingHttpStatusCodeExceptionIfNecessary( - response.getStatusLine().getStatusCode(), driver.getCurrentUrl()); + public void submit() { + WebElement e = getWebElementByXPath("//input[@type='submit' or @type='image']", true, true); + if (e == null) { + e = getWebElementByXPath("//button[@type='submit']", true, true); } + e.submit(); + throwFailingHttpStatusCodeExceptionIfNecessary( + getServerResponseCode(), driver.getCurrentUrl()); + } - public void submit(String nameOrID) { - WebElement e = getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ")]", true, true); - if (e == null) { - e = getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ")]", true, true); - } - e.submit(); - throwFailingHttpStatusCodeExceptionIfNecessary( - response.getStatusLine().getStatusCode(), driver.getCurrentUrl()); + public void submit(String nameOrID) { + WebElement e = getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ")]", true, true); + if (e == null) { + e = getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(nameOrID) + " or @id=" + escapeQuotes(nameOrID) + ")]", true, true); } + e.submit(); + throwFailingHttpStatusCodeExceptionIfNecessary( + getServerResponseCode(), driver.getCurrentUrl()); + } - public void submit(String buttonName, String buttonValue) { - WebElement e = getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(buttonName) + " or @id=" + escapeQuotes(buttonName) + ") and @value=" + escapeQuotes(buttonValue) + "]", true, true); - if (e == null) { - e = getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(buttonName) + " or @id=" + escapeQuotes(buttonName) + ") and @value=" + escapeQuotes(buttonValue) + "]", true, true); - } - e.submit(); - throwFailingHttpStatusCodeExceptionIfNecessary( - response.getStatusLine().getStatusCode(), driver.getCurrentUrl()); + public void submit(String buttonName, String buttonValue) { + WebElement e = getWebElementByXPath("//input[(@type='submit' or @type='image') and (@name=" + escapeQuotes(buttonName) + " or @id=" + escapeQuotes(buttonName) + + ") and @value=" + escapeQuotes(buttonValue) + "]", true, true); + if (e == null) { + e = getWebElementByXPath("//button[@type='submit' and (@name=" + escapeQuotes(buttonName) + " or @id=" + escapeQuotes(buttonName) + ") and @value=" + + escapeQuotes(buttonValue) ... [truncated message content] |
From: <he...@us...> - 2014-03-17 10:01:03
|
Revision: 970 http://sourceforge.net/p/jwebunit/code/970 Author: henryju Date: 2014-03-17 10:00:59 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Update documentation Modified Paths: -------------- trunk/src/site/xdoc/building-maven.xml trunk/src/site/xdoc/how-to-contribute.xml Modified: trunk/src/site/xdoc/building-maven.xml =================================================================== --- trunk/src/site/xdoc/building-maven.xml 2014-03-17 09:56:31 UTC (rev 969) +++ trunk/src/site/xdoc/building-maven.xml 2014-03-17 10:00:59 UTC (rev 970) @@ -32,14 +32,14 @@ difficult than installing ant. We've included a best practice installation and configuration for Maven. </p> - <subsection name="Installing Sun JDK 1.5"> + <subsection name="Installing Sun JDK 1.6"> <p> - JWebUnit is compiled with JDK 1.5 to ensure compatibility. + JWebUnit is compiled with JDK 1.6 to ensure compatibility. </p> <p> - You need to download and install latest Sun JDK 1.5 for your platform. - Let's say the JDK location is: - <source>/opt/jdk1.5.0_22</source> + You need to download and install latest Sun JDK 1.6 for your platform. + Let's say the JDK location is: + <source>/opt/jdk1.6.0_22</source> </p> </subsection> <subsection name="Installing Maven"> @@ -47,15 +47,15 @@ First you need to download the latest Maven, which currently is <a href="http://maven.apache.org"> - <tt>Maven-3.0</tt> + <tt>Maven-3.2.1</tt> </a> , make sure you download the binary archive - (e.g. apache-maven-3.0-bin.tar.bz2). + (e.g. apache-maven-3.2.1-bin.tar.bz2). </p> <p> Installing Maven should be easy: extract the file to any directory you like, let's say: - <source>/opt/apache-maven-3.0</source> + <source>/opt/apache-maven-3.2.1</source> </p> <p> Next you need to do 2 things: @@ -63,7 +63,7 @@ <li> add an environment variable M2_HOME which points to the install directory of Maven, - i.e. /opt/apache-maven-3.0 + i.e. /opt/apache-maven-3.2.1 </li> <li> add @@ -79,34 +79,6 @@ <tt>mvn -v</tt> </p> </subsection> - <subsection name="Configure Maven toolchains"> - <p> - You can run Maven with any JDK (let's say JDK 1.6) but JWebUnit should be compiled - with JDK 1.5. To achieve this we are using <a href="http://maven.apache.org/guides/mini/guide-using-toolchains.html">Maven toolchains mecanism</a>. - </p> - <p> - Create a file <tt>~/.m2/toolchains.xml</tt> with the given content: - </p> - <source><![CDATA[ -<?xml version="1.0" encoding="UTF8"?> -<toolchains> - <toolchain> - <type>jdk</type> - <provides> - <version>1.5</version> - <vendor>sun</vendor> - <id>1.5</id> - </provides> - <configuration> - <jdkHome>/opt/jdk1.5.0_22</jdkHome> - </configuration> - </toolchain> -</toolchains>]]> - </source> - <p> - You should of course define the correct jdkHome for you. - </p> - </subsection> <subsection name="Using Maven"> <p> Maven defines several goals, for creating and @@ -141,17 +113,17 @@ </subsection> <subsection name="Testing JWebUnit"> <p> - JWebUnit is supported with a suite of test cases, which - ensure that the testing framework works as expected. - These tests are run through Maven by running: + JWebUnit is supported with a suite of test cases, which + ensure that the testing framework works as expected. + These tests are run through Maven by running: <source>mvn test</source> </p> </subsection> <subsection name="Using Eclipse"> <p> - If you are using the <a href="http://www.eclipse.org">Eclipse IDE</a> - to develop the JWebUnit plugin, - you can use <a href="http://m2eclipse.sonatype.org/">m2eclipse</a>. + If you are using the <a href="http://www.eclipse.org">Eclipse IDE</a> + to develop the JWebUnit plugin, + you can use <a href="http://m2eclipse.sonatype.org/">m2eclipse</a>. </p> </subsection> <subsection name="Building Sourceforge upload bundle"> @@ -173,13 +145,6 @@ If you want to test the final assembled site, just hit:</p> <source>mvn site:stage -DstagingDirectory=C:\fullsite</source> <p>You can of course customize the destination folder of the assembled site.</p> - - <p>If it is taking a long time to build the dependencies report of each plugin, - you can disable it by adding the following parameter (<a href="http://www.nabble.com/Skipping-dependency-report-during-Maven2-site-generation-td20116761.html">reference</a>): - <source>-Ddependency.locations.enabled=false</source> - This will disable the generation of dependency locations in the report and may - reduce site generation time significantly. - </p> </subsection> </section> </body> Modified: trunk/src/site/xdoc/how-to-contribute.xml =================================================================== --- trunk/src/site/xdoc/how-to-contribute.xml 2014-03-17 09:56:31 UTC (rev 969) +++ trunk/src/site/xdoc/how-to-contribute.xml 2014-03-17 10:00:59 UTC (rev 970) @@ -54,7 +54,7 @@ First, you need to do your homeworks. Checkout latest code from trunk then try to <a href="building-maven.html">build JWebUnit with Maven</a>. </p> <p> - Please subscribe to the developper mailing-list and tell me what feature you are working on. + Please subscribe to the developper mailing-list and tell what feature you are working on. </p> <p> I will review your first contribution and if it doesn't break anything you will certainly be granted with commit rights (you need a sourceforge account for that). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 09:56:34
|
Revision: 969 http://sourceforge.net/p/jwebunit/code/969 Author: henryju Date: 2014-03-17 09:56:31 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Update to JUnit 4.11 Modified Paths: -------------- trunk/jwebunit-commons-tests/pom.xml trunk/jwebunit-core/pom.xml trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Cell.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Row.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Table.java trunk/jwebunit-htmlunit-plugin/pom.xml trunk/jwebunit-webdriver-plugin/pom.xml trunk/pom.xml trunk/src/changes/changes.xml Modified: trunk/jwebunit-commons-tests/pom.xml =================================================================== --- trunk/jwebunit-commons-tests/pom.xml 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-commons-tests/pom.xml 2014-03-17 09:56:31 UTC (rev 969) @@ -12,7 +12,7 @@ <dependencies> <dependency> <groupId>junit</groupId> - <artifactId>junit-dep</artifactId> + <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.hamcrest</groupId> @@ -38,9 +38,9 @@ <version>2.0.1</version> </dependency> <dependency> - <groupId>com.google.code.tempus-fugit</groupId> - <artifactId>tempus-fugit</artifactId> - <version>1.1</version> + <groupId>com.google.code.tempus-fugit</groupId> + <artifactId>tempus-fugit</artifactId> + <version>1.1</version> </dependency> </dependencies> <properties> Modified: trunk/jwebunit-core/pom.xml =================================================================== --- trunk/jwebunit-core/pom.xml 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-core/pom.xml 2014-03-17 09:56:31 UTC (rev 969) @@ -1,101 +1,101 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <parent> - <artifactId>jwebunit</artifactId> - <groupId>net.sourceforge.jwebunit</groupId> - <version>3.2-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> - </parent> - <modelVersion>4.0.0</modelVersion> - <artifactId>jwebunit-core</artifactId> - <name>Core - API</name> - <description> - The core API of JWebUnit. Define how tests should be written and interface for testing engines. - </description> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit-dep</artifactId> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>regexp</groupId> - <artifactId>regexp</artifactId> - <version>1.3</version> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>2.5</version> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.6</version> - </dependency> - </dependencies> - <properties> - <topDirectoryLocation>..</topDirectoryLocation> - </properties> - <build> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <executions> - <execution> - <id>generate-webtestcase</id> - <phase>generate-sources</phase> - <goals> - <goal>java</goal> - </goals> - <configuration> - <mainClass> - net.sourceforge.jwebunit.javacc.WebTestCaseGenerator - </mainClass> - </configuration> - </execution> - <execution> - <id>generate-jwebunit</id> - <phase>generate-sources</phase> - <goals> - <goal>java</goal> - </goals> - <configuration> - <mainClass> - net.sourceforge.jwebunit.javacc.JWebUnitGenerator - </mainClass> - </configuration> - </execution> - </executions> - <configuration> - <sourceRoot> - ${project.build.directory}/generated-sources/main/java - </sourceRoot> - <arguments> - <argument>${basedir}/src/main/java</argument> - <argument> - ${project.build.directory}/generated-sources/main/java - </argument> - </arguments> - <includePluginDependencies> - true - </includePluginDependencies> - <includeProjectDependencies> - false - </includeProjectDependencies> - </configuration> - <dependencies> - <dependency> - <groupId>net.sourceforge.jwebunit</groupId> - <artifactId>jwebunit-code-generator</artifactId> - <version>${project.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> + <parent> + <artifactId>jwebunit</artifactId> + <groupId>net.sourceforge.jwebunit</groupId> + <version>3.2-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>jwebunit-core</artifactId> + <name>Core - API</name> + <description> + The core API of JWebUnit. Define how tests should be written and interface for testing engines. + </description> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>regexp</groupId> + <artifactId>regexp</artifactId> + <version>1.3</version> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.5</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.6</version> + </dependency> + </dependencies> + <properties> + <topDirectoryLocation>..</topDirectoryLocation> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <executions> + <execution> + <id>generate-webtestcase</id> + <phase>generate-sources</phase> + <goals> + <goal>java</goal> + </goals> + <configuration> + <mainClass> + net.sourceforge.jwebunit.javacc.WebTestCaseGenerator + </mainClass> + </configuration> + </execution> + <execution> + <id>generate-jwebunit</id> + <phase>generate-sources</phase> + <goals> + <goal>java</goal> + </goals> + <configuration> + <mainClass> + net.sourceforge.jwebunit.javacc.JWebUnitGenerator + </mainClass> + </configuration> + </execution> + </executions> + <configuration> + <sourceRoot> + ${project.build.directory}/generated-sources/main/java + </sourceRoot> + <arguments> + <argument>${basedir}/src/main/java</argument> + <argument> + ${project.build.directory}/generated-sources/main/java + </argument> + </arguments> + <includePluginDependencies> + true + </includePluginDependencies> + <includeProjectDependencies> + false + </includeProjectDependencies> + </configuration> + <dependencies> + <dependency> + <groupId>net.sourceforge.jwebunit</groupId> + <artifactId>jwebunit-code-generator</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </build> </project> Modified: trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Cell.java =================================================================== --- trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Cell.java 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Cell.java 2014-03-17 09:56:31 UTC (rev 969) @@ -18,135 +18,134 @@ */ package net.sourceforge.jwebunit.html; -import junit.framework.Assert; - import org.apache.regexp.RE; import org.apache.regexp.RESyntaxException; +import org.junit.Assert; /** * Represents a cell of an html table - a string value spanning an indicated amount of columns. - * + * * @author Jim Weaver * @author Julien Henry */ public class Cell { - private int colspan; + private int colspan; - private int rowspan; + private int rowspan; - private String value; + private String value; - /** - * Construct a cell with a default colspan/rowspan of 1. - * - * @param value text expected within the cell. - */ - public Cell(String value) { - this(value, 1, 1); - } + /** + * Construct a cell with a default colspan/rowspan of 1. + * + * @param value text expected within the cell. + */ + public Cell(String value) { + this(value, 1, 1); + } - /** - * Construct a cell with a specified colspan. - * - * @param value text expected within the cell. - * @param colspan number of columns the cell is expected to span. - * @param rowspan number of rows the cell is expected to span. - */ - public Cell(String value, int colspan, int rowspan) { - this.value = value; - this.colspan = colspan; - this.rowspan = rowspan; - } + /** + * Construct a cell with a specified colspan. + * + * @param value text expected within the cell. + * @param colspan number of columns the cell is expected to span. + * @param rowspan number of rows the cell is expected to span. + */ + public Cell(String value, int colspan, int rowspan) { + this.value = value; + this.colspan = colspan; + this.rowspan = rowspan; + } - /** - * @return the colspan for this cell. - */ - public int getColspan() { - return colspan; - } + /** + * @return the colspan for this cell. + */ + public int getColspan() { + return colspan; + } - /** - * @return the rowspan for this cell. - */ - public int getRowspan() { - return rowspan; - } + /** + * @return the rowspan for this cell. + */ + public int getRowspan() { + return rowspan; + } - /** - * @return the text for the cell. - */ - public final String getValue() { - return value; - } + /** + * @return the text for the cell. + */ + public final String getValue() { + return value; + } - /** - * Assert that the current cell equals given one. Check text, colspan and rowspan. - * - * @param c given cell - */ - public void assertEquals(Cell c) { - Assert.assertTrue(c.getValue() + " do not equal " + this.getValue(), - this.getValue().equals(c.getValue())); - Assert.assertTrue("Expected colspan was " + c.getColspan() - + " but was " + this.getColspan(), this.getColspan() == c - .getColspan()); - Assert.assertTrue("Expected rowspan was " + c.getRowspan() - + " but was " + this.getRowspan(), this.getRowspan() == c - .getRowspan()); - } + /** + * Assert that the current cell equals given one. Check text, colspan and rowspan. + * + * @param c given cell + */ + public void assertEquals(Cell c) { + Assert.assertTrue(c.getValue() + " do not equal " + this.getValue(), + this.getValue().equals(c.getValue())); + Assert.assertTrue("Expected colspan was " + c.getColspan() + + " but was " + this.getColspan(), this.getColspan() == c + .getColspan()); + Assert.assertTrue("Expected rowspan was " + c.getRowspan() + + " but was " + this.getRowspan(), this.getRowspan() == c + .getRowspan()); + } - /** - * Assert that the current cell matches given one. Check colspan and rowspan. Regexp is in text of given cell. - * - * @param c given cell - */ - public void assertMatch(Cell c) { - RE re = getRE(c.getValue()); - Assert.assertTrue(c.getValue() + " do not match " + this.getValue(), re - .match(this.getValue())); - Assert.assertTrue("Expected colspan was " + c.getColspan() - + " but was " + this.getColspan(), this.getColspan() == c - .getColspan()); - Assert.assertTrue("Expected rowspan was " + c.getRowspan() - + " but was " + this.getRowspan(), this.getRowspan() == c - .getRowspan()); - } + /** + * Assert that the current cell matches given one. Check colspan and rowspan. Regexp is in text of given cell. + * + * @param c given cell + */ + public void assertMatch(Cell c) { + RE re = getRE(c.getValue()); + Assert.assertTrue(c.getValue() + " do not match " + this.getValue(), re + .match(this.getValue())); + Assert.assertTrue("Expected colspan was " + c.getColspan() + + " but was " + this.getColspan(), this.getColspan() == c + .getColspan()); + Assert.assertTrue("Expected rowspan was " + c.getRowspan() + + " but was " + this.getRowspan(), this.getRowspan() == c + .getRowspan()); + } - /** - * Check if the current cell contains given text. - * - * @param text given text. - * @return true if the current cell contains given text. - */ - public boolean equals(String text) { - return this.getValue().equals(text); - } + /** + * Check if the current cell contains given text. + * + * @param text given text. + * @return true if the current cell contains given text. + */ + public boolean equals(String text) { + return this.getValue().equals(text); + } - /** - * Check if the current cell matches given text. - * - * @param regexp given regexp. - * @return true if the current cell matches given text. - */ - public boolean match(String regexp) { - RE re = getRE(regexp); - return re.match(this.getValue()); - } + /** + * Check if the current cell matches given text. + * + * @param regexp given regexp. + * @return true if the current cell matches given text. + */ + public boolean match(String regexp) { + RE re = getRE(regexp); + return re.match(this.getValue()); + } - /** - * Create a regexp. - * - * @param regexp regexp pattern - * @return regexp object - */ - private RE getRE(String regexp) { - RE re = null; - try { - re = new RE(regexp, RE.MATCH_SINGLELINE); - } catch (RESyntaxException e) { - Assert.fail(e.toString()); - } - return re; + /** + * Create a regexp. + * + * @param regexp regexp pattern + * @return regexp object + */ + private RE getRE(String regexp) { + RE re = null; + try { + re = new RE(regexp, RE.MATCH_SINGLELINE); + } catch (RESyntaxException e) { + Assert.fail(e.toString()); } + return re; + } } Modified: trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Row.java =================================================================== --- trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Row.java 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Row.java 2014-03-17 09:56:31 UTC (rev 969) @@ -18,95 +18,96 @@ */ package net.sourceforge.jwebunit.html; +import org.junit.Assert; + import java.util.ArrayList; +import java.util.List; -import junit.framework.Assert; - /** * Represents a row of an html table. - * + * * @author Jim Weaver * @author Julien Henry */ public class Row { - private ArrayList cells = new ArrayList();; + private List<Cell> cells = new ArrayList<Cell>(); - public Row() { - } + public Row() { + } - /** - * Construct a row from an array of objects which specify the cells of the row. If an object in the array is an - * {@link net.sourceforge.jwebunit.html.Cell}, it is directly added to the cells of the row, otherwise an - * {@link net.sourceforge.jwebunit.html.Cell} is created from the toString() value of the object and an assumed - * colspan of 1. - * - * @param rowCells objects representing the row's cells. - */ - public Row(Object[] rowCells) { - appendCells(rowCells); - } + /** + * Construct a row from an array of objects which specify the cells of the row. If an object in the array is an + * {@link net.sourceforge.jwebunit.html.Cell}, it is directly added to the cells of the row, otherwise an + * {@link net.sourceforge.jwebunit.html.Cell} is created from the toString() value of the object and an assumed + * colspan of 1. + * + * @param rowCells objects representing the row's cells. + */ + public Row(Object[] rowCells) { + appendCells(rowCells); + } - public void appendCells(Object[] rowCells) { - for (int i = 0; i < rowCells.length; i++) { - Object column = rowCells[i]; - if (column instanceof Cell) { - this.cells.add((Cell) column); - } else { - this.cells.add(new Cell(column.toString())); - } - } + public void appendCells(Object[] rowCells) { + for (int i = 0; i < rowCells.length; i++) { + Object column = rowCells[i]; + if (column instanceof Cell) { + this.cells.add((Cell) column); + } else { + this.cells.add(new Cell(column.toString())); + } } + } - public void appendCell(Cell cell) { - cells.add(cell); - } + public void appendCell(Cell cell) { + cells.add(cell); + } - public void appendCell(String cellText) { - cells.add(new Cell(cellText)); - } + public void appendCell(String cellText) { + cells.add(new Cell(cellText)); + } - public ArrayList getCells() { - return cells; - } + public List<Cell> getCells() { + return cells; + } - public int getCellCount() { - return cells.size(); - } + public int getCellCount() { + return cells.size(); + } - public boolean hasText(String text) { - for (int i = 0; i < getCellCount(); i++) { - Cell c = (Cell) getCells().get(i); - if (c.equals(text)) - return true; - } - return false; + public boolean hasText(String text) { + for (int i = 0; i < getCellCount(); i++) { + Cell c = (Cell) getCells().get(i); + if (c.equals(text)) + return true; } + return false; + } - public boolean hasMatch(String regexp) { - for (int i = 0; i < getCellCount(); i++) { - Cell c = (Cell) getCells().get(i); - if (c.match(regexp)) - return true; - } - return false; + public boolean hasMatch(String regexp) { + for (int i = 0; i < getCellCount(); i++) { + Cell c = (Cell) getCells().get(i); + if (c.match(regexp)) + return true; } + return false; + } - public void assertEquals(Row r) { - Assert.assertTrue("Cell count are not equal", - this.getCells().size() == r.getCells().size()); - for (int i = 0; i < this.getCells().size(); i++) { - ((Cell) this.getCells().get(i)).assertEquals((Cell) r.getCells() - .get(i)); - } + public void assertEquals(Row r) { + Assert.assertTrue("Cell count are not equal", + this.getCells().size() == r.getCells().size()); + for (int i = 0; i < this.getCells().size(); i++) { + ((Cell) this.getCells().get(i)).assertEquals((Cell) r.getCells() + .get(i)); } + } - public void assertMatch(Row r) { - Assert.assertTrue("Cell count are not equal", - this.getCells().size() == r.getCells().size()); - for (int i = 0; i < this.getCells().size(); i++) { - ((Cell) this.getCells().get(i)).assertMatch((Cell) r.getCells() - .get(i)); - } + public void assertMatch(Row r) { + Assert.assertTrue("Cell count are not equal", + this.getCells().size() == r.getCells().size()); + for (int i = 0; i < this.getCells().size(); i++) { + ((Cell) this.getCells().get(i)).assertMatch((Cell) r.getCells() + .get(i)); } + } } Modified: trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Table.java =================================================================== --- trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Table.java 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Table.java 2014-03-17 09:56:31 UTC (rev 969) @@ -18,133 +18,134 @@ */ package net.sourceforge.jwebunit.html; +import org.junit.Assert; + import java.util.ArrayList; +import java.util.List; -import junit.framework.Assert; - /** * Represents an expected table for comparison with an actual html table. - * + * * @author Jim Weaver * @author Julien Henry */ public class Table { - private ArrayList rows = new ArrayList(); + private List<Row> rows = new ArrayList<Row>(); - /** - * Construct a table without providing any contents; they can be appended subsequently. - */ - public Table() { - } + /** + * Construct a table without providing any contents; they can be appended subsequently. + */ + public Table() { + } - /** - * Construct a table from a two dimensional array of objects. Each object's string value will be used with a colspan - * of 1, unless an object is an {@link net.sourceforge.jwebunit.html.Cell}, in which case its defined value and - * colspan are used. - * - * @param values two-dimensional array representing table cells. - */ - public Table(Object[][] values) { - appendRows(values); - } + /** + * Construct a table from a two dimensional array of objects. Each object's string value will be used with a colspan + * of 1, unless an object is an {@link net.sourceforge.jwebunit.html.Cell}, in which case its defined value and + * colspan are used. + * + * @param values two-dimensional array representing table cells. + */ + public Table(Object[][] values) { + appendRows(values); + } - /** - * Append any number of rows, represented by a two dimensional array of objects. Each object's string value will be - * used with a colspan of 1, unless an object is an {@link net.sourceforge.jwebunit.html.Cell}, in which case its - * defined value and colspan are used. - * - * @param newExpectedValues two-dimensional array representing expected table cells. - */ - public void appendRows(Object[][] newExpectedValues) { - for (int i = 0; i < newExpectedValues.length; i++) { - rows.add(new Row(newExpectedValues[i])); - } + /** + * Append any number of rows, represented by a two dimensional array of objects. Each object's string value will be + * used with a colspan of 1, unless an object is an {@link net.sourceforge.jwebunit.html.Cell}, in which case its + * defined value and colspan are used. + * + * @param newExpectedValues two-dimensional array representing expected table cells. + */ + public void appendRows(Object[][] newExpectedValues) { + for (int i = 0; i < newExpectedValues.length; i++) { + rows.add(new Row(newExpectedValues[i])); } + } - /** - * Append another table's rows. - * - * @param table table whose rows are to be appended. - */ - public void appendRows(Table table) { - rows.addAll(table.getRows()); - } + /** + * Append another table's rows. + * + * @param table table whose rows are to be appended. + */ + public void appendRows(Table table) { + rows.addAll(table.getRows()); + } - /** - * Append a single expected row. - * - * @param row row to be appended. - */ - public void appendRow(Row row) { - rows.add(row); - } + /** + * Append a single expected row. + * + * @param row row to be appended. + */ + public void appendRow(Row row) { + rows.add(row); + } - public int getRowCount() { - return getRows().size(); - } + public int getRowCount() { + return getRows().size(); + } - public ArrayList getRows() { - return rows; - } + public List<Row> getRows() { + return rows; + } - public boolean hasText(String text) { - for (int i = 0; i < getRowCount(); i++) { - Row row = (Row) getRows().get(i); - if (row.hasText(text)) - return true; - } - return false; + public boolean hasText(String text) { + for (int i = 0; i < getRowCount(); i++) { + Row row = (Row) getRows().get(i); + if (row.hasText(text)) + return true; } + return false; + } - public boolean hasMatch(String regexp) { - for (int i = 0; i < getRowCount(); i++) { - Row row = (Row) getRows().get(i); - if (row.hasMatch(regexp)) - return true; - } - return false; + public boolean hasMatch(String regexp) { + for (int i = 0; i < getRowCount(); i++) { + Row row = (Row) getRows().get(i); + if (row.hasMatch(regexp)) + return true; } + return false; + } - public void assertEquals(Table t) { - Assert.assertTrue("Row count are not equal", this.getRows().size() == t - .getRows().size()); - for (int i = 0; i < this.getRows().size(); i++) { - ((Row) this.getRows().get(i)) - .assertEquals((Row) t.getRows().get(i)); - } + public void assertEquals(Table t) { + Assert.assertTrue("Row count are not equal", this.getRows().size() == t + .getRows().size()); + for (int i = 0; i < this.getRows().size(); i++) { + ((Row) this.getRows().get(i)) + .assertEquals((Row) t.getRows().get(i)); } + } - public void assertSubTableEquals(int startRow, Table t) { - Table sub = new Table(); - if (startRow + t.getRowCount() > this.getRowCount()) - Assert.fail("Expected rows [" + t.getRowCount() - + "] larger than actual rows in range being compared" - + " [" + (this.getRowCount() - startRow) + "]."); - for (int i = startRow; i < startRow + t.getRowCount(); i++) { - sub.appendRow((Row) this.getRows().get(i)); - } - sub.assertEquals(t); + public void assertSubTableEquals(int startRow, Table t) { + Table sub = new Table(); + if (startRow + t.getRowCount() > this.getRowCount()) + Assert.fail("Expected rows [" + t.getRowCount() + + "] larger than actual rows in range being compared" + + " [" + (this.getRowCount() - startRow) + "]."); + for (int i = startRow; i < startRow + t.getRowCount(); i++) { + sub.appendRow((Row) this.getRows().get(i)); } + sub.assertEquals(t); + } - public void assertMatch(Table t) { - Assert.assertTrue("Row count are not equal", this.getRows().size() == t - .getRows().size()); - for (int i = 0; i < this.getRows().size(); i++) { - ((Row) this.getRows().get(i)).assertMatch((Row) t.getRows().get(i)); - } + public void assertMatch(Table t) { + Assert.assertTrue("Row count are not equal", this.getRows().size() == t + .getRows().size()); + for (int i = 0; i < this.getRows().size(); i++) { + ((Row) this.getRows().get(i)).assertMatch((Row) t.getRows().get(i)); } + } - public void assertSubTableMatch(int startRow, Table t) { - Table sub = new Table(); - if (startRow + t.getRowCount() > this.getRowCount()) - Assert.fail("Expected rows [" + t.getRowCount() - + "] larger than actual rows in range being compared" - + " [" + (this.getRowCount() - startRow) + "]."); - for (int i = startRow; i < startRow + t.getRowCount(); i++) { - sub.appendRow((Row) this.getRows().get(i)); - } - sub.assertMatch(t); + public void assertSubTableMatch(int startRow, Table t) { + Table sub = new Table(); + if (startRow + t.getRowCount() > this.getRowCount()) + Assert.fail("Expected rows [" + t.getRowCount() + + "] larger than actual rows in range being compared" + + " [" + (this.getRowCount() - startRow) + "]."); + for (int i = startRow; i < startRow + t.getRowCount(); i++) { + sub.appendRow((Row) this.getRows().get(i)); } + sub.assertMatch(t); + } } Modified: trunk/jwebunit-htmlunit-plugin/pom.xml =================================================================== --- trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 09:56:31 UTC (rev 969) @@ -12,7 +12,7 @@ <dependencies> <dependency> <groupId>junit</groupId> - <artifactId>junit-dep</artifactId> + <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> Modified: trunk/jwebunit-webdriver-plugin/pom.xml =================================================================== --- trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/jwebunit-webdriver-plugin/pom.xml 2014-03-17 09:56:31 UTC (rev 969) @@ -23,7 +23,7 @@ <dependencies> <dependency> <groupId>junit</groupId> - <artifactId>junit-dep</artifactId> + <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/pom.xml 2014-03-17 09:56:31 UTC (rev 969) @@ -363,8 +363,8 @@ <dependencies> <dependency> <groupId>junit</groupId> - <artifactId>junit-dep</artifactId> - <version>4.10</version> + <artifactId>junit</artifactId> + <version>4.11</version> </dependency> <dependency> <groupId>org.hamcrest</groupId> Modified: trunk/src/changes/changes.xml =================================================================== --- trunk/src/changes/changes.xml 2014-03-17 09:47:12 UTC (rev 968) +++ trunk/src/changes/changes.xml 2014-03-17 09:56:31 UTC (rev 969) @@ -32,6 +32,9 @@ <body> <release version="3.2" date="UNKNOW" description=""> <action type="update" dev="henryju"> + Updated to JUnit 4.11. + </action> + <action type="update" dev="henryju"> Updated to HtmlUnit 2.14. </action> <action type="fix" dev="henryju" issue="3590252" due-to="Kenny MacLeod"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 09:47:16
|
Revision: 968 http://sourceforge.net/p/jwebunit/code/968 Author: henryju Date: 2014-03-17 09:47:12 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Upgrade maven plugins Modified Paths: -------------- trunk/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-03-17 08:41:12 UTC (rev 967) +++ trunk/pom.xml 2014-03-17 09:47:12 UTC (rev 968) @@ -197,7 +197,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> - <version>2.5.1</version> + <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> @@ -211,7 +211,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> - <version>2.3.1</version> + <version>2.5.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -221,27 +221,27 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.12</version> + <version>2.17</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> - <version>2.5</version> + <version>2.6</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> - <version>2.7</version> + <version>2.8.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> - <version>2.1.2</version> + <version>2.2.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> - <version>2.3</version> + <version>2.4</version> <configuration> <attach>false</attach> <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot> @@ -256,14 +256,14 @@ <dependency> <groupId>org.apache.apache.resources</groupId> <artifactId>apache-source-release-assembly-descriptor</artifactId> - <version>1.0.3</version> + <version>1.0.4</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> - <version>2.3.2</version> + <version>2.5</version> <configuration> <autoVersionSubmodules>true</autoVersionSubmodules> <preparationGoals>clean install</preparationGoals> @@ -283,19 +283,19 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> - <version>3.2</version> + <version>3.3</version> <dependencies> <dependency><!-- add support for ssh/scp --> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> - <version>1.0</version> + <version>2.6</version> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> - <version>2.8.1</version> + <version>2.9.1</version> <configuration> <quiet>true</quiet> </configuration> @@ -338,7 +338,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-changes-plugin</artifactId> - <version>2.7.1</version> + <version>2.9</version> <inherited>false</inherited> <executions> <execution> @@ -438,22 +438,6 @@ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-checkstyle-plugin</artifactId> - <version>2.9.1</version> - <configuration> - <configLocation> - ${basedir}/${topDirectoryLocation}/src/checkstyle/jwebunit-checkstyle.xml - </configLocation> - <headerLocation> - ${basedir}/${topDirectoryLocation}/src/checkstyle/header-checkstyle.txt - </headerLocation> - <xrefLocation> - ${project.reporting.outputDirectory}/${topDirectoryLocation}/xref - </xrefLocation> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.12</version> <configuration> @@ -484,16 +468,6 @@ </configuration> </plugin> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>findbugs-maven-plugin</artifactId> - <version>2.5.1</version> - <configuration> - <xrefLocation> - ${project.reporting.outputDirectory}/${topDirectoryLocation}/xref - </xrefLocation> - </configuration> - </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.8.1</version> @@ -538,31 +512,13 @@ </configuration> </plugin> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>taglist-maven-plugin</artifactId> - <version>2.4</version> - <configuration> - <aggregate>true</aggregate> - </configuration> - </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-pmd-plugin</artifactId> - <version>2.7.1</version> - <configuration> - <aggregate>true</aggregate> - <targetJdk>1.5</targetJdk> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>2.4</version> <reportSets> <reportSet> <reports> <report>index</report> - <report>dependencies</report> <report>project-team</report> <report>mailing-list</report> <report>license</report> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-03-17 08:41:20
|
Revision: 967 http://sourceforge.net/p/jwebunit/code/967 Author: henryju Date: 2014-03-17 08:41:12 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Update license header to 2014 Modified Paths: -------------- trunk/LICENSE.txt trunk/jwebunit-code-generator/src/site/site.xml trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ButtonAssertionsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CharsetTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ConcurrentJWebUnitTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsHtmlTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsXHtmlTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsWithLabelTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FramesAndWindowsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HelloWorldTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HtmlParsingTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ImageTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptEventsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NonHtmlContentTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResourceBundleAssertionsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResponseServletTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/SelectOptionsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TableAssertionsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TestContextTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebAssertionsTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebCookieTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/XPathTest.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/CookiesServlet.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HeadersServlet.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HtmlHelper.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/JettySetup.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ParamsServlet.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ResponseServlet.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/MethodInvoker.java trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/StaticMethodInvoker.java trunk/jwebunit-commons-tests/src/main/resources/MessageBundle.properties trunk/jwebunit-commons-tests/src/main/resources/TestContextBundle.properties trunk/jwebunit-commons-tests/src/main/resources/jetty-users.properties trunk/jwebunit-commons-tests/src/main/resources/logback-test.xml trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithOneForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithTwoForms.html trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageHtml.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageXHtml.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/assertButtonWithText.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/noFormPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/testPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxFormWithLabels.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputFileForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputImageForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InvalidActionForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiNamedButtonForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormSimple.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormTricky.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/RadioForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleUnnamedButtonForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit1.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit2.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit3.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/TextAreaForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/BottomFrame.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage1.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage2.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage3.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ContentFrame.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/Frames.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/InlineFrame.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/RootPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/temp.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/InvalidForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/InvalidFormNoDoctype.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/NoDoctype.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/SimpleForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/ValidComplexForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/ValidFormNoDoctype.html trunk/jwebunit-commons-tests/src/main/resources/testcases/HtmlTest/XhtmlStrict.html trunk/jwebunit-commons-tests/src/main/resources/testcases/IElementTest/template.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ImageTest/PageWithImages.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ImageTest/somedir/AnotherPageWithImages.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptEventsTest/FormOnSubmit.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptEventsTest/FormOnSubmitSetTarget.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptEventsTest/index.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptEventsTest/nav.js trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptEventsTest/next.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptEventsTest/onchange.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/Alert.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/Confirm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/DocumentWrite.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/MultipleAlerts.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/Prompt.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/prototype-1.6.0.3.js trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/prototype.html trunk/jwebunit-commons-tests/src/main/resources/testcases/JavaScriptTest/userAgent.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/blah.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithAmpersandInLink.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithLink.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithLinkWithTextAfterText.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/targetPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/targetPage2.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/test1.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/test2.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/test3.html trunk/jwebunit-commons-tests/src/main/resources/testcases/NonHtmlContentTest/text.txt trunk/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/redirect.html trunk/jwebunit-commons-tests/src/main/resources/testcases/RedirectionTest/redirected.html trunk/jwebunit-commons-tests/src/main/resources/testcases/RefreshHandlerTest/testPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ResourceBundleAssertionsTest/testPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/ResponseServletTest/SimpleForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/SelectOptionsTest/pageWithOneForm.html trunk/jwebunit-commons-tests/src/main/resources/testcases/SelectOptionsTest/pageWithOneFormMulti.html trunk/jwebunit-commons-tests/src/main/resources/testcases/SelectOptionsTest/pageWithTwoForms.html trunk/jwebunit-commons-tests/src/main/resources/testcases/SelectOptionsTest/pageWithTwoFormsMulti.html trunk/jwebunit-commons-tests/src/main/resources/testcases/TableAssertionsTest/TableAssertionsTestPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/TestContextTest/testPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/WEB-INF/web.xml trunk/jwebunit-commons-tests/src/main/resources/testcases/WebAssertionsTest/testPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/XPathTest/next.html trunk/jwebunit-commons-tests/src/main/resources/testcases/XPathTest/testPage.html trunk/jwebunit-commons-tests/src/main/resources/testcases/helloworld.html trunk/jwebunit-commons-tests/src/site/site.xml trunk/jwebunit-commons-tests/src/test/java/net/sourceforge/jwebunit/tests/util/reflect/MethodInvokerTest.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/HttpHeader.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/IElement.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/ITestingEngine.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/ElementNotFoundException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/ExpectedJavascriptAlertException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/ExpectedJavascriptConfirmException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/ExpectedJavascriptPromptException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/TestingEngineRegistryException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/TestingEngineResponseException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/UnableToSetFormException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/UnexpectedJavascriptAlertException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/UnexpectedJavascriptConfirmException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/exception/UnexpectedJavascriptPromptException.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Cell.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Row.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/html/Table.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/javascript/JavascriptAlert.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/javascript/JavascriptConfirm.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/javascript/JavascriptPrompt.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/util/TestContext.java trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/util/TestingEngineRegistry.java trunk/jwebunit-core/src/site/site.xml trunk/jwebunit-core/src/test/java/net/sourceforge/jwebunit/TableTest.java trunk/jwebunit-core/src/test/java/net/sourceforge/jwebunit/junit/WebTesterTest.java trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitElementImpl.java trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java trunk/jwebunit-htmlunit-plugin/src/site/site.xml trunk/jwebunit-htmlunit-plugin/src/site/xdoc/index.xml trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImplTest.java trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/RefreshHandlerTest.java trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/FixedHtmlUnitDriver.java trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverElementImpl.java trunk/jwebunit-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverTestingEngineImpl.java trunk/jwebunit-webdriver-plugin/src/site/site.xml trunk/jwebunit-webdriver-plugin/src/site/xdoc/index.xml trunk/jwebunit-webdriver-plugin/src/test/java/net/sourceforge/jwebunit/webdriver/JWebUnitTest.java trunk/src/assemble/release.xml trunk/src/changes/changes.xml trunk/src/checkstyle/header-checkstyle.txt trunk/src/checkstyle/jwebunit-checkstyle.xml trunk/src/license/header.txt trunk/src/site/fml/faq.fml trunk/src/site/resources/style/project.css trunk/src/site/site.xml trunk/src/site/xdoc/articles.xml trunk/src/site/xdoc/building-maven.xml trunk/src/site/xdoc/how-to-contribute.xml trunk/src/site/xdoc/how-to-release.xml trunk/src/site/xdoc/index.xml trunk/src/site/xdoc/installation.xml trunk/src/site/xdoc/migration.xml trunk/src/site/xdoc/quickstart.xml Modified: trunk/LICENSE.txt =================================================================== --- trunk/LICENSE.txt 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/LICENSE.txt 2014-03-17 08:41:12 UTC (rev 967) @@ -2,7 +2,7 @@ /******************************************************************************** * JWebUnit, simplified web testing API - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * http://jwebunit.sourceforge.net * * JWebUnit is free software: you can redistribute it and/or modify @@ -17,5 +17,5 @@ * * You should have received a copy of the GNU Lesser General Public License * along with JWebUnit. If not, see <http://www.gnu.org/licenses/>. - + ********************************************************************************/ Modified: trunk/jwebunit-code-generator/src/site/site.xml =================================================================== --- trunk/jwebunit-code-generator/src/site/site.xml 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-code-generator/src/site/site.xml 2014-03-17 08:41:12 UTC (rev 967) @@ -1,7 +1,7 @@ <?xml version="1.0"?> <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ButtonAssertionsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ButtonAssertionsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ButtonAssertionsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CharsetTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CharsetTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CharsetTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ConcurrentJWebUnitTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ConcurrentJWebUnitTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ConcurrentJWebUnitTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CustomTesterTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsHtmlTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsHtmlTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsHtmlTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsXHtmlTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsXHtmlTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ExpectedTableAssertionsXHtmlTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsWithLabelTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsWithLabelTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormAssertionsWithLabelTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * 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 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FramesAndWindowsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FramesAndWindowsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FramesAndWindowsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HelloWorldTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HelloWorldTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HelloWorldTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HtmlParsingTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HtmlParsingTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/HtmlParsingTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/IElementTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ImageTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ImageTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ImageTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JWebUnitAPITestCase.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptEventsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptEventsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptEventsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/JavaScriptTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NonHtmlContentTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NonHtmlContentTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NonHtmlContentTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/RedirectionTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResourceBundleAssertionsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResourceBundleAssertionsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResourceBundleAssertionsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResponseServletTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResponseServletTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ResponseServletTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/SelectOptionsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/SelectOptionsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/SelectOptionsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TableAssertionsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TableAssertionsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TableAssertionsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TestContextTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TestContextTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/TestContextTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebAssertionsTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebAssertionsTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebAssertionsTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebCookieTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebCookieTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/WebCookieTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/XPathTest.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/XPathTest.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/XPathTest.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/CookiesServlet.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/CookiesServlet.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/CookiesServlet.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HeadersServlet.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HeadersServlet.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HeadersServlet.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HtmlHelper.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HtmlHelper.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/HtmlHelper.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/JettySetup.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/JettySetup.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/JettySetup.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ParamsServlet.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ParamsServlet.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ParamsServlet.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/RedirectServlet.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ResponseServlet.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ResponseServlet.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/ResponseServlet.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/MethodInvoker.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/MethodInvoker.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/MethodInvoker.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/StaticMethodInvoker.java =================================================================== --- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/StaticMethodInvoker.java 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/reflect/StaticMethodInvoker.java 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ /** - * Copyright (c) 2002-2012, JWebUnit team. + * Copyright (c) 2002-2014, JWebUnit team. * * This file is part of JWebUnit. * Modified: trunk/jwebunit-commons-tests/src/main/resources/MessageBundle.properties =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/MessageBundle.properties 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/MessageBundle.properties 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ # -# Copyright (c) 2002-2012, JWebUnit team. +# Copyright (c) 2002-2014, JWebUnit team. # # This file is part of JWebUnit. # Modified: trunk/jwebunit-commons-tests/src/main/resources/TestContextBundle.properties =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/TestContextBundle.properties 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/TestContextBundle.properties 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ # -# Copyright (c) 2002-2012, JWebUnit team. +# Copyright (c) 2002-2014, JWebUnit team. # # This file is part of JWebUnit. # Modified: trunk/jwebunit-commons-tests/src/main/resources/jetty-users.properties =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/jetty-users.properties 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/jetty-users.properties 2014-03-17 08:41:12 UTC (rev 967) @@ -1,5 +1,5 @@ # -# Copyright (c) 2002-2012, JWebUnit team. +# Copyright (c) 2002-2014, JWebUnit team. # # This file is part of JWebUnit. # Modified: trunk/jwebunit-commons-tests/src/main/resources/logback-test.xml =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/logback-test.xml 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/logback-test.xml 2014-03-17 08:41:12 UTC (rev 967) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithOneForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithOneForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithOneForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithTwoForms.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithTwoForms.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/ButtonAssertionsTest/pageWithTwoForms.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/CustomTesterTest/test.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageHtml.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageHtml.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageHtml.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageXHtml.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageXHtml.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/ExpectedTableAssertionsTest/TableAssertionsTestPageXHtml.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/assertButtonWithText.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/assertButtonWithText.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/assertButtonWithText.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/noFormPage.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/noFormPage.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/noFormPage.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/testPage.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/testPage.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormAssertionsTest/testPage.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxFormWithLabels.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxFormWithLabels.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/CheckboxFormWithLabels.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputFileForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputFileForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputFileForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputImageForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputImageForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InputImageForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InvalidActionForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InvalidActionForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/InvalidActionForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiFormPage.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiNamedButtonForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiNamedButtonForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/MultiNamedButtonForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormSimple.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormSimple.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormSimple.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormTricky.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormTricky.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/QueryFormTricky.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/RadioForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/RadioForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/RadioForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleNamedButtonForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleUnnamedButtonForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleUnnamedButtonForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/SingleUnnamedButtonForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit1.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit1.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit1.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit2.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit2.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit2.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit3.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit3.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/Submit3.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/TextAreaForm.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/TextAreaForm.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FormSubmissionTest/TextAreaForm.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/BottomFrame.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/BottomFrame.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/BottomFrame.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage1.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage1.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage1.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage2.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage2.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage2.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage3.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage3.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ChildPage3.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ContentFrame.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ContentFrame.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/ContentFrame.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/Frames.html =================================================================== --- trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/Frames.html 2014-03-17 08:38:29 UTC (rev 966) +++ trunk/jwebunit-commons-tests/src/main/resources/testcases/FramesAndWindowsTest/Frames.html 2014-03-17 08:41:12 UTC (rev 967) @@ -1,6 +1,6 @@ <!-- - Copyright (c) 2002-2012, JWebUnit team. + Copyright (c) 2002-2014, JWebUnit team. This file is part of JWebUnit. Modified: trunk/jwebunit-comm... [truncated message content] |
From: <he...@us...> - 2014-03-17 08:38:33
|
Revision: 966 http://sourceforge.net/p/jwebunit/code/966 Author: henryju Date: 2014-03-17 08:38:29 +0000 (Mon, 17 Mar 2014) Log Message: ----------- Update to HtmlUnit 2.14 Modified Paths: -------------- trunk/jwebunit-htmlunit-plugin/pom.xml trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java trunk/src/changes/changes.xml Modified: trunk/jwebunit-htmlunit-plugin/pom.xml =================================================================== --- trunk/jwebunit-htmlunit-plugin/pom.xml 2012-11-27 16:00:24 UTC (rev 965) +++ trunk/jwebunit-htmlunit-plugin/pom.xml 2014-03-17 08:38:29 UTC (rev 966) @@ -17,18 +17,18 @@ </dependency> <dependency> <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> + <artifactId>mockito-core</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> - <version>2.11</version> + <version>2.14</version> <exclusions> - <exclusion> - <artifactId>commons-logging</artifactId> - <groupId>commons-logging</groupId> - </exclusion> + <exclusion> + <artifactId>commons-logging</artifactId> + <groupId>commons-logging</groupId> + </exclusion> </exclusions> </dependency> <dependency> 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 2012-11-27 16:00:24 UTC (rev 965) +++ trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java 2014-03-17 08:38:29 UTC (rev 966) @@ -169,7 +169,7 @@ /** * The default browser version. */ - private BrowserVersion defaultBrowserVersion = BrowserVersion.FIREFOX_3_6; + private BrowserVersion defaultBrowserVersion = BrowserVersion.FIREFOX_24; /** * Should we ignore failing status codes? @@ -836,12 +836,12 @@ * The user agent string is now provided by default to new test cases. * It can still be overridden if testContext.getUserAgent() is not * null (i.e. has been set manually.) - * + * * @author Jevon */ BrowserVersion bv; if (testContext.getUserAgent() != null) { - bv = BrowserVersion.FIREFOX_3_6; + bv = BrowserVersion.FIREFOX_24; bv.setUserAgent(testContext.getUserAgent()); } else { bv = defaultBrowserVersion; // use default (which includes a full UserAgent string) @@ -2381,7 +2381,7 @@ /* * (non-Javadoc) - * + * * @see net.sourceforge.jwebunit.api.ITestingEngine#getElementByXPath(java.lang.String) */ @Override @@ -2395,7 +2395,7 @@ /* * (non-Javadoc) - * + * * @see net.sourceforge.jwebunit.api.ITestingEngine#getElementByID(java.lang.String) */ @Override @@ -2409,7 +2409,7 @@ /* * (non-Javadoc) - * + * * @see net.sourceforge.jwebunit.api.ITestingEngine#getElementsByXPath(java.lang.String) */ @Override @@ -2425,7 +2425,7 @@ /* * (non-Javadoc) - * + * * @see net.sourceforge.jwebunit.api.ITestingEngine#getServerResponseCode() */ @Override @@ -2453,7 +2453,7 @@ /* * (non-Javadoc) - * + * * @see net.sourceforge.jwebunit.api.ITestingEngine#getHeader(java.lang.String) */ @Override @@ -2463,7 +2463,7 @@ /* * (non-Javadoc) - * + * * @see net.sourceforge.jwebunit.api.ITestingEngine#getAllHeaders() */ @Override Modified: trunk/src/changes/changes.xml =================================================================== --- trunk/src/changes/changes.xml 2012-11-27 16:00:24 UTC (rev 965) +++ trunk/src/changes/changes.xml 2014-03-17 08:38:29 UTC (rev 966) @@ -31,6 +31,9 @@ </properties> <body> <release version="3.2" date="UNKNOW" description=""> + <action type="update" dev="henryju"> + Updated to HtmlUnit 2.14. + </action> <action type="fix" dev="henryju" issue="3590252" due-to="Kenny MacLeod"> Assert form is present before really calling setWorkingForm(String nameOrId, int index). </action> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2012-11-27 16:03:33
|
Bugs item #3570132, was opened at 2012-09-20 08:21 Message generated for change (Settings changed) made by henryju You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497982&aid=3570132&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core API Group: None >Status: Closed >Resolution: Works For Me Priority: 5 Private: No Submitted By: Sebastian (sebastian2303) >Assigned to: Nobody/Anonymous (nobody) Summary: assertLinkPresentWithText() didot find the link Initial Comment: I tried to click a link which is present on the page response, but Jwebunit did not find the link. Tried other options (assertLinkPresentWithExactText()), did not work. This is the HTML source captured using getPageSource(). =================================================================================================================== <div class="ft"> <p> <a href="DacView.do" rel="action" target="_self" title="Click here to deactivate your online account">Deactivate Online Account</a> </p> </div> =================================================================================================================== Here are the couple of lines of Jwebunit code. assertLinkPresentWithText(submit.getName()); clickLinkWithText(submit.getName()); ---------------------------------------------------------------------- >Comment By: Julien HENRY (henryju) Date: 2012-11-27 08:03 Message: Please reopen with a reproducible test case. ---------------------------------------------------------------------- Comment By: Julien HENRY (henryju) Date: 2012-09-21 01:54 Message: Hi, Do you know if the HTML fragment containing your link is added dynamically to the page (using AJAX)? What is the version of JWebUnit you are using? Can you try with something like: clickElementByXPath("//a[@href='DacView.do']"); ---------------------------------------------------------------------- Comment By: Sebastian (sebastian2303) Date: 2012-09-20 08:25 Message: Please ignore the JwebUnit code above. Here are the couple of lines of Jwebunit code. assertLinkPresentWithText("Deactivate Online Account"); clickLinkWithText("Deactivate Online Account")); ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497982&aid=3570132&group_id=61302 |
From: <he...@us...> - 2012-11-27 16:00:36
|
Revision: 965 http://jwebunit.svn.sourceforge.net/jwebunit/?rev=965&view=rev Author: henryju Date: 2012-11-27 16:00:24 +0000 (Tue, 27 Nov 2012) Log Message: ----------- [3590256] Relax visibility of some methods in HtmlUnit plugin Modified Paths: -------------- trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java 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 2012-11-27 15:57:02 UTC (rev 964) +++ trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java 2012-11-27 16:00:24 UTC (rev 965) @@ -1120,7 +1120,7 @@ * response. * @return HtmlForm object representing the current active form from the response. */ - private HtmlForm getForm() { + protected HtmlForm getForm() { if (form == null) { if (hasForm()) { setWorkingForm(getForm(0)); @@ -1174,7 +1174,7 @@ return page.getForms(); } - private HtmlPage getCurrentPage() { + protected HtmlPage getCurrentPage() { Page page = win.getEnclosedPage(); if (page instanceof HtmlPage) { return (HtmlPage) page; @@ -2336,7 +2336,7 @@ /** * @return Returns the testContext. */ - private TestContext getTestContext() { + protected TestContext getTestContext() { return testContext; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2012-11-27 16:00:23
|
Patches item #3590256, was opened at 2012-11-26 18:53 Message generated for change (Settings changed) made by henryju You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590256&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: HtmlUnit >Group: Release 3.2 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Kenny MacLeod (skaffman) >Assigned to: Julien HENRY (henryju) Summary: Expose some protected methods of HtmlUnitTestingEngine Initial Comment: I have a custom subclass of HtmlUnitTestingEngineImpl to modify its behaviour slightly, and this needs access to some methods which are currently private, and have to be accessed via reflection. It would be much nicer if they were protected instead of private. The methods are: getTestContext getForm getCurrentPage See attached patch to do this. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590256&group_id=61302 |
From: <he...@us...> - 2012-11-27 15:57:15
|
Revision: 964 http://jwebunit.svn.sourceforge.net/jwebunit/?rev=964&view=rev Author: henryju Date: 2012-11-27 15:57:02 +0000 (Tue, 27 Nov 2012) Log Message: ----------- [3590252] Assert form is present before call of setWorkingForm(nameOrId, index) Modified Paths: -------------- trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java 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-webdriver-plugin/src/main/java/net/sourceforge/jwebunit/webdriver/WebDriverTestingEngineImpl.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 2012-11-27 15:39:46 UTC (rev 963) +++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/FormSubmissionTest.java 2012-11-27 15:57:02 UTC (rev 964) @@ -18,6 +18,8 @@ */ package net.sourceforge.jwebunit.tests; +import junit.framework.AssertionFailedError; + import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; @@ -32,10 +34,10 @@ /** * Test form submission related methods of WebTestCase. - * + * * If there is more than one submit button on a page, WebTestCase / httpunit * require indication of which button to submit with prior to form submission. - * + * * @author Jim Weaver */ public class FormSubmissionTest extends JWebUnitAPITestCase { @@ -94,7 +96,7 @@ //The following depend on the browser: IE send full path (i.e. temp.getAbsolutePath()) but FF send only file name. assertTextPresent("file=[" + temp.getName() + "{abcdefgh}]"); } - + @Test public void testSubmitImageInput() { beginAt("/InputImageForm.html"); @@ -158,22 +160,22 @@ submit(); assertTextPresent("color=[blue]"); } - + @Test public void testRadioSelection() { - beginAt("/RadioForm.html"); - clickRadioOption("radio", "1"); - assertRadioOptionSelected("radio", "1"); - submit(); - assertTextPresent("radio=[1]"); - clickLink("return"); - clickRadioOption("radio", "2"); - clickRadioOption("radio", "3"); - assertRadioOptionNotSelected("radio", "1"); - assertRadioOptionNotSelected("radio", "2"); - assertRadioOptionSelected("radio", "3"); - submit(); - assertTextPresent("radio=[3]"); + beginAt("/RadioForm.html"); + clickRadioOption("radio", "1"); + assertRadioOptionSelected("radio", "1"); + submit(); + assertTextPresent("radio=[1]"); + clickLink("return"); + clickRadioOption("radio", "2"); + clickRadioOption("radio", "3"); + assertRadioOptionNotSelected("radio", "1"); + assertRadioOptionNotSelected("radio", "2"); + assertRadioOptionSelected("radio", "3"); + submit(); + assertTextPresent("radio=[3]"); } @Test @@ -259,14 +261,20 @@ assertSubmitButtonPresent("myInput2"); } + @Test(expected=AssertionError.class) + public void testSetWorkingFormWithIndexPresent() { + beginAt("/MultiFormPage.html"); + setWorkingForm("dontExists", 2); + } + @Test public void testInvalidButton() { beginAt("/InvalidActionForm.html"); try { - submit("button1"); - fail("A TestingEngineResponseException was expected."); + submit("button1"); + fail("A TestingEngineResponseException was expected."); } catch (TestingEngineResponseException e) { - assertEquals(404, e.getHttpStatusCode()); + assertEquals(404, e.getHttpStatusCode()); } } @@ -325,7 +333,7 @@ private void gotoMultiButtonPage() { beginAt("/MultiNamedButtonForm.html"); } - + @Test public void testCachedForm() { beginAt("/Submit1.html"); @@ -335,7 +343,7 @@ submit(); assertTextPresent("Page 3"); } - + /** * Submit input */ @@ -347,7 +355,7 @@ assertTextPresent("Submitted parameters"); assertTextPresent("color=[blue]"); } - + @Test public void testSetHiddenField() { beginAt("/SingleNamedButtonForm.html"); 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 2012-11-27 15:39:46 UTC (rev 963) +++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/api/ITestingEngine.java 2012-11-27 15:57:02 UTC (rev 964) @@ -37,7 +37,7 @@ /** * This is the interface for all communications between JWebUnit and the specific running test engine. - * + * * @author Julien Henry * @author Nick Neuberger */ @@ -45,7 +45,7 @@ /** * Open the browser at an initial URL. - * + * * @param aInitialURL Initial URL * @param aTestContext Test context * @throws TestingEngineResponseException If something bad happend (404) @@ -55,7 +55,7 @@ /** * Close the browser and check if there is no pending Javascript alert, confirm or prompt. - * + * * @throws ExpectedJavascriptAlertException If there is pending Javascript alert * {@link ITestingEngine#setExpectedJavaScriptAlert(JavascriptAlert[])} * @throws ExpectedJavascriptConfirmException If there is pending Javascript confirm @@ -69,36 +69,36 @@ /** * Simulate user typing a new URL in the browser. - * + * * @param url Full URL of the page. * @throws TestingEngineResponseException If something bad happend (404) */ void gotoPage(URL url) throws TestingEngineResponseException; - + /** * Enable or disable Javascript support. - * + * * @param value true to enable Javascript. */ void setScriptingEnabled(boolean value); /** * Set whether or not to throw an exception on Javascript errors. - * + * * @param value true to throw an exception on Javascript errors. */ void setThrowExceptionOnScriptError(boolean value); /** * Get all cookies. - * + * * @return List of javax.servlet.http.Cookie. */ List<?> getCookies(); /** * Test if the window with the given name is present. - * + * * @param windowName Name of the window. * @return true if the Window exists. */ @@ -106,7 +106,7 @@ /** * Test if window with the given title is present. - * + * * @param windowTitle Title of the window. * @return true if the Window exists. */ @@ -114,21 +114,21 @@ /** * Make the window with the given name active. - * + * * @param windowName Name of the window */ void gotoWindow(String windowName); /** * Goto first window with the given title. - * + * * @param title Title of the window */ void gotoWindowByTitle(String title); /** * Goto window with the given Javascript ID. - * + * * @param windowID Javascript ID of the window * @deprecated Javascript ID does'nt not exists. Currently this is an index * in the list of available windows, but this is not portable (and probably not stable). @@ -139,26 +139,26 @@ /** * Make the root window active. Used to reset the effect of {@link ITestingEngine#gotoFrame(String)}. - * + * */ void gotoRootWindow(); /** * Get the number of opened Windows. - * + * * @return Number of opened Windows. */ int getWindowCount(); /** * Close the current window. - * + * */ void closeWindow(); /** * Test if the given frame is present. - * + * * @param frameNameOrId Name or ID of the frame. ID is checked first. * @return true if the frame exists. */ @@ -166,14 +166,14 @@ /** * Make the frame with the given name or ID active in the current conversation. - * + * * @param frameNameOrId Name or ID of the frame. ID is checked first. */ void gotoFrame(String frameNameOrId); /** * Set the form on the current page that the client wishes to work with explicitly by index in the page. - * + * * @param index The 0-based index, when more than one form with the same name is expected. */ void setWorkingForm(int index); @@ -181,7 +181,7 @@ /** * Set the form on the current page that the client wishes to work with explicitly by either the form name or id * (match by id is attempted first). - * + * * @param nameOrId name or id of the form to be worked with. * @param index The 0-based index, when more than one form with the same name is expected. */ @@ -189,22 +189,31 @@ /** * Check whether the current page contains a form. - * + * * @return true if there is at least a form. */ boolean hasForm(); /** * Return true if the current page contains a specific form. - * + * * @param nameOrID name of id of the form to check for. * @return true if there is at least a form. */ boolean hasForm(String nameOrID); /** + * Return true if the current page contains a specific form. + * + * @param nameOrID name of id of the form to check for. + * @param index The 0-based index, when more than one form with the same name is expected. + * @return true if there is at least a form. + */ + boolean hasForm(String nameOrID, int index); + + /** * Return true if a form input element is present on the current form. - * + * * @param paramName name of the input element to check for * @return true if there is at least a form parameter. */ @@ -213,7 +222,7 @@ /** * Return the current value of a text field with name <code>paramName</code>. Text fields are input text, input * password and textarea - * + * * @param paramName name of the text field element. * @return Text content of the text field. */ @@ -221,7 +230,7 @@ /** * Return the current value of a hidden input element with name <code>paramName</code>. - * + * * @param paramName name of the hidden input element. * @return Value of the hidden input. */ @@ -229,15 +238,15 @@ /** * Fill a text, password or textarea field with the provided text. - * + * * @param inputName name of the text, password or textarea element * @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. */ @@ -245,9 +254,9 @@ /** * Return a string array of select box option values. - * + * * Exemple: <br/> - * + * * <code> * <FORM action="http://my_host/doit" method="post"> * <P> @@ -263,18 +272,18 @@ * </P> * </FORM> * </code> - * + * * Should return [Component_1_a, Component_1_b, Component_3, Component_4, Component_5] - * + * * @param selectName name of the select box. * @return Array of select options values. */ String[] getSelectOptionValues(String selectName); - + /** * Return a string array of option values for the Nth select box * with the specified name. - * + * * @param selectName name of the select box. * @param index the 0-based index used when more than one select with * the same name is expected. @@ -284,7 +293,7 @@ /** * Return the values of the currently selected items in a select box. - * + * * @param selectName name of the select box. */ String[] getSelectedOptions(String selectName); @@ -292,17 +301,17 @@ /** * Return the values of the currently selected items in the Nth select box * with the provided name. - * + * * @param selectName name of the select box. * @param index the 0-based index used when more than one select with * the same name is expected. */ String[] getSelectedOptions(String selectName, int index); - + /** * Get the label for a given option of a select box. - * + * * @param selectName name of the select box. * @param optionValue label of the option. */ @@ -311,7 +320,7 @@ /** * Get the label for a given option of the Nth select box with the * specified name. - * + * * @param selectName name of the select box. * @param index the 0-based index used when more than one select with * the same name is expected. @@ -319,10 +328,10 @@ */ String getSelectOptionLabelForValue(String selectName, int index, String optionValue); - + /** * Get the value for a given option of a select box. - * + * * @param selectName name of the select box. * @param optionLabel label of the option. */ @@ -331,7 +340,7 @@ /** * Get the value for a given option of the Nth select box with * the specified name. - * + * * @param selectName name of the select box. * @param index the 0-based index used when more than one select with * the same name is expected. @@ -339,10 +348,10 @@ */ String getSelectOptionValueForLabel(String selectName, int index, String optionLabel); - + /** * Select option(s) of a select box by value. - * + * * @param selectName name of the select box. * @param optionValues values of the options to select. */ @@ -350,18 +359,18 @@ /** * Select option(s) of the Nth select box by value. - * + * * @param selectName name of the select box. * @param index the 0-based index of the select element when multiple - * select elements are expected. + * select elements are expected. * @param optionValues values of the options to select. */ void selectOptions(String selectName, int index, String[] optionValues); - + /** * Unselect option(s) of a select box by value. - * + * * @param selectName name of the select box. * @param optionValues vaules of the options to unselect. */ @@ -370,18 +379,18 @@ /** * Unselect option(s) of the Nth select box with the specified name * by value. - * + * * @param selectName name of the select box. * @param index the 0-based index of the select element when multiple - * select elements are expected. + * select elements are expected. * @param optionValues vaules of the options to unselect. */ void unselectOptions(String selectName, int index, String[] optionValues); - + /** * Test if a select box has the given option (by label). - * + * * @param selectName name of the select box. * @param optionLabel label of the option. * @return true if a select box has the given option (by label). @@ -390,7 +399,7 @@ /** * Test if a select box has the given option (by value). - * + * * @param selectName name of the select box. * @param optionValue value of the option. * @return true if a select box has the given option (by value). @@ -399,10 +408,10 @@ /** * Test if the Nth select box has the given option (by label). - * + * * @param selectName name of the select box. * @param index the 0-based index of the select element when multiple - * select elements are expected. + * select elements are expected. * @param optionLabel label of the option. * @return true if a select box has the given option (by label). */ @@ -410,19 +419,19 @@ /** * Test if the Nth select box has the given option (by value). - * + * * @param selectName name of the select box. * @param index the 0-based index of the select element when multiple - * select elements are expected. + * select elements are expected. * @param optionValue value of the option. * @return true if a select box has the given option (by value). */ boolean hasSelectOptionValue(String selectName, int index, String optionValue); - + /** * Determines if the checkbox is selected. - * + * * @param checkBoxName name of the checkbox. * @return true if the first checkbox with given name is selected. */ @@ -430,7 +439,7 @@ /** * Determines if the checkbox is selected. - * + * * @param checkBoxName name attribut of the checkbox. * @param checkBoxValue value attribut of the checkbox. * @return true if the first checkbox with given name and value is selected. @@ -439,14 +448,14 @@ /** * Select a specified checkbox. If the checkbox is already checked then the checkbox will stay checked. - * + * * @param checkBoxName name of checkbox to be selected. */ void checkCheckbox(String checkBoxName); /** * Select a specified checkbox. If the checkbox is already checked then the checkbox will stay checked. - * + * * @param checkBoxName name of checkbox to be selected. * @param checkBoxValue value of the checkbox (to differenciate checkboxes with the same name). */ @@ -454,14 +463,14 @@ /** * Deselect a specified checkbox. If the checkbox is already unchecked then the checkbox will stay unchecked. - * + * * @param checkBoxName name of checkbox to be deselected. */ void uncheckCheckbox(String checkBoxName); /** * Deselect a specified checkbox. If the checkbox is already unchecked then the checkbox will stay unchecked. - * + * * @param checkBoxName name of checkbox to be deselected. * @param value value of the checkbox (to differenciate checkboxes with the same name). */ @@ -469,7 +478,7 @@ /** * Clicks a radio option. Asserts that the radio option exists first. - * + * * @param radioGroup name of the radio group. * @param radioOptionValue value of the option to check for. */ @@ -477,12 +486,12 @@ /** * Checks if a radio group contains the indicated option. - * + * * @param radioGroup name of the radio group. * @param radioOptionValue value of the option to check for. */ boolean hasRadioOption(String radioGroup, String radioOptionValue); - + /** * Return the currently selected radio button. * @param radioGroup name of the radio group. @@ -492,7 +501,7 @@ /** * Checks if the current form contains a submit button. - * + * */ boolean hasSubmitButton(); @@ -504,7 +513,7 @@ * <li>input type=image * <li>button type=submit * </ul> - * + * * @param nameOrID name or id of the button to check for. */ boolean hasSubmitButton(String nameOrID); @@ -517,7 +526,7 @@ * <li>input type=image * <li>button type=submit * </ul> - * + * * @param nameOrID name of id of the button to check for. * @param value value of the button */ @@ -542,7 +551,7 @@ * <li>input type=image * <li>button type=submit * </ul> - * + * * @param buttonName name of the button to use for submission. */ void submit(String buttonName); @@ -555,7 +564,7 @@ * <li>input type=image * <li>button type=submit * </ul> - * + * * @author Dragos Manolescu * @param buttonName name of the button to use for submission. * @param buttonValue value/label of the button to use for submission @@ -568,7 +577,7 @@ * <li>input type=reset * <li>button type=reset * </ul> - * + * */ boolean hasResetButton(); @@ -579,7 +588,7 @@ * <li>input type=reset * <li>button type=reset * </ul> - * + * * @param nameOrID name or id of the button to check for. */ boolean hasResetButton(String nameOrID); @@ -600,7 +609,7 @@ * <li>input type=button * <li>button type=button * </ul> - * + * * @param text the text of the button (contents of the value attribute). * @return <code>true</code> when the button with text could be found. */ @@ -612,7 +621,7 @@ * <li>input type=button * <li>button type=button * </ul> - * + * * @param buttonId the ID of the button. * @return <code>true</code> when the button with text could be found. */ @@ -624,7 +633,7 @@ * <li>input type=button * <li>button type=button * </ul> - * + * * @param buttonId the ID of the button. */ void clickButton(String buttonId); @@ -636,7 +645,7 @@ * <li>input type=button * <li>button type=button * </ul> - * + * * @param buttonValueText the text of the button (contents of the value attribute). */ void clickButtonWithText(String buttonValueText); @@ -646,18 +655,18 @@ * @return an URL. */ URL getPageURL(); - + /** * Return the string representation of the current page, encoded as specified by the current * {@link net.sourceforge.jwebunit.util.TestContext}. - * + * * @return Visible text in the page. */ String getPageText(); /** * Return the source of the current page (like in a browser). - * + * * @return Source of the page (or HTTP Body as String) */ String getPageSource(); @@ -665,28 +674,28 @@ /** * Return the page title of the current response page, encoded as specified by the current * {@link net.sourceforge.jwebunit.util.TestContext}. - * + * * @return Title of the page. */ String getPageTitle(); /** * Return the response of the server for the current page. - * + * * @return HTTP header & body */ String getServerResponse(); /** * Gets the last server response as input stream. - * + * */ InputStream getInputStream(); /** * Gets the input stream for a given URL - can be used to test images or other resources without changing the current * navigation context. - * + * * @param url the url to the resource */ InputStream getInputStream(URL url) @@ -694,7 +703,7 @@ /** * Check if the Table object representing a specified table exists. - * + * * @param tableSummaryNameOrId summary, name or id of the table. * @return true if table exists. */ @@ -703,7 +712,7 @@ /** * Each framework have it's own way to represent a Table. Testing engines are responsible for converting to the unified * JWebUnit format. - * + * * @param tableSummaryNameOrId summary, name or id of the table to return. * @return unified JWebUnit representation of a table. */ @@ -711,7 +720,7 @@ /** * Return true if a link is present in the current response containing the specified text. - * + * * @param linkText text to check for in links on the response. * @param index The 0-based index, when more than one link with the same text is expected. */ @@ -720,9 +729,9 @@ /** * Return true if a link is present in the current page containing the exact specified text. Note. This will call * String.trim() to trim all leading / trailing spaces. - * + * * RFE 996031... - * + * * @param linkText text to check for in links on the response. * @param index The 0-based index, when more than one link with the same text is expected. */ @@ -730,7 +739,7 @@ /** * Return true if a link is present with a given image based on filename of image. - * + * * @param imageFileName A suffix of the image's filename; for example, to match * <tt>"images/my_icon.png"<tt>, you could just pass in * <tt>"my_icon.png"<tt>. @@ -742,7 +751,7 @@ /** * Return true if a link is present in the current response with the specified id. - * + * * @param anId link id to check for. */ boolean hasLink(String anId); @@ -750,7 +759,7 @@ /** * Navigate by submitting a request based on a link containing the specified text. A RuntimeException is thrown if * no such link can be found. - * + * * @param linkText text which link to be navigated should contain. * @param index The 0-based index, when more than one link with the same text is expected. */ @@ -759,7 +768,7 @@ /** * Navigate by clicking a link with the exact specified text. A RuntimeException is thrown if no such link can be * found. - * + * * @param linkText exact text which link to be navigated should contain. * @param index The 0-based index, when more than one link with the same text is expected. */ @@ -768,7 +777,7 @@ /** * Navigate by submitting a request based on a link with a given ID. A RuntimeException is thrown if no such link * can be found. - * + * * @param anID id of link to be navigated. */ void clickLink(String anID); @@ -776,7 +785,7 @@ /** * Navigate by submitting a request based on a link with a given image file name. A RuntimeException is thrown if no * such link can be found. - * + * * @param imageFileName A suffix of the image's filename; for example, to match <tt>"images/my_icon.png"</tt>, * you could just pass in <tt>"my_icon.png"</tt>. * @param index The 0-based index, when more than one link with the same text is expected. @@ -785,7 +794,7 @@ /** * Test if element with given id exists. - * + * * @param anID id of the element. * @return true if element was found. */ @@ -793,7 +802,7 @@ /** * Test if element with given xpath exists. - * + * * @param xpath xpath of the element. * @return true if element was found. */ @@ -801,7 +810,7 @@ /** * Click element with given xpath. - * + * * @param xpath xpath of the element. */ void clickElementByXPath(String xpath); @@ -809,7 +818,7 @@ /** * Get attribut value of the given element. For example, if you have img src="bla.gif" alt="toto", * getElementAttributByXPath("//img[@src='bla.gif']", "alt") returns "toto" - * + * * @param xpath xpath of the element. * @param attribut name of the attribut. * @return Attribut value or null if the element is not found. @@ -818,15 +827,15 @@ /** * Get text of the given element. - * + * * @param xpath xpath of the element. */ String getElementTextByXPath(String xpath); - - + + /** * Return true if a given string is contained within the specified element. - * + * * @param elementID ID of element to inspect. * @param text text to check for. * @return true if text was found. @@ -835,7 +844,7 @@ /** * Return true if a given regexp is contained within the specified element. - * + * * @param elementID Id of element to inspect. * @param regexp regexp to match. * @return true if a match is found. @@ -844,7 +853,7 @@ /** * Tell the testing engine that the given alert boxes are expected in the given order. - * + * * @param alerts Expected alerts. * @throws ExpectedJavascriptAlertException If there are still unconsummed alert since a previous call of this * method. @@ -854,7 +863,7 @@ /** * Tell the testing engine that the given confirm boxes are expected in the given order. - * + * * @param confirms Expected confirms. * @throws ExpectedJavascriptConfirmException If there are still unconsummed confirm since a previous call of this * method. @@ -864,7 +873,7 @@ /** * Tell the testing engine that the given prompt boxes are expected in the given order. - * + * * @param prompts Expected prompts. * @throws ExpectedJavascriptPromptException If there are still unconsummed prompt since a previous call of this * method. @@ -872,82 +881,82 @@ void setExpectedJavaScriptPrompt(JavascriptPrompt[] prompts) throws ExpectedJavascriptPromptException; - /** - * Get an element wrapper for a given xpath. - * - * @see #getElementsByXPath(String) - * @param xpath XPath to evaluate - * @return The element if found - */ - IElement getElementByXPath(String xpath); - - /** - * Get an element wrapper for a given ID. - * - * @param id element ID to find - * @return The element if found - */ - IElement getElementByID(String id); - - /** - * Get a list of all elements that match the given xpath. - * - * @see #getElementByXPath(String) - * @param xpath XPath to evaluate - * @return List of all elements found - */ - List<IElement> getElementsByXPath(String xpath); + /** + * Get an element wrapper for a given xpath. + * + * @see #getElementsByXPath(String) + * @param xpath XPath to evaluate + * @return The element if found + */ + IElement getElementByXPath(String xpath); - /** - * Get the request response code. - * - * @return The request response code. - */ - int getServerResponseCode(); - - /** - * Get a particular header or null. - * - * @param name The header name - * @return The first header value or null - */ - String getHeader(String name); - + /** + * Get an element wrapper for a given ID. + * + * @param id element ID to find + * @return The element if found + */ + IElement getElementByID(String id); + + /** + * Get a list of all elements that match the given xpath. + * + * @see #getElementByXPath(String) + * @param xpath XPath to evaluate + * @return List of all elements found + */ + List<IElement> getElementsByXPath(String xpath); + + /** + * Get the request response code. + * + * @return The request response code. + */ + int getServerResponseCode(); + + /** + * Get a particular header or null. + * + * @param name The header name + * @return The first header value or null + */ + String getHeader(String name); + /** * Get all distinct response headers. In case there are duplicate headers with same name, the last one will be returned. - * + * * @return The header values stored in a map. * @deprecated Use {@link #getResponseHeaders()} */ @Deprecated Map<String, String> getAllHeaders(); - + /** * Get all response headers. * @return the response headers as a list of {@link HttpHeader}s */ List<HttpHeader> getResponseHeaders(); - + /** * Should the tester ignore failing status codes (300+)? Otherwise, * failing status codes will throw an exception. - * + * * @param ignore */ public void setIgnoreFailingStatusCodes(boolean ignore); - + /** * Get all the comments in a document, as a list of strings. */ public List<String> getComments(); - + /** * Set the timeout for the request. A timeout of 0 means * an infinite timeout. - * + * * @param milliseconds the milliseconds in which to timeout, or 0 for infinite * wait (the default). */ public void setTimeout(int milliseconds); - + } 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 2012-11-27 15:39:46 UTC (rev 963) +++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 2012-11-27 15:57:02 UTC (rev 964) @@ -79,7 +79,7 @@ private ITestingEngine testingEngine = null; private TestContext testContext = null; - + /** * This is the testing engine key that the webtester will use to find the correct testing engine from the registry. */ @@ -97,23 +97,23 @@ public ITestingEngine getDialog() { return getTestingEngine(); } - + /** * Set the base url for the test context. - * + * * @param url Base url value - A trailing "/" is appended if not provided. */ public void setBaseUrl(String url) { - getTestContext().setBaseUrl(url); + getTestContext().setBaseUrl(url); } - + /** * Set the base url for the test context. - * + * * @param url Base url value - A trailing "/" is appended if not provided. */ public void setBaseUrl(URL url) { - getTestContext().setBaseUrl(url); + getTestContext().setBaseUrl(url); } /** @@ -260,7 +260,7 @@ } /** - * + * * @param url Absolute or relative URL * @param baseURL Base URL of the page * @return Final absolute URL. @@ -321,88 +321,88 @@ } // Assertions - + /** * Assert that the page response has a particular code. - * - * @param status the expected status code + * + * @param status the expected status code */ public void assertResponseCode(int status) { - assertEquals( status, getTestingEngine().getServerResponseCode() ); + assertEquals( status, getTestingEngine().getServerResponseCode() ); } /** * Assert that the page response has a particular code between lower and higher * (<code>lower <= status <= higher</code>). - * - * @param lower the lower bound for the expected status code - * @param higher the upper bound for the expected status code + * + * @param lower the lower bound for the expected status code + * @param higher the upper bound for the expected status code */ public void assertResponseCodeBetween(int lower, int higher) { - assertTrue( getTestingEngine().getServerResponseCode() >= lower && getTestingEngine().getServerResponseCode() <= higher ); - } - - /** - * Should the tester ignore failing status codes (300+)? Otherwise, - * failing status codes will throw an exception. - * - * @param ignore - */ + assertTrue( getTestingEngine().getServerResponseCode() >= lower && getTestingEngine().getServerResponseCode() <= higher ); + } + + /** + * Should the tester ignore failing status codes (300+)? Otherwise, + * failing status codes will throw an exception. + * + * @param ignore + */ public void setIgnoreFailingStatusCodes(boolean ignore) { - getTestingEngine().setIgnoreFailingStatusCodes(ignore); + getTestingEngine().setIgnoreFailingStatusCodes(ignore); } - + /** * Assert a header is present. - * + * * @param name The header to find */ public void assertHeaderPresent(String name) { - assertFalse( "header '" + name + "' not present", getTestingEngine().getHeader(name) == null ); + assertFalse( "header '" + name + "' not present", getTestingEngine().getHeader(name) == null ); } - + /** * Assert a header is NOT present. - * + * * @param name The header to find */ public void assertHeaderNotPresent(String name) { - assertTrue( "header '" + name + "' present", getTestingEngine().getHeader(name) == null ); + assertTrue( "header '" + name + "' present", getTestingEngine().getHeader(name) == null ); } - + /** * Assert a header is equal to a particular value. - * + * * @param name Header to find * @param value Value to compare against */ public void assertHeaderEquals(String name, String value) { - assertEquals( value, getTestingEngine().getHeader(name) ); + assertEquals( value, getTestingEngine().getHeader(name) ); } - + /** * Assert a header matches a particular pattern. - * + * * @param name Header to find * @param regexp Pattern to compare against */ public void assertHeaderMatches(String name, String regexp) { - assertMatch("Unable to match [" + regexp + "] in header [" + name + "]", regexp, getTestingEngine().getHeader(name)); + assertMatch("Unable to match [" + regexp + "] in header [" + name + "]", regexp, getTestingEngine().getHeader(name)); } - + /** * Get a particular header value. - * + * * @param name Header to find * @return The found header value, or null */ public String getHeader(String name) { - return getTestingEngine().getHeader(name); + return getTestingEngine().getHeader(name); } - + /** * Get all response headers. - * + * * @return A map of response headers * @deprecated This method do not deal with several headers with same name. Use {@link #getResponseHeaders()} instead. */ @@ -410,10 +410,10 @@ public Map<String, String> getAllHeaders() { return getTestingEngine().getAllHeaders(); } - + /** * Return all HTTP headers that are in last response. It is possible to have several headers with same name. - * + * * @return A list of {@link HttpHeader} elements. */ public List<HttpHeader> getResponseHeaders() { @@ -430,7 +430,7 @@ public void assertTitleEquals(String title) { assertEquals(title, getTestingEngine().getPageTitle()); } - + /** * Assert title of current html page in conversation is not * equal to another value. @@ -441,7 +441,7 @@ */ @Deprecated public void assertTitleNotSame(String title) { - assertTitleNotEquals(title); + assertTitleNotEquals(title); } /** @@ -452,7 +452,7 @@ * unexpected title value */ public void assertTitleNotEquals(String title) { - assertThat(title, not(equalTo(getTestingEngine().getPageTitle()))); + assertThat(title, not(equalTo(getTestingEngine().getPageTitle()))); } /** @@ -461,7 +461,7 @@ * @param regexp expected title regexp */ public void assertTitleMatch(String regexp) { - assertMatch("Unable to match [" + regexp + "] in title", regexp, getTestingEngine().getPageTitle()); + assertMatch("Unable to match [" + regexp + "] in title", regexp, getTestingEngine().getPageTitle()); } /** @@ -528,31 +528,31 @@ fail("Expected rexexp not matched in response: [" + regexp + "]"); } - + /** * Assert a given string matches a given regular expression. - * + * * @param regexp * @param text */ public void assertMatch(String regexp, String text) { - assertMatch("Expected rexexp '" + regexp + "' not matched in text '" + text + "'", regexp, text); + assertMatch("Expected rexexp '" + regexp + "' not matched in text '" + text + "'", regexp, text); } /** * Assert a given string does not match a given regular expression. - * + * * @param regexp * @param text */ public void assertNotMatch(String regexp, String text) { - assertNotMatch("Expected rexexp '" + regexp + "' matched in text '" + text + "'", regexp, text); + assertNotMatch("Expected rexexp '" + regexp + "' matched in text '" + text + "'", regexp, text); } - + /** * Assert a given string matches a given regular expression. - * + * * @param regexp * @param text */ @@ -564,7 +564,7 @@ /** * Assert a given string does not match a given regular expression. - * + * * @param regexp * @param text */ @@ -573,7 +573,7 @@ if (re.match(text)) fail(message); } - + /** * Assert that a web resource's value is not present. * @@ -610,9 +610,9 @@ * @param regexp */ public void assertNoMatch(String regexp) { - assertNotMatch("Regexp matched in response when not expected: [" + regexp + "]", - regexp, - getTestingEngine().getPageText()); + assertNotMatch("Regexp matched in response when not expected: [" + regexp + "]", + regexp, + getTestingEngine().getPageText()); } /** @@ -1020,6 +1020,17 @@ } /** + * Assert that there is a form with the specified name or id and the given index present. + * + * @param nameOrID + * @param index The 0-based index, when more than one form with the same name is expected. + */ + public void assertFormPresent(String nameOrID, int index) { + assertTrue("No form present with name or id [" + nameOrID + "] at index " + index, + getTestingEngine().hasForm(nameOrID, index)); + } + + /** * Assert that there is not a form present. * */ @@ -1060,7 +1071,7 @@ * @param regexp */ public void assertFormElementMatch(String formElementName, String regexp) { - // how can we @deprecate this if there is no available alternative? + // how can we @deprecate this if there is no available alternative? assertFormElementPresent(formElementName); RE re = null; try { @@ -1080,7 +1091,7 @@ * @param formElementName * @see #setTextField(String, String) * @see #setHiddenField(String, String) - * @deprecated use an explicit testing method, e.g. {@link #setTextField(String, String)} or {@link #setHiddenField(String, String)} + * @deprecated use an explicit testing method, e.g. {@link #setTextField(String, String)} or {@link #setHiddenField(String, String)} */ public void assertFormElementEmpty(String formElementName) { assertFormElementPresent(formElementName); @@ -1207,7 +1218,7 @@ public void assertRadioOptionSelected(String name, String radioOption) { assertRadioOptionPresent(name, radioOption); assertEquals(radioOption, getTestingEngine() - .getSelectedRadio(name)); + .getSelectedRadio(name)); } /** @@ -1317,8 +1328,8 @@ * @param optionValues option labels. */ public void assertSelectOptionValuesPresent(String selectName, - int index, - String[] optionValues) { + int index, + String[] optionValues) { assertFormElementPresent(selectName); for (int i = 0; i < optionValues.length; i++) assertTrue("Option [" + optionValues[i] @@ -1337,8 +1348,8 @@ * @param optionValue option value. */ public void assertSelectOptionValuePresent(String selectName, - int index, - String optionValue) { + int index, + String optionValue) { assertSelectOptionValuesPresent(selectName, index, new String[] { optionValue }); } @@ -2084,7 +2095,7 @@ */ public void assertLinkNotPresentWithImage(String imageFileName, int index) { assertFalse("Link with image file [" + imageFileName - + "] and index " + index + " found in response.", + + "] and index " + index + " found in response.", getTestingEngine().hasLinkWithImage(imageFileName, index)); } @@ -2127,30 +2138,30 @@ assertFalse("Located element with xpath \"" + xpath + "\"", getTestingEngine().hasElementByXPath(xpath)); } - + /** * Get all the comments in a document, as a list of strings. */ public List<String> getComments() { - return getTestingEngine().getComments(); + return getTestingEngine().getComments(); } - + /** * Assert that a comment is present. - * + * * @param comment */ public void assertCommentPresent(String comment) { - assertTrue("Comment present: '" + comment + "'", getComments().contains(comment.trim())); + assertTrue("Comment present: '" + comment + "'", getComments().contains(comment.trim())); } - + /** * Assert that a comment is not present. - * + * * @param comment */ public void assertCommentNotPresent(String comment) { - assertFalse("Comment not present: '" + comment + "'", getComments().contains(comment.trim())); + assertFalse("Comment not present: '" + comment + "'", getComments().contains(comment.trim())); } /** @@ -2363,6 +2374,7 @@ * @param index The 0-based index, when more than one form with the same name is expected. */ public void setWorkingForm(String nameOrId, int index) { + assertFormPresent(nameOrId, index); getTestingEngine().setWorkingForm(nameOrId, index); } @@ -2683,7 +2695,7 @@ } /** - * Get the attribute value of the given element. + * Get the attribute value of the given element. * For example, if you have an element <code><img src="test.gif" alt="picture"></code> * getElementAttributeByXPath("//img[@src='test.gif']", "alt") returns "picture". * @@ -2695,12 +2707,12 @@ assertElementPresentByXPath(xpath); return getTestingEngine().getElementAttributByXPath(xpath, attribute); } - + /** - * @deprecated Use {@link #getElementAttributeByXPath(String, String)} + * @deprecated Use {@link #getElementAttributeByXPath(String, String)} */ public String getElementAttributByXPath(String xpath, String attribute) { - return getElementAttributeByXPath(xpath, attribute); + return getElementAttributeByXPath(xpath, attribute); } /** @@ -2710,7 +2722,7 @@ */ public String getElementTextByXPath(String xpath){ assertElementPresentByXPath(xpath); - return getTestingEngine().getElementTextByXPath(xpath); + return getTestingEngine().getElementTextByXPath(xpath); } /** @@ -2718,11 +2730,11 @@ * * @param xpath XPath to search * @return the requested element - * @throws AssertionError if the element xpath is not found + * @throws AssertionError if the element xpath is not found */ public IElement getElementByXPath(String xpath) { - assertElementPresentByXPath(xpath); - return getTestingEngine().getElementByXPath(xpath); + assertElementPresentByXPath(xpath); + return getTestingEngine().getElementByXPath(xpath); } @@ -2731,11 +2743,11 @@ * * @param id element ID to find * @return the requested element - * @throws AssertionError if the element is not found + * @throws AssertionError if the element is not found */ public IElement getElementById(String id) { - assertElementPresent(id); - return getTestingEngine().getElementByID(id); + assertElementPresent(id); + return getTestingEngine().getElementByID(id); } /** @@ -2745,53 +2757,53 @@ * @return the requested elements found */ public List<IElement> getElementsByXPath(String xpath) { - return getTestingEngine().getElementsByXPath(xpath); + return getTestingEngine().getElementsByXPath(xpath); } - + // label methods /** * Assert a label for a given ID exists. */ public void assertLabelPresent(String id) { - assertNotNull("No label found with id [" + id + "]", getLabel(id)); + assertNotNull("No label found with id [" + id + "]", getLabel(id)); } - + /** * Get a label for a particular ID. - * + * * @param id * @return */ private IElement getLabel(String id) { - // get all labels - for (IElement e : getTestingEngine().getElementsByXPath("//label")) { - if (id.equals(e.getAttribute("id"))) - return e; // label found - } - return null; + // get all labels + for (IElement e : getTestingEngine().getElementsByXPath("//label")) { + if (id.equals(e.getAttribute("id"))) + return e; // label found + } + return null; } - + /** * Find a particular element with given text - * + * * @param elementName the element type e.g. "input", "label" * @param text the text to search for * @return the found element, or null */ private IElement getElementWithText(String elementName, String text) { - for (IElement e : getTestingEngine().getElementsByXPath("//" + elementName)) { - if (elementName.equals(e.getName()) && text.equals(e.getTextContent())) { - return e; - } - } - return null; + for (IElement e : getTestingEngine().getElementsByXPath("//" + elementName)) { + if (elementName.equals(e.getName()) && text.equals(e.getTextContent())) { + return e; + } + } + return null; } /** * Assert a label exists. */ public void assertLabelMatches(String regexp) { - // get regexp + // get regexp RE re = null; try { re = new RE(regexp, RE.MATCH_SINGLELINE); @@ -2800,97 +2812,97 @@ } // get all labels - for (IElement e : getTestingEngine().getElementsByXPath("//label")) { - if (e.getName().equals("label") && re.match( e.getTextContent() )) - return; // label found - } - fail("No label found with text matching [" + regexp + "]"); + for (IElement e : getTestingEngine().getElementsByXPath("//label")) { + if (e.getName().equals("label") && re.match( e.getTextContent() )) + return; // label found + } + fail("No label found with text matching [" + regexp + "]"); } - + /** * Get all the fields of type <code>input</code>, <code>textarea</code> or <code>select</code> * that are referenced or contained in a particular label. - * + * * @param label The label to consider * @return A list of all fields contained or referenced in this label */ public List<IElement> getFieldsForLabel(IElement label) { - List<IElement> fields = new java.util.ArrayList<IElement>(); - // a direct "for" attribute - if (label.getAttribute("for") != null) { - IElement e = getTestingEngine().getElementByID(label.getAttribute("for")); - if (e != null) - fields.add(e); - } - - // implicitly the elements inside the label - if (fields.isEmpty()) { - // get elements inside the label - for (IElement e : label.getChildren()) { - if (e.getName().equals("input") || e.getName().equals("textarea") || e.getName().equals("select")) { - fields.add(e); - } - } - } - - return fields; + List<IElement> fields = new java.util.ArrayList<IElement>(); + // a direct "for" attribute + if (label.getAttribute("for") != null) { + IElement e = getTestingEngine().getElementByID(label.getAttribute("for")); + if (e != null) + fields.add(e); + } + + // implicitly the elements inside the label + if (fields.isEmpty()) { + // get elements inside the label + for (IElement e : label.getChildren()) { + if (e.getName().equals("input") || e.getName().equals("textarea") || e.getName().equals("select")) { + fields.add(e); + } + } + } + + return fields; } - - + + /** * Private method - test the value of a field connected to a particular IElement label. - * + * * @param identifier the HTML ID for the given labelled field * @param label the label found for the given HTML field * @param fieldText the value to check is equal */ private void assertLabeledFieldEquals(String identifier, IElement label, String fieldText) { - String value = getLabeledFieldValue(identifier, label); - assertEquals("unexpected value of field for label [" + identifier + "]", fieldText, value == null ? "" : value); + String value = getLabeledFieldValue(identifier, label); + assertEquals("unexpected value of field for label [" + identifier + "]", fieldText, value == null ? "" : value); } - + /** - * Get the current value of a given labelled field. - * + * Get the current value of a given labelled field. + * * @param identifier the HTML ID for the given labelled field * @param label the label found for the given HTML ID - * @return the value found in a field for the given label/ID, or + * @return the value found in a field for the given label/ID, or * <code>null</code> if none was found */ public String getLabeledFieldValue(String identifier, IElement label) { - List<IElement> fields = getFieldsForLabel(label); - - assertFalse("No field found for label [" + identifier + "]", fields.isEmpty()); - String value = null; - // cycle through all fields trying to find value - for (IElement field : fields) { - if (value != null) // stop at first correct value found - break; - if (field == null) - throw new RuntimeException("unexpected null field"); - - if ("input".equals(field.getName())) { - if (field.getAttribute("type") != null) { - if (field.getAttribute("type").toLowerCase().equals("checkbox")) { - if (field.getAttribute("checked") != null) { - value = field.getAttribute("value"); - } - } else if (field.getAttribute("type").toLowerCase().equals("radio")) { - if (field.getAttribute("checked") != null) { - value = field.getAttribute("value"); - } - } else { - // any other input type - value = field.getAttribute("value"); - } - } else { - // unspecified input type, default = text - value = field.getAttribute("value"); - } - } else if ("textarea".equals(field.getName())) { - value = field.getTextContent(); - } else if ("select".equals(field.getName())) { - // get the selected option + List<IElement> fields = getFieldsForLabel(label); + + assertFalse("No field found for label [" + identifier + "]", fields.isEmpty()); + String value = null; + // cycle through all fields trying to find value + for (IElement field : fields) { + if (value != null) // stop at first correct value found + break; + if (field == null) + throw new RuntimeException("unexpected null field"); + + if ("input".equals(field.getName())) { + if (field.getAttribute("type") != null) { + if (field.getAttribute("type").toLowerCase().equals("checkbox")) { + if (field.getAttribute("checked") != null) { + value = field.getAttribute("value"); + } + } else if (field.getAttribute("type").toLowerCase().equals("radio")) { + if (field.getAttribute("checked") != null) { + value = field.getAttribute("value"); + } + } else { + // any other input type + value = field.getAttribute("value"); + } + } else { + // unspecified input type, default = text + value = field.getAttribute("value"); + } + } else if ("textarea".equals(field.getName())) { + value = field.getTextContent(); + } else if ("select".equals(field.getName())) { + // get the selected option for (IElement child : field.getChildren()) { if (child.getName().equals("option") && child.getAttribute("selected") != null) { value = child.getAttribute("value"); @@ -2905,82 +2917,82 @@ } } } - } else { - throw new RuntimeException("Unexpected field type " + field.getName()); - } - } - - return value; + } else { + throw new RuntimeException("Unexpected field type " + field.getName()); + } + } + + return value; } - + /** * Assert that a labeled field exists (for the given ID) and the * field that it labels equals the given text - * + * * @param id the HTML ID for the given labelled field * @param fieldText the text that the field's value should equal * @see #getLabeledFieldValue(String, IElement, String) * @see #getLabel(String) */ public void assertLabeledFieldEquals(String id, String fieldText) { - IElement label = getLabel(id); - assertNotNull("no label for id [" + id + "] found", label); - - assertLabeledFieldEquals(id, label, fieldText); + IElement label = getLabel(id); + assertNotNull("no label for id [" + id + "] found", label); + + assertLabeledFieldEquals(id, label, fieldText); } - + public void setLabeledFormElementField(String id, String value) { - IElement label = getLabel(id); - assertNotNull("no label for id [" + id + "] found", label); - - List<IElement> fields = getFieldsForLabel(label); - assertFalse("there should be at least one element referenced for label [" + id + "]", fields.size()==0); - - // find the first element that we can change - for (IElement field : fields) { - if (field == null) - throw new RuntimeException("unexpected null field"); - - if ("input".equals(field.getName())) { - if (field.getAttribute("type") != null) { - if (field.getAttribute("type").toLowerCase().equals("checkbox")) { - if (value.equals(field.getAttribute("value"))) { - field.setAttribute("checked"); - return; - } - } else if (field.getAttribute("type").toLowerCase().equals("radio")) { - if (value.equals(field.getAttribute("value"))) { - field.setAttribute("checked"); - return; - } - } else { - // any other input type - field.setAttribute("value", value); - return; - } - } else { - // unspecified input type, default = text - field.setAttribute("value", value); - return; - } - } else if ("textarea".equals(field.getName())) { - field.setTextContent(value); - return; - } else if ("select".equals(field.getName())) { - // get the selected option - for (IElement children : field.getChildren()) { - // find the option which matches the given value (we can't specify random values) - if (children.getName().equals("option") && value.equals(children.getAttribute("value"))) { - children.setAttribute("selected"); - return; - } - } - } else { - throw new RuntimeException("Unexpected field type " + field.getName()); - } - } - - fail("could not find any fields for label [" + id + "] to set."); + IElement label = getLabel(id); + assertNotNull("no label for id [" + id + "] found", label); + + List<IElement> fields = getFieldsForLabel(label); + assertFalse("there should be at least one element referenced for label [" + id + "]", fields.size()==0); + + // find the first element that we can change + for (IElement field : fields) { + if (field == null) + throw new RuntimeException("unexpected null field"); + + i... [truncated message content] |
From: SourceForge.net <no...@so...> - 2012-11-27 15:56:16
|
Patches item #3590252, was opened at 2012-11-26 18:33 Message generated for change (Comment added) made by henryju You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590252&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: Core >Group: Release 3.2 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Kenny MacLeod (skaffman) >Assigned to: Julien HENRY (henryju) Summary: Imprive exception message when setting form by ID Initial Comment: When you call setWorkingForm(nameorId, index), and no form is found by those arguments, then you get a rather unhelpful message: "Attempted to set form to null." Attached is a patch (against v3.1) which checks for the null pre-emptively, and throws a more useful exception. ---------------------------------------------------------------------- >Comment By: Julien HENRY (henryju) Date: 2012-11-27 07:56 Message: I prefer to do the same than for setWorkingForm(nameOrId): assert that form is present before trying to define it as default working form. Anyway thanks for reporting the issue. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590252&group_id=61302 |
From: <he...@us...> - 2012-11-27 15:39:53
|
Revision: 963 http://jwebunit.svn.sourceforge.net/jwebunit/?rev=963&view=rev Author: henryju Date: 2012-11-27 15:39:46 +0000 (Tue, 27 Nov 2012) Log Message: ----------- [3415400] Configure HtmlUnit to accept self-signed certificates Modified Paths: -------------- trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java trunk/src/changes/changes.xml 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 2012-11-22 11:21:47 UTC (rev 962) +++ trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java 2012-11-27 15:39:46 UTC (rev 963) @@ -205,6 +205,7 @@ * @param context contains context information for the test client. * @throws TestingEngineResponseException */ + @Override public void beginAt(URL initialURL, TestContext context) throws TestingEngineResponseException { this.setTestContext(context); @@ -216,6 +217,7 @@ * Close the browser and check that all expected Javascript alerts, confirms and * prompts have been taken care of. */ + @Override public void closeBrowser() throws ExpectedJavascriptAlertException, ExpectedJavascriptConfirmException, ExpectedJavascriptPromptException { @@ -226,17 +228,17 @@ form = null; // reset current form if (this.expectedJavascriptAlerts.size() > 0) { throw new ExpectedJavascriptAlertException( - ((JavascriptAlert) (expectedJavascriptAlerts.get(0))) + (expectedJavascriptAlerts.get(0)) .getMessage()); } if (this.expectedJavascriptConfirms.size() > 0) { throw new ExpectedJavascriptConfirmException( - ((JavascriptConfirm) (expectedJavascriptConfirms.get(0))) + (expectedJavascriptConfirms.get(0)) .getMessage()); } if (this.expectedJavascriptPrompts.size() > 0) { throw new ExpectedJavascriptPromptException( - ((JavascriptPrompt) (expectedJavascriptPrompts.get(0))) + (expectedJavascriptPrompts.get(0)) .getMessage()); } @@ -248,6 +250,7 @@ * @throws TestingEngineResponseException if an error response code is encountered * and ignoreFailingStatusCodes is not enabled. */ + @Override public void gotoPage(URL initialURL) throws TestingEngineResponseException { try { wc.getPage(initialURL); @@ -264,6 +267,7 @@ /** * @see net.sourceforge.jwebunit.api.IJWebUnitDialog#setScriptingEnabled(boolean) */ + @Override public void setScriptingEnabled(boolean value) { // This variable is used to set Javascript before wc is instancied jsEnabled = value; @@ -272,6 +276,7 @@ } } + @Override public void setThrowExceptionOnScriptError(boolean value) { throwExceptionOnScriptError = value; if (wc != null) { @@ -279,6 +284,7 @@ } } + @Override public List<javax.servlet.http.Cookie> getCookies() { List<javax.servlet.http.Cookie> result = new LinkedList<javax.servlet.http.Cookie>(); Set<Cookie> cookies = wc.getCookieManager().getCookies(); @@ -304,6 +310,7 @@ return result; } + @Override public boolean hasWindow(String windowName) { try { getWindow(windowName); @@ -313,6 +320,7 @@ return true; } + @Override public boolean hasWindowByTitle(String title) { return getWindowByTitle(title) != null; } @@ -322,14 +330,17 @@ * * @param windowName */ + @Override public void gotoWindow(String windowName) { setMainWindow(getWindow(windowName)); } + @Override public void gotoWindow(int windowID) { - setMainWindow((WebWindow) wc.getWebWindows().get(windowID)); + setMainWindow(wc.getWebWindows().get(windowID)); } + @Override public int getWindowCount() { return wc.getWebWindows().size(); } @@ -339,6 +350,7 @@ * * @param title */ + @Override public void gotoWindowByTitle(String title) { WebWindow window = getWindowByTitle(title); if (window != null) { @@ -352,6 +364,7 @@ /** * Close the current window. */ + @Override public void closeWindow() { if (win != null) { ((TopLevelWindow) win.getTopWindow()).close(); @@ -364,6 +377,7 @@ /** * {@inheritDoc} */ + @Override public boolean hasFrame(String frameNameOrId) { return getFrame(frameNameOrId) != null; } @@ -371,6 +385,7 @@ /** * {@inheritDoc} */ + @Override public void gotoFrame(String frameNameOrId) { WebWindow frame = getFrame(frameNameOrId); if (frame == null) { @@ -382,6 +397,7 @@ /** * {@inheritDoc} */ + @Override public void setWorkingForm(int index) { setWorkingForm(getForm(index)); } @@ -389,6 +405,7 @@ /** * {@inheritDoc} */ + @Override public void setWorkingForm(String nameOrId, int index) { setWorkingForm(getForm(nameOrId, index)); } @@ -396,6 +413,7 @@ /** * Return true if the current response contains a form. */ + @Override public boolean hasForm() { return ((HtmlPage) win.getEnclosedPage()).getForms().size() > 0; } @@ -405,16 +423,19 @@ * * @param nameOrID name of id of the form to check for. */ + @Override public boolean hasForm(String nameOrID) { return getForm(nameOrID) != null; } + @Override public boolean hasFormParameterNamed(String paramName) { for (HtmlElement e : getCurrentPage().getHtmlElementDescendants()) { if (e.getAttribute("name").equals(paramName)) { // set the working form if none has been set - if (e.getEnclosingForm() != null && getWorkingForm() == null) + if (e.getEnclosingForm() != null && getWorkingForm() == null) { setWorkingForm(e.getEnclosingForm()); + } return true; } } @@ -427,6 +448,7 @@ * @param paramName name of the input element. TODO: Find a way to handle multiple text input element with same * name. */ + @Override public String getTextFieldValue(String paramName) { // first try the current form if (form != null) { @@ -447,14 +469,16 @@ if (outside_element != null) { if (outside_element instanceof HtmlInput) { // set current form if not null - if (outside_element.getEnclosingForm() != null) + if (outside_element.getEnclosingForm() != null) { form = outside_element.getEnclosingForm(); + } return ((HtmlInput) outside_element).getValueAttribute(); } if (outside_element instanceof HtmlTextArea) { // set current form if not null - if (outside_element.getEnclosingForm() != null) + if (outside_element.getEnclosingForm() != null) { form = outside_element.getEnclosingForm(); + } return ((HtmlTextArea) outside_element).getText(); } } @@ -471,6 +495,7 @@ * @param paramName name of the input element. TODO: Find a way to handle multiple hidden input element with same * name. */ + @Override public String getHiddenFieldValue(String paramName) { // first try the current form if (form != null) { @@ -487,8 +512,9 @@ if (outside_element != null) { if (outside_element instanceof HtmlHiddenInput) { // set current form if not null - if (outside_element.getEnclosingForm() != null) + if (outside_element.getEnclosingForm() != null) { form = outside_element.getEnclosingForm(); + } return ((HtmlHiddenInput) outside_element).getValueAttribute(); } } @@ -504,6 +530,7 @@ * @param fieldName name of the input element or textarea * @param text parameter value to submit for the element. */ + @Override public void setTextField(String paramName, String text) { // first try the current form if (form != null) { @@ -527,15 +554,17 @@ if (outside_element instanceof HtmlInput) { ((HtmlInput) outside_element).setValueAttribute(text); // set current form if not null - if (outside_element.getEnclosingForm() != null) + if (outside_element.getEnclosingForm() != null) { form = outside_element.getEnclosingForm(); + } return; } if (outside_element instanceof HtmlTextArea) { ((HtmlTextArea) outside_element).setText(text); // set current form if not null - if (outside_element.getEnclosingForm() != null) + if (outside_element.getEnclosingForm() != null) { form = outside_element.getEnclosingForm(); + } return; } } @@ -551,6 +580,7 @@ * @param fieldName name of the hidden input element * @param paramValue parameter value to submit for the element. */ + @Override public void setHiddenField(String fieldName, String text) { // first try the current form if (form != null) { @@ -569,8 +599,9 @@ if (outside_element instanceof HtmlHiddenInput) { ((HtmlHiddenInput) outside_element).setValueAttribute(text); // set current form if not null - if (outside_element.getEnclosingForm() != null) + if (outside_element.getEnclosingForm() != null) { form = outside_element.getEnclosingForm(); + } return; } } @@ -585,6 +616,7 @@ * * @param selectName name of the select box. */ + @Override public String[] getSelectOptionValues(String selectName) { HtmlSelect sel = getForm().getSelectByName(selectName); ArrayList<String> result = new ArrayList<String>(); @@ -601,6 +633,7 @@ * @param index the 0-based index when more than one * select with the same name is expected. */ + @Override public String[] getSelectOptionValues(String selectName, int index) { List<HtmlSelect> sels = getForm().getSelectsByName(selectName); if (sels == null || sels.size() < index + 1) { @@ -612,7 +645,7 @@ for (HtmlOption opt : sel.getOptions()) { result.add(opt.getValueAttribute()); } - return (String[]) result.toArray(new String[result.size()]); + return result.toArray(new String[result.size()]); } private String[] getSelectedOptions(HtmlSelect sel) { @@ -624,11 +657,13 @@ return result; } + @Override public String[] getSelectedOptions(String selectName) { HtmlSelect sel = getForm().getSelectByName(selectName); return getSelectedOptions(sel); } + @Override public String[] getSelectedOptions(String selectName, int index) { List<HtmlSelect> sels = getForm().getSelectsByName(selectName); if (sels == null || sels.size() < index + 1) { @@ -649,18 +684,20 @@ + sel.getNameAttribute()); } + @Override public String getSelectOptionValueForLabel(String selectName, String label) { HtmlSelect sel = getForm().getSelectByName(selectName); return getSelectOptionValueForLabel(sel, label); } + @Override public String getSelectOptionValueForLabel(String selectName, int index, String label) { List<HtmlSelect> sels = getForm().getSelectsByName(selectName); if (sels == null || sels.size() < index + 1) { throw new RuntimeException("Did not find select with name [" + selectName + "] at index " + index); } - HtmlSelect sel = (HtmlSelect) sels.get(index); + HtmlSelect sel = sels.get(index); return getSelectOptionValueForLabel(sel, label); } @@ -674,34 +711,40 @@ + sel.getNameAttribute()); } + @Override public String getSelectOptionLabelForValue(String selectName, String value) { HtmlSelect sel = getForm().getSelectByName(selectName); return getSelectOptionLabelForValue(sel, value); } + @Override public String getSelectOptionLabelForValue(String selectName, int index, String value) { List<HtmlSelect> sels = getForm().getSelectsByName(selectName); if (sels == null || sels.size() < index + 1) { throw new RuntimeException("Did not find select with name [" + selectName + "] at index " + index); } - HtmlSelect sel = (HtmlSelect) sels.get(index); + HtmlSelect sel = sels.get(index); return getSelectOptionLabelForValue(sel, value); } + @Override public URL getPageURL() { return win.getEnclosedPage().getWebResponse().getWebRequest().getUrl(); } + @Override public String getPageSource() { return win.getEnclosedPage().getWebResponse() .getContentAsString(); } + @Override public String getPageTitle() { return getCurrentPageTitle(); } + @Override public String getPageText() { Page page = win.getEnclosedPage(); if (page instanceof HtmlPage) { @@ -724,6 +767,7 @@ "Unexpected error in getPageText(). This method need to be updated."); } + @Override public String getServerResponse() { StringBuffer result = new StringBuffer(); WebResponse wr = wc.getCurrentWindow().getEnclosedPage() @@ -740,6 +784,7 @@ return result.toString(); } + @Override public InputStream getInputStream() { try { return wc.getCurrentWindow().getEnclosedPage().getWebResponse() @@ -749,6 +794,7 @@ } } + @Override public InputStream getInputStream(URL resourceUrl) throws TestingEngineResponseException { WebWindow imageWindow = null; @@ -815,6 +861,7 @@ wc.getOptions().setThrowExceptionOnFailingStatusCode(!ignoreFailingStatusCodes); wc.getOptions().setThrowExceptionOnScriptError(throwExceptionOnScriptError); wc.getOptions().setRedirectEnabled(true); + wc.getOptions().setUseInsecureSSL(true); if (refreshHandler == null) { wc.setRefreshHandler(new ImmediateRefreshHandler()); } else { @@ -846,6 +893,7 @@ } wc.setCredentialsProvider(creds); wc.addWebWindowListener(new WebWindowListener() { + @Override public void webWindowClosed(WebWindowEvent event) { if (win == null || event.getOldPage().equals(win.getEnclosedPage())) { win = wc.getCurrentWindow(); @@ -860,6 +908,7 @@ logger.debug("Window {} closed : {}", win, oldPageTitle); } + @Override public void webWindowContentChanged(WebWindowEvent event) { form = null; String winName = event.getWebWindow().getName(); @@ -876,6 +925,7 @@ logger.debug("Window \"{}\" changed : \"{}\" became \"{}", new Object[] {winName, oldPageTitle, newPageTitle}); } + @Override public void webWindowOpened(WebWindowEvent event) { String win = event.getWebWindow().getName(); Page newPage = event.getNewPage(); @@ -888,11 +938,12 @@ }); // Add Javascript Alert Handler wc.setAlertHandler(new AlertHandler() { + @Override public void handleAlert(Page page, String msg) { if (expectedJavascriptAlerts.size() < 1) { throw new UnexpectedJavascriptAlertException(msg); } else { - JavascriptAlert expected = (JavascriptAlert) expectedJavascriptAlerts + JavascriptAlert expected = expectedJavascriptAlerts .remove(0); if (!msg.equals(expected.getMessage())) { throw new UnexpectedJavascriptAlertException(msg); @@ -902,11 +953,12 @@ }); // Add Javascript Confirm Handler wc.setConfirmHandler(new ConfirmHandler() { + @Override public boolean handleConfirm(Page page, String msg) { if (expectedJavascriptConfirms.size() < 1) { throw new UnexpectedJavascriptConfirmException(msg); } else { - JavascriptConfirm expected = (JavascriptConfirm) expectedJavascriptConfirms + JavascriptConfirm expected = expectedJavascriptConfirms .remove(0); if (!msg.equals(expected.getMessage())) { throw new UnexpectedJavascriptConfirmException(msg); @@ -918,11 +970,12 @@ }); // Add Javascript Prompt Handler wc.setPromptHandler(new PromptHandler() { + @Override public String handlePrompt(Page page, String msg) { if (expectedJavascriptPrompts.size() < 1) { throw new UnexpectedJavascriptPromptException(msg); } else { - JavascriptPrompt expected = (JavascriptPrompt) expectedJavascriptPrompts + JavascriptPrompt expected = expectedJavascriptPrompts .remove(0); if (!msg.equals(expected.getMessage())) { throw new UnexpectedJavascriptPromptException(msg); @@ -995,6 +1048,7 @@ /** * Get all the comments in a document, as a list of strings. */ + @Override public List<String> getComments() { List<String> comments = new ArrayList<String>(); getComments(comments, ((HtmlPage) win.getEnclosedPage())); @@ -1075,7 +1129,7 @@ } private HtmlForm getForm(int formIndex) { - return (HtmlForm) ((HtmlPage) win.getEnclosedPage()).getForms().get( + return ((HtmlPage) win.getEnclosedPage()).getForms().get( formIndex); } @@ -1296,6 +1350,7 @@ /** * {@inheritDoc} */ + @Override public boolean hasSubmitButton() { final HtmlForm htmlForm = getForm(); List<?> l = htmlForm.getByXPath("//input[@type='submit' or @type='image']"); @@ -1306,6 +1361,7 @@ /** * {@inheritDoc} */ + @Override public boolean hasSubmitButton(String buttonName) { return getSubmitButton(buttonName) != null; } @@ -1313,6 +1369,7 @@ /** * {@inheritDoc} */ + @Override public boolean hasSubmitButton(String buttonName, String buttonValue) { try { return getSubmitButton(buttonName, buttonValue) != null; @@ -1322,6 +1379,7 @@ } + @Override public boolean hasResetButton() { HtmlForm form = getForm(); List<?> l = form.getByXPath("//input[@type='reset']"); @@ -1329,6 +1387,7 @@ return (l.size() > 0 || l2.size() > 0); } + @Override public boolean hasResetButton(String buttonName) { return getResetButton(buttonName) != null; } @@ -1366,6 +1425,7 @@ * or the value of the "value" attribute. * @return <code>true</code> when the button with text could be found. */ + @Override public boolean hasButtonWithText(String text) { return getButtonWithText(text) != null ? true : false; } @@ -1385,8 +1445,9 @@ * no such button is found. */ public HtmlElement getButtonWithText(String buttonValueText) { - if (buttonValueText == null) + if (buttonValueText == null) { throw new NullPointerException("Cannot search for button with null text"); + } List<? extends HtmlElement> l = ((HtmlPage) win.getEnclosedPage()).getDocumentElement() .getHtmlElementsByTagNames( @@ -1417,6 +1478,7 @@ * @param buttonId the id of the button * @return <code>true</code> when the button was found. */ + @Override public boolean hasButton(String buttonId) { try { return getButton(buttonId) != null; @@ -1425,11 +1487,13 @@ } } + @Override public boolean isCheckboxSelected(String checkBoxName) { HtmlCheckBoxInput cb = getCheckbox(checkBoxName); return cb.isChecked(); } + @Override public boolean isCheckboxSelected(String checkBoxName, String checkBoxValue) { HtmlCheckBoxInput cb = getCheckbox(checkBoxName, checkBoxValue); return cb.isChecked(); @@ -1461,6 +1525,7 @@ return false; } + @Override public Table getTable(String tableSummaryNameOrId) { HtmlTable table = getHtmlTable(tableSummaryNameOrId); Table result = new Table(); @@ -1508,6 +1573,7 @@ return null; } + @Override public boolean hasTable(String tableSummaryNameOrId) { return getHtmlTable(tableSummaryNameOrId) != null; } @@ -1516,6 +1582,7 @@ * Submit the current form with the default submit button. See {@link #getForm}for an explanation of how the * current form is established. */ + @Override public void submit() { try { Object[] inpt = getForm().getHtmlElementsByTagName("input") @@ -1555,6 +1622,7 @@ * * @param buttonName name of the button to use for submission. */ + @Override public void submit(String buttonName) { List<HtmlElement> l = new LinkedList<HtmlElement>(); l.addAll(getForm().getInputsByName(buttonName)); @@ -1596,6 +1664,7 @@ * @param buttonName name of the button to use for submission. * @param buttonValue value/label of the button to use for submission */ + @Override public void submit(String buttonName, String buttonValue) { List<HtmlElement> l = new LinkedList<HtmlElement>(); l.addAll(getForm().getInputsByName(buttonName)); @@ -1644,6 +1713,7 @@ /** * Reset the current form. See {@link #getForm}for an explanation of how the current form is established. */ + @Override public void reset() { getForm().reset(); } @@ -1656,14 +1726,17 @@ * @param linkText text to check for in links on the response. * @param index The 0-based index, when more than one link with the same text is expected. */ + @Override public boolean hasLinkWithText(String linkText, int index) { return getLinkWithText(linkText, index) != null; } + @Override public boolean hasLinkWithExactText(String linkText, int index) { return getLinkWithExactText(linkText, index) != null; } + @Override public boolean hasLinkWithImage(String imageFileName, int index) { return getLinkWithImage(imageFileName, index) != null; } @@ -1673,6 +1746,7 @@ * * @param anId link id to check for. */ + @Override public boolean hasLink(String anId) { try { ((HtmlPage) win.getEnclosedPage()).getHtmlElementById(anId); @@ -1682,6 +1756,7 @@ return true; } + @Override public void clickLinkWithText(String linkText, int index) { HtmlAnchor link = getLinkWithText(linkText, index); if (link == null) { @@ -1695,6 +1770,7 @@ } } + @Override public void clickLinkWithExactText(String linkText, int index) { HtmlAnchor link = getLinkWithExactText(linkText, index); if (link == null) { @@ -1737,6 +1813,7 @@ * * @param checkBoxName name of checkbox to be deselected. */ + @Override public void checkCheckbox(String checkBoxName) { HtmlCheckBoxInput cb = getCheckbox(checkBoxName); if (!cb.isChecked()) { @@ -1748,6 +1825,7 @@ } } + @Override public void checkCheckbox(String checkBoxName, String value) { HtmlCheckBoxInput cb = getCheckbox(checkBoxName, value); if (!cb.isChecked()) { @@ -1765,6 +1843,7 @@ * * @param checkBoxName name of checkbox to be deselected. */ + @Override public void uncheckCheckbox(String checkBoxName) { HtmlCheckBoxInput cb = getCheckbox(checkBoxName); if (cb.isChecked()) { @@ -1777,6 +1856,7 @@ } } + @Override public void uncheckCheckbox(String checkBoxName, String value) { HtmlCheckBoxInput cb = getCheckbox(checkBoxName, value); if (cb.isChecked()) { @@ -1807,6 +1887,7 @@ * @param radioGroup name of the radio group. * @param radioOption value of the option to check for. */ + @Override public void clickRadioOption(String radioGroup, String radioOption) { HtmlRadioButtonInput rb = getRadioOption(radioGroup, radioOption); if (!rb.isChecked()) { @@ -1825,6 +1906,7 @@ * * @param anID id of link to be navigated. */ + @Override public void clickLink(String anID) { clickElementByXPath("//a[@id=\"" + anID + "\"]"); } @@ -1864,6 +1946,7 @@ * <tt>"images/my_icon.png"<tt>, you could just pass in * <tt>"my_icon.png"<tt>. */ + @Override public void clickLinkWithImage(String imageFileName, int index) { HtmlAnchor link = getLinkWithImage(imageFileName, index); if (link == null) { @@ -1877,14 +1960,17 @@ } } + @Override public boolean hasElement(String anID) { return getHtmlElement(anID) != null; } + @Override public boolean hasElementByXPath(String xpath) { return getHtmlElementByXPath(xpath) != null; } + @Override public void clickElementByXPath(String xpath) { HtmlElement e = getHtmlElementByXPath(xpath); if (e == null) { @@ -1898,6 +1984,7 @@ } } + @Override public String getElementAttributByXPath(String xpath, String attribut) { HtmlElement e = getHtmlElementByXPath(xpath); if (e == null) { @@ -1906,6 +1993,7 @@ return e.getAttribute(attribut); } + @Override public String getElementTextByXPath(String xpath) { HtmlElement e = getHtmlElementByXPath(xpath); if (e == null) { @@ -1919,6 +2007,7 @@ * * @param buttonId */ + @Override public void clickButton(String buttonId) { HtmlElement btn = getButton(buttonId); try { @@ -1934,6 +2023,7 @@ * value attribute. For HTML button tags, this checks the element's * content by converting it to text. or an HTML <button> tag. */ + @Override public void clickButtonWithText(String buttonValueText) { HtmlElement b = getButtonWithText(buttonValueText); if (b != null) { @@ -1954,10 +2044,12 @@ * @param radioGroup name of the radio group. * @param radioOption value of the option to check for. */ + @Override public boolean hasRadioOption(String radioGroup, String radioOption) { return getRadioOption(radioGroup, radioOption) != null; } + @Override public String getSelectedRadio(String radioGroup) { List<HtmlRadioButtonInput> radios = getForm().getRadioButtonsByName(radioGroup); for (HtmlRadioButtonInput radio : radios) { @@ -1974,6 +2066,7 @@ * @param selectName name of the select box. * @param optionLabel label of the option. */ + @Override public boolean hasSelectOption(String selectName, String optionLabel) { String[] opts = getSelectOptionValues(selectName); for (int i = 0; i < opts.length; i++) { @@ -1991,6 +2084,7 @@ * @param selectName name of the select box. * @param optionValue value of the option. */ + @Override public boolean hasSelectOptionValue(String selectName, String optionValue) { String[] opts = getSelectOptionValues(selectName); for (int i = 0; i < opts.length; i++) { @@ -2007,10 +2101,12 @@ * @param selectName name of the select box * @param options set of options to select. */ + @Override public void selectOptions(String selectName, String[] options) { HtmlSelect sel = getForm().getSelectByName(selectName); - if (!sel.isMultipleSelectEnabled() && options.length > 1) + if (!sel.isMultipleSelectEnabled() && options.length > 1) { throw new RuntimeException("Multiselect not enabled"); + } for (String option : options) { boolean found = false; for (HtmlOption opt : sel.getOptions()) { @@ -2035,6 +2131,7 @@ * select elements are expected. * @param optionLabel label of the option. */ + @Override public boolean hasSelectOption(String selectName, int index, String optionLabel) { String[] opts = getSelectOptionValues(selectName, index); for (int i = 0; i < opts.length; i++) { @@ -2054,6 +2151,7 @@ * select elements are expected. * @param optionValue value of the option. */ + @Override public boolean hasSelectOptionValue(String selectName, int index, String optionValue) { String[] opts = getSelectOptionValues(selectName, index); for (int i = 0; i < opts.length; i++) { @@ -2072,13 +2170,14 @@ * select elements are expected. * @param options set of options to select. */ + @Override public void selectOptions(String selectName, int index, String[] options) { List<HtmlSelect> sels = getForm().getSelectsByName(selectName); if (sels == null || sels.size() < index + 1) { throw new RuntimeException("Did not find select with name [" + selectName + "] at index " + index); } - HtmlSelect sel = (HtmlSelect) sels.get(index); + HtmlSelect sel = sels.get(index); if (!sel.isMultipleSelectEnabled() && options.length > 1) { throw new RuntimeException("Multiselect not enabled"); } @@ -2098,6 +2197,7 @@ } } + @Override public void unselectOptions(String selectName, String[] options) { HtmlSelect sel = getForm().getSelectByName(selectName); if (!sel.isMultipleSelectEnabled() && options.length > 1) { @@ -2119,6 +2219,7 @@ } } + @Override public void unselectOptions(String selectName, int index, String[] options) { List<HtmlSelect> sels = getForm().getSelectsByName(selectName); if (sels == null || sels.size() < index + 1) { @@ -2145,6 +2246,7 @@ } } + @Override public boolean isTextInElement(String elementID, String text) { return isTextInElement(getHtmlElement(elementID), text); } @@ -2159,6 +2261,7 @@ return element.asText().indexOf(text) >= 0; } + @Override public boolean isMatchInElement(String elementID, String regexp) { return isMatchInElement(getHtmlElement(elementID), regexp); } @@ -2185,6 +2288,7 @@ /** * {@inheritDoc} */ + @Override public void gotoRootWindow() { win = win.getTopWindow(); } @@ -2231,11 +2335,12 @@ return testContext; } + @Override public void setExpectedJavaScriptAlert(JavascriptAlert[] alerts) throws ExpectedJavascriptAlertException { if (this.expectedJavascriptAlerts.size() > 0) { throw new ExpectedJavascriptAlertException( - ((JavascriptAlert) (expectedJavascriptAlerts.get(0))) + (expectedJavascriptAlerts.get(0)) .getMessage()); } for (int i = 0; i < alerts.length; i++) { @@ -2243,11 +2348,12 @@ } } + @Override public void setExpectedJavaScriptConfirm(JavascriptConfirm[] confirms) throws ExpectedJavascriptConfirmException { if (this.expectedJavascriptConfirms.size() > 0) { throw new ExpectedJavascriptConfirmException( - ((JavascriptConfirm) (expectedJavascriptConfirms.get(0))) + (expectedJavascriptConfirms.get(0)) .getMessage()); } for (int i = confirms.length - 1; i >= 0; i--) { @@ -2255,11 +2361,12 @@ } } + @Override public void setExpectedJavaScriptPrompt(JavascriptPrompt[] prompts) throws ExpectedJavascriptPromptException { if (this.expectedJavascriptPrompts.size() > 0) { throw new ExpectedJavascriptPromptException( - ((JavascriptPrompt) (expectedJavascriptPrompts.get(0))) + (expectedJavascriptPrompts.get(0)) .getMessage()); } for (int i = prompts.length - 1; i >= 0; i--) { @@ -2272,10 +2379,12 @@ * * @see net.sourceforge.jwebunit.api.ITestingEngine#getElementByXPath(java.lang.String) */ + @Override public IElement getElementByXPath(String xpath) { HtmlElement element = this.getHtmlElementByXPath(xpath); - if (element != null) + if (element != null) { return new HtmlUnitElementImpl(element); + } return null; } @@ -2284,10 +2393,12 @@ * * @see net.sourceforge.jwebunit.api.ITestingEngine#getElementByID(java.lang.String) */ + @Override public IElement getElementByID(String id) { HtmlElement element = this.getHtmlElement(id); - if (element != null) + if (element != null) { return new HtmlUnitElementImpl(element); + } return null; } @@ -2296,11 +2407,13 @@ * * @see net.sourceforge.jwebunit.api.ITestingEngine#getElementsByXPath(java.lang.String) */ + @Override public List<IElement> getElementsByXPath(String xpath) { List<IElement> children = new ArrayList<IElement>(); for (Object child : getCurrentPage().getByXPath(xpath)) { - if (child instanceof HtmlElement) + if (child instanceof HtmlElement) { children.add(new HtmlUnitElementImpl((HtmlElement) child)); + } } return children; } @@ -2310,6 +2423,7 @@ * * @see net.sourceforge.jwebunit.api.ITestingEngine#getServerResponseCode() */ + @Override public int getServerResponseCode() { return getWebResponse().getStatusCode(); } @@ -2324,6 +2438,7 @@ /* * @param ignoreFailingStatusCodes the ignoreFailingStatusCodes to set */ + @Override public void setIgnoreFailingStatusCodes(boolean ignore) { ignoreFailingStatusCodes = ignore; if (wc != null) { @@ -2336,6 +2451,7 @@ * * @see net.sourceforge.jwebunit.api.ITestingEngine#getHeader(java.lang.String) */ + @Override public String getHeader(String name) { return getWebResponse().getResponseHeaderValue(name); } @@ -2345,6 +2461,7 @@ * * @see net.sourceforge.jwebunit.api.ITestingEngine#getAllHeaders() */ + @Override @Deprecated public Map<String, String> getAllHeaders() { Map<String, String> map = new java.util.HashMap<String, String>(); @@ -2354,6 +2471,7 @@ return map; } + @Override public List<HttpHeader> getResponseHeaders() { List<HttpHeader> result = new LinkedList<HttpHeader>(); for (NameValuePair header : getWebResponse().getResponseHeaders()) { @@ -2384,6 +2502,7 @@ this.defaultBrowserVersion = defaultBrowserVersion; } + @Override public void setTimeout(int milliseconds) { if (wc != null && wc.getWebConnection() != null) { throw new IllegalArgumentException("Cannot set the timeout when the WebConnection has already been created."); Modified: trunk/src/changes/changes.xml =================================================================== --- trunk/src/changes/changes.xml 2012-11-22 11:21:47 UTC (rev 962) +++ trunk/src/changes/changes.xml 2012-11-27 15:39:46 UTC (rev 963) @@ -30,6 +30,11 @@ </author> </properties> <body> + <release version="3.2" date="UNKNOW" description=""> + <action type="update" dev="henryju" issue="3415400" due-to="Alex"> + Set useInsecureSSL to true by default for HtmlUnit plugin. + </action> + </release> <release version="3.1" date="November 22, 2012" description="Cleanup for Webdriver integration. HtmlUnit 2.11."> <action type="update" dev="henryju"> Updated to HtmlUnit 2.11. As a result JWebUnit now also require Java 1.6+. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: SourceForge.net <no...@so...> - 2012-11-27 15:38:33
|
Patches item #3415400, was opened at 2011-09-29 08:50 Message generated for change (Comment added) made by henryju You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3415400&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: HtmlUnit >Group: Release 3.2 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Alex (xelah1) >Assigned to: Julien HENRY (henryju) Summary: Patch to allow SSL validation to be turned off Initial Comment: Test servers often have self-signed SSL certificates, but JWebUnit refuses to talk to them. My code to register a EasySSLProtocolSocketFactory() stopped working with release 3.0, so I patched JWebUnit to provide a way to turn off certificate validation. ---------------------------------------------------------------------- >Comment By: Julien HENRY (henryju) Date: 2012-11-27 07:38 Message: I prefer to always set useInsecureSSL to true as JWebUnit is designed for testing purpose and most of the time testing environments will have self-signed certificates. In addition WebDriver try to do the same when possible so it will be better to do the same: http://code.google.com/p/selenium/wiki/UntrustedSSLCertificates ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3415400&group_id=61302 |
From: SourceForge.net <no...@so...> - 2012-11-27 02:53:39
|
Patches item #3590256, was opened at 2012-11-26 18:53 Message generated for change (Tracker Item Submitted) made by skaffman You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590256&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: HtmlUnit Group: Release 3.0 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Kenny MacLeod (skaffman) Assigned to: Nobody/Anonymous (nobody) Summary: Expose some protected methods of HtmlUnitTestingEngine Initial Comment: I have a custom subclass of HtmlUnitTestingEngineImpl to modify its behaviour slightly, and this needs access to some methods which are currently private, and have to be accessed via reflection. It would be much nicer if they were protected instead of private. The methods are: getTestContext getForm getCurrentPage See attached patch to do this. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590256&group_id=61302 |
From: SourceForge.net <no...@so...> - 2012-11-27 02:44:23
|
Bugs item #3590254, was opened at 2012-11-26 18:44 Message generated for change (Tracker Item Submitted) made by skaffman You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497982&aid=3590254&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: HtmlUnit plugin Group: Release 3.1 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Kenny MacLeod (skaffman) Assigned to: Nobody/Anonymous (nobody) Summary: getSubmitButton doesn't recognise button elements Initial Comment: The getSubmitButton(buttonName) method of HtmlUnitTestingEngineImpl has some logic in it to recognise buttons of the form: <button type="submit" name="xyz"> However, this logic is never called, since the method only considers elements of the form: <input type="submit" name="xyz"> Attached is a patch which will allow button elements to be considered. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497982&aid=3590254&group_id=61302 |
From: SourceForge.net <no...@so...> - 2012-11-27 02:33:33
|
Patches item #3590252, was opened at 2012-11-26 18:33 Message generated for change (Tracker Item Submitted) made by skaffman You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590252&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: HtmlUnit Group: Release 3.0 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Kenny MacLeod (skaffman) Assigned to: Nobody/Anonymous (nobody) Summary: Imprive exception message when setting form by ID Initial Comment: When you call setWorkingForm(nameorId, index), and no form is found by those arguments, then you get a rather unhelpful message: "Attempted to set form to null." Attached is a patch (against v3.1) which checks for the null pre-emptively, and throws a more useful exception. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497984&aid=3590252&group_id=61302 |
From: SourceForge.net <no...@so...> - 2012-11-27 02:19:48
|
Bugs item #3590248, was opened at 2012-11-26 18:19 Message generated for change (Tracker Item Submitted) made by skaffman You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497982&aid=3590248&group_id=61302 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: HtmlUnit plugin Group: Release 3.1 Status: Open Resolution: None Priority: 5 Private: No Submitted By: Kenny MacLeod (skaffman) Assigned to: Nobody/Anonymous (nobody) Summary: getButtonWithText does not find button elements by value Initial Comment: The getButtonWithText method does not handle button tags' "value" attributes. It handles "value" attributes of for input type="button", i.e. <input type="button" value="...."> but not <button value="..."> ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=497982&aid=3590248&group_id=61302 |
From: <he...@us...> - 2012-11-22 11:21:58
|
Revision: 962 http://jwebunit.svn.sourceforge.net/jwebunit/?rev=962&view=rev Author: henryju Date: 2012-11-22 11:21:47 +0000 (Thu, 22 Nov 2012) Log Message: ----------- Fix a few things detected during the release. Modified Paths: -------------- trunk/pom.xml trunk/src/changes/changes.xml trunk/src/site/xdoc/how-to-release.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-11-22 09:49:16 UTC (rev 961) +++ trunk/pom.xml 2012-11-22 11:21:47 UTC (rev 962) @@ -283,7 +283,14 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> - <version>3.1</version> + <version>3.2</version> + <dependencies> + <dependency><!-- add support for ssh/scp --> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>1.0</version> + </dependency> + </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -573,7 +580,7 @@ <id>jwebunit-website</id> <name>JWebUnit WebSite - Sourceforge</name> <url> - scp://web.sourceforge.net/home/project-web/jwebunit/htdocs + scp://shell.sourceforge.net/home/project-web/jwebunit/htdocs </url> </site> <snapshotRepository> Modified: trunk/src/changes/changes.xml =================================================================== --- trunk/src/changes/changes.xml 2012-11-22 09:49:16 UTC (rev 961) +++ trunk/src/changes/changes.xml 2012-11-22 11:21:47 UTC (rev 962) @@ -47,8 +47,6 @@ <action type="update" dev="henryju"> Deprecated gotoWindow(windowID) method as implementation is not stable and window ID is not something well-defined. </action> - </release> - <release version="3.0.1" date="UNKNOW" description="Minor fixes"> <action type="fix" dev="henryju" issue="3395872" due-to="Tim Pizey"> HtmlUnitTestingEngineImpl.gotoPage no longer returns the failing status. Broken since 2.5 after applying patch from issue 1864365. Modified: trunk/src/site/xdoc/how-to-release.xml =================================================================== --- trunk/src/site/xdoc/how-to-release.xml 2012-11-22 09:49:16 UTC (rev 961) +++ trunk/src/site/xdoc/how-to-release.xml 2012-11-22 11:21:47 UTC (rev 962) @@ -69,19 +69,21 @@ <subsection name="Preparing the release (tag and update pom)"> <p> This process is automatically done by maven-release-plugin. - <source>mvn release:prepare -Dusername=henryju -Dpassword=XXXXXX</source> - Don't forget to put your own sourceforge account and password.<br/> + <source>mvn release:prepare</source> The plugin will ask for next release version, tag name and next development version. Most of the time defaults are ok.<br/> - <em>NB:</em> Sometimes with SVN 1.5 the tag operation fails with a message like <tt>file XXX already exists</tt>. The solution is - to run <tt>svn update</tt> then run <tt>mvn release:prepare -Dusername=henryju -Dpassword=XXXXXX</tt> again. </p> <p> Now the tag is done in SVN and the trunk is ready for next developments. It's time to actually do the release. </p> </subsection> <subsection name="Perform the release (deploy artifacts and site)"> - <p> - The process is done by maven-release-plugin. + <p> + Create a shell on sourceforge (<a href="http://maven.apache.org/plugins/maven-site-plugin/examples/site-deploy-to-sourceforge.net.html">more informations</a>). + <source>ssh -t henryju,jwe...@sh... create</source> + Then exit the shell (type exit). + </p> + <p> + The release process is done by maven-release-plugin: <source>mvn release:perform -Darguments="-Dgpg.passphrase=XXXXXXXXXX"</source> </p> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2012-11-22 09:49:27
|
Revision: 961 http://jwebunit.svn.sourceforge.net/jwebunit/?rev=961&view=rev Author: henryju Date: 2012-11-22 09:49:16 +0000 (Thu, 22 Nov 2012) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/jwebunit-code-generator/pom.xml trunk/jwebunit-commons-tests/pom.xml trunk/jwebunit-core/pom.xml trunk/jwebunit-htmlunit-plugin/pom.xml trunk/jwebunit-webdriver-plugin/pom.xml trunk/pom.xml Modified: trunk/jwebunit-code-generator/pom.xml =================================================================== --- trunk/jwebunit-code-generator/pom.xml 2012-11-22 09:49:07 UTC (rev 960) +++ trunk/jwebunit-code-generator/pom.xml 2012-11-22 09:49:16 UTC (rev 961) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.1</version> + <version>3.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-commons-tests/pom.xml =================================================================== --- trunk/jwebunit-commons-tests/pom.xml 2012-11-22 09:49:07 UTC (rev 960) +++ trunk/jwebunit-commons-tests/pom.xml 2012-11-22 09:49:16 UTC (rev 961) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.1</version> + <version>3.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-core/pom.xml =================================================================== --- trunk/jwebunit-core/pom.xml 2012-11-22 09:49:07 UTC (rev 960) +++ trunk/jwebunit-core/pom.xml 2012-11-22 09:49:16 UTC (rev 961) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.1</version> + <version>3.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-htmlunit-plugin/pom.xml =================================================================== --- trunk/jwebunit-htmlunit-plugin/pom.xml 2012-11-22 09:49:07 UTC (rev 960) +++ trunk/jwebunit-htmlunit-plugin/pom.xml 2012-11-22 09:49:16 UTC (rev 961) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.1</version> + <version>3.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/jwebunit-webdriver-plugin/pom.xml =================================================================== --- trunk/jwebunit-webdriver-plugin/pom.xml 2012-11-22 09:49:07 UTC (rev 960) +++ trunk/jwebunit-webdriver-plugin/pom.xml 2012-11-22 09:49:16 UTC (rev 961) @@ -2,7 +2,7 @@ <parent> <artifactId>jwebunit</artifactId> <groupId>net.sourceforge.jwebunit</groupId> - <version>3.1</version> + <version>3.2-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-11-22 09:49:07 UTC (rev 960) +++ trunk/pom.xml 2012-11-22 09:49:16 UTC (rev 961) @@ -3,7 +3,7 @@ <groupId>net.sourceforge.jwebunit</groupId> <artifactId>jwebunit</artifactId> <name>JWebUnit</name> - <version>3.1</version> + <version>3.2-SNAPSHOT</version> <packaging>pom</packaging> <description> JWebUnit is a Java framework that facilitates creation of @@ -183,9 +183,9 @@ </license> </licenses> <scm> - <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/tags/jwebunit-3.1</connection> - <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/tags/jwebunit-3.1</developerConnection> - <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/tags/jwebunit-3.1</url> + <connection>scm:svn:http://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</connection> + <developerConnection>scm:svn:https://jwebunit.svn.sourceforge.net/svnroot/jwebunit/trunk</developerConnection> + <url>http://jwebunit.svn.sourceforge.net/viewvc/jwebunit/trunk</url> </scm> <organization> <name>SourceForge</name> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2012-11-22 09:49:13
|
Revision: 960 http://jwebunit.svn.sourceforge.net/jwebunit/?rev=960&view=rev Author: henryju Date: 2012-11-22 09:49:07 +0000 (Thu, 22 Nov 2012) Log Message: ----------- [maven-release-plugin] copy for tag jwebunit-3.1 Added Paths: ----------- tags/jwebunit-3.1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |