Revision: 478
Author: henryju
Date: 2006-06-09 02:01:20 -0700 (Fri, 09 Jun 2006)
ViewCVS: http://svn.sourceforge.net/jwebunit/?rev=478&view=rev
Log Message:
-----------
Remove TestContext.toEncodedString as Java String are always in UTF-16
Add CharsetTest to check if special characters are successfully handled.
Modified Paths:
--------------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/JettySetup.java
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/TestContext.java
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/WebTester.java
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
trunk/jwebunit-httpunit-plugin/src/test/java/net/sourceforge/jwebunit/httpunit/JWebUnitTest.java
trunk/jwebunit-jacobie-plugin/src/test/java/net/sourceforge/jwebunit/jacobie/JWebUnitTest.java
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
Added Paths:
-----------
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CharsetTest.java
trunk/jwebunit-commons-tests/src/main/resources/testcases/CharsetTest/
trunk/jwebunit-commons-tests/src/main/resources/testcases/CharsetTest/charset.html_utf-8
Added:
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
(rev 0)
+++
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/CharsetTest.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -0,0 +1,46 @@
+package net.sourceforge.jwebunit.tests;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import net.sourceforge.jwebunit.tests.util.JettySetup;
+
+/**
+ * Make sure JWebUnit handles character conversions properly.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Jesse Wilson</a>
+ */
+public class CharsetTest extends JWebUnitAPITestCase {
+ public CharsetTest(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new JettySetup(new TestSuite(CharsetTest.class));
+ }
+
+ public void setUp() throws Exception {
+ super.setUp();
+ getTestContext().setBaseUrl(HOST_PATH+"/CharsetTest");
+ beginAt("/charset.html_utf-8");
+ }
+
+ public void testEuro() {
+ assertFormElementEquals("eur", "\u20AC");
+ assertFormElementEquals("eur", "\x80");
+ }
+
+ public void testDollar() {
+ assertFormElementEquals("usd", "$");
+ }
+
+ public void testYen() {
+ assertFormElementEquals("yen", "\u00A5");
+ assertFormElementEquals("yen", "\xA5");
+ }
+
+ public void testPound() {
+ assertFormElementEquals("gbp", "\u00A3");
+ assertFormElementEquals("gbp", "\xA3");
+ }
+
+}
\ No newline at end of file
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
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-commons-tests/src/main/java/net/sourceforge/jwebunit/tests/util/JettySetup.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -8,6 +8,7 @@
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
+import org.mortbay.jetty.MimeTypes;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.webapp.WebAppContext;
@@ -53,6 +54,11 @@
connector.setPort(JWebUnitAPITestCase.JETTY_PORT);
jettyServer.setConnectors (new Connector[]{connector});
WebAppContext wah = new WebAppContext();
+ // Handle files encoded in UTF-8
+ MimeTypes mimeTypes = new MimeTypes();
+ mimeTypes.addMimeMapping("html_utf-8", "text/html; charset=UTF-8");
+ wah.setMimeTypes(mimeTypes);
+
wah.setServer(jettyServer);
wah.setContextPath(JWebUnitAPITestCase.JETTY_URL);
URL url = this.getClass().getResource("/testcases/");
Added:
trunk/jwebunit-commons-tests/src/main/resources/testcases/CharsetTest/charset.html_utf-8
===================================================================
---
trunk/jwebunit-commons-tests/src/main/resources/testcases/CharsetTest/charset.html_utf-8
(rev 0)
+++
trunk/jwebunit-commons-tests/src/main/resources/testcases/CharsetTest/charset.html_utf-8
2006-06-09 09:01:20 UTC (rev 478)
@@ -0,0 +1,17 @@
+<html>
+ <head>
+ <title>Characters</title>
+ </head>
+ <body>
+ <h1>Characters</h1>
+ <form action="/">
+ <table>
+ <tr><th>NAME</th><th>Symbol</th></tr>
+ <tr><td>EUR</td><td><input type="text" name="eur"
value="€"/></td></tr>
+ <tr><td>YEN</td><td><input type="text" name="yen"
value="¥"/></td></tr>
+ <tr><td>GBP</td><td><input type="text" name="gbp"
value="£"/></td></tr>
+ <tr><td>USD</td><td><input type="text" name="usd"
value="$"/></td></tr>
+ </table>
+ </form>
+ </body>
+</html>
\ No newline at end of file
Modified:
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/TestContext.java
===================================================================
--- trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/TestContext.java
2006-06-08 15:29:12 UTC (rev 477)
+++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/TestContext.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -26,7 +26,6 @@
private List cookies;
private boolean hasAuth;
private Locale locale = Locale.getDefault();
- private String encodingScheme = "ISO-8859-1";
private String resourceBundleName;
private String baseUrl = "http://localhost:8080";
private String userAgent;
@@ -133,40 +132,6 @@
}
/**
- * Return the encoding scheme for the test context. The default encoding
- * scheme is ISO-8859-1.
- */
- public String getEncodingScheme() {
- return encodingScheme;
- }
-
- /**
- * Set the encoding scheme for the test context which is applied to
- * response text.
- */
- public void setEncodingScheme(String encodingScheme) {
- this.encodingScheme = encodingScheme;
- }
-
- /**
- * Return the value of a String in the encoding specified by the test
- * context.
- *
- * @param text
- * input text.
- * @return String representing bytes of text converted by context's
- * encoding scheme.
- */
- public String toEncodedString(String text) {
- try {
- return new String(text.getBytes(), encodingScheme);
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- return text;
- }
- }
-
- /**
* Set a resource bundle to use for the test context (will be used to
* lookup expected values by key in WebTester).
*
Modified:
trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/WebTester.java
===================================================================
--- trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/WebTester.java
2006-06-08 15:29:12 UTC (rev 477)
+++ trunk/jwebunit-core/src/main/java/net/sourceforge/jwebunit/WebTester.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -171,7 +171,7 @@
+ "]." + "\nError: "
+ ExceptionUtility.stackTraceToString(e));
}
- return testContext.toEncodedString(message);
+ return message;
}
// Assertions
@@ -539,9 +539,8 @@
String expectedString = row[j];
Assert.assertEquals("Expected " + tableSummaryNameOrId
+ " value at [" + i + "," + j + "] not found.",
- expectedString, testContext
- .toEncodedString(actualTableCellValues[i
- + startRow][j].trim()));
+ expectedString, actualTableCellValues[i
+ + startRow][j].trim());
}
}
}
@@ -632,10 +631,8 @@
Assert
.assertTrue("Unable to match " + regexp + " in "
+ tableSummaryNameOrId + " at [" + i + "," + j
- + "].", re.match(getTestContext()
- .toEncodedString(
- actualTableCellValues[i + startRow][j]
- .trim())));
+ + "].", re.match(actualTableCellValues[i +
startRow][j]
+ .trim()));
}
}
}
Modified:
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
===================================================================
---
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-htmlunit-plugin/src/main/java/net/sourceforge/jwebunit/htmlunit/HtmlUnitDialog.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -503,9 +503,8 @@
for (int i = 0; i < webWindows.size(); i++) {
WebWindow window = (WebWindow) webWindows.get(i);
if (window.getEnclosedPage() instanceof HtmlPage
- && getTestContext().toEncodedString(
- ((HtmlPage) window.getEnclosedPage())
- .getTitleText()).equals(title)) {
+ && ((HtmlPage) window.getEnclosedPage())
+ .getTitleText().equals(title)) {
return window;
}
}
@@ -518,8 +517,7 @@
*/
public String getCurrentPageTitle() {
if (win.getEnclosedPage() instanceof HtmlPage) {
- return getTestContext().toEncodedString(
- ((HtmlPage) win.getEnclosedPage()).getTitleText());
+ return ((HtmlPage) win.getEnclosedPage()).getTitleText();
}
return "";
}
Modified:
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
===================================================================
---
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-htmlunit-plugin/src/test/java/net/sourceforge/jwebunit/htmlunit/JWebUnitTest.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -44,6 +44,7 @@
suite.addTestSuite(FormAssertionsTest.class);
suite.addTestSuite(NavigationTest.class);
suite.addTestSuite(XPathTest.class);
+ suite.addTestSuite(CharsetTest.class);
//$JUnit-END$
return new JettySetup(suite);
}
Modified:
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
===================================================================
---
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-httpunit-plugin/src/main/java/net/sourceforge/jwebunit/httpunit/HttpUnitDialog.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -151,8 +151,7 @@
for (int i = 0; i < webWindows.length; i++) {
WebWindow window = webWindows[i];
try {
- if (getTestContext().toEncodedString(
- window.getCurrentPage().getTitle()).equals(title)) {
+ if (window.getCurrentPage().getTitle().equals(title)) {
return window;
}
} catch (SAXException e) {
@@ -183,7 +182,7 @@
*/
public String getPageTitle() {
try {
- return getTestContext().toEncodedString(resp.getTitle());
+ return resp.getTitle();
} catch (SAXException e) {
throw new RuntimeException(ExceptionUtility.stackTraceToString(e));
}
@@ -685,7 +684,7 @@
*/
public boolean isTextInResponse(String text) {
try {
- return (getTestContext().toEncodedString(resp.getText()).indexOf(
+ return (resp.getText().indexOf(
text) >= 0);
} catch (IOException e) {
throw new RuntimeException(ExceptionUtility.stackTraceToString(e));
@@ -701,7 +700,7 @@
public boolean isMatchInResponse(String regexp) {
try {
RE re = getRE(regexp);
- return re.match(getTestContext().toEncodedString(resp.getText()));
+ return re.match(resp.getText());
} catch (IOException e) {
throw new RuntimeException(ExceptionUtility.stackTraceToString(e));
}
@@ -800,7 +799,7 @@
nodeHtml += "</" + child.getNodeName() + ">";
}
}
- return getTestContext().toEncodedString(nodeHtml);
+ return nodeHtml;
}
/**
Modified:
trunk/jwebunit-httpunit-plugin/src/test/java/net/sourceforge/jwebunit/httpunit/JWebUnitTest.java
===================================================================
---
trunk/jwebunit-httpunit-plugin/src/test/java/net/sourceforge/jwebunit/httpunit/JWebUnitTest.java
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-httpunit-plugin/src/test/java/net/sourceforge/jwebunit/httpunit/JWebUnitTest.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -44,6 +44,7 @@
suite.addTestSuite(FormAssertionsTest.class);
suite.addTestSuite(FormAssertionsWithLabelTest.class);
suite.addTestSuite(NavigationTest.class);
+ suite.addTestSuite(CharsetTest.class);
//$JUnit-END$
return new JettySetup(suite);
}
Modified:
trunk/jwebunit-jacobie-plugin/src/test/java/net/sourceforge/jwebunit/jacobie/JWebUnitTest.java
===================================================================
---
trunk/jwebunit-jacobie-plugin/src/test/java/net/sourceforge/jwebunit/jacobie/JWebUnitTest.java
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-jacobie-plugin/src/test/java/net/sourceforge/jwebunit/jacobie/JWebUnitTest.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -42,6 +42,7 @@
suite.addTestSuite(TestContextTest.class);
suite.addTestSuite(FormAssertionsTest.class);
suite.addTestSuite(NavigationTest.class);
+ suite.addTestSuite(CharsetTest.class);
//$JUnit-END$
return new JettySetup(suite);
}
Modified:
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
===================================================================
---
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
2006-06-08 15:29:12 UTC (rev 477)
+++
trunk/jwebunit-selenium-plugin/src/test/java/net/sourceforge/jwebunit/selenium/JWebUnitTest.java
2006-06-09 09:01:20 UTC (rev 478)
@@ -44,6 +44,7 @@
suite.addTestSuite(FormAssertionsTest.class);
suite.addTestSuite(NavigationTest.class);
suite.addTestSuite(XPathTest.class);
+ suite.addTestSuite(CharsetTest.class);
//$JUnit-END$
return new JettySetup(suite);
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Jwebunit-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jwebunit-development