Revision: 868
http://jwebunit.svn.sourceforge.net/jwebunit/?rev=868&view=rev
Author: henryju
Date: 2010-10-20 09:17:31 +0000 (Wed, 20 Oct 2010)
Log Message:
-----------
[2970512] Fixed issue with absolute image path. (merge)
Modified Paths:
--------------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ImageTest.java
trunk/jwebunit-commons-tests/src/main/resources/testcases/ImageTest/PageWithImages.html
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
trunk/src/changes/changes.xml
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
2010-10-20 09:16:23 UTC (rev 867)
+++
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/ImageTest.java
2010-10-20 09:17:31 UTC (rev 868)
@@ -19,12 +19,7 @@
package net.sourceforge.jwebunit.tests;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertImagePresent;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertImageValid;
-import static net.sourceforge.jwebunit.junit.JWebUnit.assertImageValidAndStore;
-import static net.sourceforge.jwebunit.junit.JWebUnit.beginAt;
-import static net.sourceforge.jwebunit.junit.JWebUnit.getImage;
-import static net.sourceforge.jwebunit.junit.JWebUnit.setBaseUrl;
+import static net.sourceforge.jwebunit.junit.JWebUnit.*;
import static org.junit.Assert.assertNotNull;
import java.awt.Image;
@@ -47,7 +42,8 @@
beginAt("/PageWithImages.html");
}
- @Test public void testSimpleImagePresenceAssertion() throws Throwable {
+ @Test
+ public void testSimpleImagePresenceAssertion() throws Throwable {
assertImagePresent("images/Image1.gif", "image 1");
assertImagePresent("images/Image2.png", "image 2");
assertImagePresent("images/photos/Image3.jpg", "image 3");
@@ -59,23 +55,28 @@
assertFail("assertImagePresent", new Object[]{"images/Image2.png",
"wrong alt"});
}
- @Test public void testGifCanBeLoaded() throws Throwable {
+ @Test
+ public void testGifCanBeLoaded() throws Throwable {
assertPass("assertImageValid", new Object[]{"images/Image1.gif",
"image 1"});
}
- @Test public void testPngCanBeLoaded() throws Throwable {
+ @Test
+ public void testPngCanBeLoaded() throws Throwable {
assertPass("assertImageValid", new Object[]{"images/Image2.png",
"image 2"});
}
- @Test public void testJpgCanBeLoaded() throws Throwable {
+ @Test
+ public void testJpgCanBeLoaded() throws Throwable {
assertPass("assertImageValid", new
Object[]{"images/photos/Image3.jpg", "image 3"});
}
- @Test public void testFailsOnInvalidImages() throws Throwable {
+ @Test
+ public void testFailsOnInvalidImages() throws Throwable {
assertFail("assertImageValid", new Object[]{"images/InvalidImage.gif",
"invalid image"});
}
- @Test public void testSavesImage() throws Throwable {
+ @Test
+ public void testSavesImage() throws Throwable {
File testOut = File.createTempFile("jwebunit-test-", ".png");
testOut.deleteOnExit();
assertImageValidAndStore("images/Image2.png", "image 2", testOut);
@@ -84,16 +85,25 @@
assertNotNull(testImg);
}
- @Test public void testImagesAreExposed() throws Throwable {
+ @Test
+ public void testImagesAreExposed() throws Throwable {
Image image = getImage("images/Image1.gif", "image 1");
// let's just assume it's ok if the image is there
assertNotNull(image);
}
- @Test public void testRelativePathsAreCorrectlyResolved() {
+ @Test
+ public void testRelativePathsAreCorrectlyResolved() {
beginAt("/somedir/AnotherPageWithImages.html");
assertImageValid("Image4.gif", "image 4 - same dir");
assertImageValid("images/Image5.png", "image 5 - subdir");
assertImageValid("../images/photos/Image3.jpg", "image 3 again -
topdir");
}
+
+ @Test
+ public void testAbsolutePath() {
+ assertImagePresent("/jwebunit/ImageTest/images/Image1.gif", "absolute
image 1");
+ assertImageValid("/jwebunit/ImageTest/images/Image1.gif", "absolute
image 1");
+ }
+
}
Modified:
trunk/jwebunit-commons-tests/src/main/resources/testcases/ImageTest/PageWithImages.html
===================================================================
---
trunk/jwebunit-commons-tests/src/main/resources/testcases/ImageTest/PageWithImages.html
2010-10-20 09:16:23 UTC (rev 867)
+++
trunk/jwebunit-commons-tests/src/main/resources/testcases/ImageTest/PageWithImages.html
2010-10-20 09:17:31 UTC (rev 868)
@@ -28,6 +28,7 @@
<body>
<div id="test">
<img src="images/Image1.gif" alt="image 1" />
+ <img src="/jwebunit/ImageTest/images/Image1.gif" alt="absolute image 1" />
<img src="images/Image2.png" alt="image 2" />
<img src="images/photos/Image3.jpg" alt="image 3" />
<img src="somedir/Image4.gif" />
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
2010-10-20 09:16:23 UTC (rev 867)
+++
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/junit/WebTester.java
2010-10-20 09:17:31 UTC (rev 868)
@@ -232,6 +232,15 @@
}
+ /**
+ * This way of creating URL is not standard as absolute path are not
correctly handled. We have to keep this
+ * non standard method for {...@link #beginAt(String)} that advertise a
bad usage for a long time.
+ * @param url Absolute or relative URL. If start with '/', then it is
incorrectly appended to baseURL.
+ * @param baseURL Base URL of the page
+ * @return Final absolute URL.
+ * @throws MalformedURLException
+ */
+ @Deprecated
private URL createUrl(String url, URL baseURL) throws
MalformedURLException {
if (url.startsWith("http://") || url.startsWith("https://")
|| url.startsWith("file://")) {
@@ -245,6 +254,24 @@
}
/**
+ *
+ * @param url Absolute or relative URL
+ * @param baseURL Base URL of the page
+ * @return Final absolute URL.
+ * @throws MalformedURLException
+ */
+ private URL createUrlFixed(String url, URL baseURL) throws
MalformedURLException {
+ if (url.startsWith("http://") || url.startsWith("https://") //Absolute
URL
+ || url.startsWith("file://")) {
+ return new URL(url);
+ } else if (url.startsWith("www.")) { //Absolute URL with missing
scheme (accepted by some browsers)
+ return new URL("http://" + url);
+ } else { //Relative path
+ return new URL(baseURL, url);
+ }
+ }
+
+ /**
* Return the value of a web resource based on its key. This translates to
a property file lookup with the locale
* based on the current TestContext.
*
@@ -3426,7 +3453,7 @@
assertImagePresent(imageSrc, imageAlt);
URL imageUrl = null;
try {
- imageUrl = createUrl(imageSrc, getTestingEngine().getPageURL());
+ imageUrl = createUrlFixed(imageSrc,
getTestingEngine().getPageURL());
} catch (MalformedURLException e1) {
fail(e1.getLocalizedMessage());
}
Modified: trunk/src/changes/changes.xml
===================================================================
--- trunk/src/changes/changes.xml 2010-10-20 09:16:23 UTC (rev 867)
+++ trunk/src/changes/changes.xml 2010-10-20 09:17:31 UTC (rev 868)
@@ -27,7 +27,7 @@
<properties>
<title>JWebUnit changes</title>
<author email="henryju at users.sourceforge.net">
- Julien Henry
+ Julien HENRY
</author>
</properties>
<body>
@@ -37,6 +37,9 @@
</action>
</release>
<release version="2.5" date="UNKNOW" description="Small fixes and
dependency updates">
+ <action type="fix" dev="henryju" issue="2970512" due-to="Todd
Owen">
+ Fixed handling of absolute image path (when src attribute
start with a /).
+ </action>
<action type="update" dev="henryju">
Updated to slf4j 1.6.1.
</action>
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
JWebUnit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development