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

Reply via email to