[JWebUnit-development] SF.net SVN: jwebunit:[892] trunk
Brought to you by:
henryju
|
From: <he...@us...> - 2011-01-27 13:03:45
|
Revision: 892
http://jwebunit.svn.sourceforge.net/jwebunit/?rev=892&view=rev
Author: henryju
Date: 2011-01-27 13:03:38 +0000 (Thu, 27 Jan 2011)
Log Message:
-----------
[3166502] Added indexed alternatives of methods clickLinkWithImage, assertLinkPresentWithImage and assertLinkNotPresentWithImage to test and expose a bug in HtmlUnit testing engine.
Modified Paths:
--------------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java
trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithLink.html
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/src/changes/changes.xml
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 2011-01-27 12:37:47 UTC (rev 891)
+++ trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/NavigationTest.java 2011-01-27 13:03:38 UTC (rev 892)
@@ -34,6 +34,9 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+
+import org.junit.Before;
+
import net.sourceforge.jwebunit.exception.TestingEngineResponseException;
import org.junit.Test;
@@ -47,20 +50,24 @@
*/
public class NavigationTest extends JWebUnitAPITestCase {
+ @Before
public void setUp() throws Exception {
super.setUp();
setBaseUrl(HOST_PATH + "/NavigationTest");
}
- @Test public void testBeginAtRelative() {
+ @Test
+ public void testBeginAtRelative() {
beginAt("/blah.html");
}
- @Test public void testBeginAtAbsolute() {
+ @Test
+ public void testBeginAtAbsolute() {
beginAt(HOST_PATH + "/NavigationTest/blah.html");
}
- @Test public void testForwardSlashConfusion() throws Exception {
+ @Test
+ public void testForwardSlashConfusion() throws Exception {
beginAt("/blah.html");
beginAt("blah.html");
getTestContext().setBaseUrl(HOST_PATH + "/NavigationTest/");
@@ -68,14 +75,16 @@
beginAt("blah.html");
}
- @Test public void testInvalidBeginAt() {
+ @Test
+ public void testInvalidBeginAt() {
//the testing engines should throw an exception if a 404 Error is found.
assertException(TestingEngineResponseException.class, "beginAt", new Object[] {"/nosuchresource.html"});
}
- @Test public void testClickLinkWithText() {
+ @Test
+ public void testClickLinkWithText() {
beginAt("/pageWithLink.html");
assertTitleEquals("pageWithLink");
@@ -106,7 +115,8 @@
assertTitleEquals("pageWithLink");
}
- @Test public void testClickLinkWithImage() {
+ @Test
+ public void testClickLinkWithImage() {
beginAt("/pageWithLink.html");
assertTitleEquals("pageWithLink");
@@ -114,7 +124,26 @@
assertTitleEquals("targetPage2");
}
- @Test public void testClickLinkByID() {
+ @Test
+ public void testClickLinkWithImageAnd0Index() {
+ beginAt("/pageWithLink.html");
+ assertTitleEquals("pageWithLink");
+
+ clickLinkWithImage("graphic.jpg", 0);
+ assertTitleEquals("targetPage2");
+ }
+
+ @Test
+ public void testClickLinkWithImageAnd1Index() {
+ beginAt("/pageWithLink.html");
+ assertTitleEquals("pageWithLink");
+
+ clickLinkWithImage("graphic.jpg", 1);
+ assertTitleEquals("targetPage");
+ }
+
+ @Test
+ public void testClickLinkByID() {
beginAt("/pageWithLink.html");
assertTitleEquals("pageWithLink");
@@ -122,7 +151,8 @@
assertTitleEquals("targetPage");
}
- @Test public void testInvalidClickLink() {
+ @Test
+ public void testInvalidClickLink() {
beginAt("/pageWithLink.html");
assertTitleEquals("pageWithLink");
@@ -134,14 +164,16 @@
fail("Expected exception");
}
- @Test public void testGotoPageRelative() {
+ @Test
+ public void testGotoPageRelative() {
beginAt("/targetPage.html");
assertTitleEquals("targetPage");
gotoPage("/targetPage2.html");
assertTitleEquals("targetPage2");
}
- @Test public void testGotoPageAbsolute() {
+ @Test
+ public void testGotoPageAbsolute() {
beginAt("/targetPage.html");
assertTitleEquals("targetPage");
gotoPage(HOST_PATH + "/NavigationTest/targetPage2.html");
@@ -149,7 +181,8 @@
}
//For bug 726143
- @Test public void testLinkWithEscapedText() {
+ @Test
+ public void testLinkWithEscapedText() {
beginAt("/pageWithAmpersandInLink.html");
assertLinkPresentWithText("Map & Directions");
clickLinkWithText("Map & Directions");
@@ -159,7 +192,8 @@
/**
* Testing for issue 996031
*/
- @Test public void testLinkExactText() {
+ @Test
+ public void testLinkExactText() {
beginAt("/test1.html");
assertTitleEquals("test1");
assertLinkPresentWithExactText("one");
Modified: trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithLink.html
===================================================================
--- trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithLink.html 2011-01-27 12:37:47 UTC (rev 891)
+++ trunk/jwebunit-commons-tests/src/main/resources/testcases/NavigationTest/pageWithLink.html 2011-01-27 13:03:38 UTC (rev 892)
@@ -29,5 +29,8 @@
<img src="graphic.jpg"/>
</a>
<a href="/jwebunit/NavigationTest/targetPage2.html">an active <i>link</i></a>
+ <a href="/jwebunit/NavigationTest/targetPage.html">
+ <img src="graphic.jpg"/>
+ </a>
</body>
</html>
\ No newline at end of file
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 2011-01-27 12:37:47 UTC (rev 891)
+++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java 2011-01-27 13:03:38 UTC (rev 892)
@@ -2035,18 +2035,44 @@
}
/**
+ * Assert that a link containing a specified image is present.
+ *
+ * @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 image is expected.
+ */
+ public void assertLinkPresentWithImage(String imageFileName, int index) {
+ assertTrue("Link with image file [" + imageFileName
+ + "] and index " + index + " not found in response.", getTestingEngine()
+ .hasLinkWithImage(imageFileName, index));
+ }
+
+ /**
* Assert that a link containing a specified image is not present.
*
* @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>.
*/
public void assertLinkNotPresentWithImage(String imageFileName) {
- assertTrue("Link with image file [" + imageFileName
- + "] found in response.", !getTestingEngine().hasLinkWithImage(
+ assertFalse("Link with image file [" + imageFileName
+ + "] found in response.", getTestingEngine().hasLinkWithImage(
imageFileName, 0));
}
/**
+ * Assert that a link containing a specified image is not present.
+ *
+ * @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 image is expected.
+ */
+ public void assertLinkNotPresentWithImage(String imageFileName, int index) {
+ assertFalse("Link with image file [" + imageFileName
+ + "] and index " + index + " found in response.",
+ getTestingEngine().hasLinkWithImage(imageFileName, index));
+ }
+
+ /**
* Assert that an element with a given id is present.
*
* @param anID element id to test for.
@@ -2601,6 +2627,18 @@
}
/**
+ * Navigate by selection of a link with a given 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>.
+ * @param index The 0-based index, when more than one link with the same image is expected.
+ */
+ public void clickLinkWithImage(String imageFileName, int index) {
+ assertLinkPresentWithImage(imageFileName, index);
+ getTestingEngine().clickLinkWithImage(imageFileName, index);
+ }
+
+ /**
* Navigate by selection of a link with given id.
*
* @param linkId id of link
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 2011-01-27 12:37:47 UTC (rev 891)
+++ trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitTestingEngineImpl.java 2011-01-27 13:03:38 UTC (rev 892)
@@ -1822,7 +1822,7 @@
private HtmlAnchor getLinkWithImage(String filename, int index) {
return (HtmlAnchor) getHtmlElementByXPath("(//a[img[contains(@src,\""
- + filename + "\")]])[" + index + 1 + "]");
+ + filename + "\")]])[" + (index + 1) + "]");
}
private HtmlAnchor getLinkWithText(String linkText, int index) {
Modified: trunk/src/changes/changes.xml
===================================================================
--- trunk/src/changes/changes.xml 2011-01-27 12:37:47 UTC (rev 891)
+++ trunk/src/changes/changes.xml 2011-01-27 13:03:38 UTC (rev 892)
@@ -32,6 +32,9 @@
</properties>
<body>
<release version="3.0" date="UNKNOW" description="Updated all internals to JUnit 4">
+ <action type="add" dev="henryju" issue="3166502" due-to="Harri">
+ Added indexed alternatives of methods clickLinkWithImage, assertLinkPresentWithImage and assertLinkNotPresentWithImage.
+ </action>
<action type="fix" dev="henryju" issue="3116839" due-to="Tony Qian">
assertTitleNotSame works incorrectly. Deprecated and replaced by a working assertTitleNotEquals.
</action>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|