[HtmlUnit] SVN: [15466] trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/ HttpWebConnection3Test.java

rbri--- via HtmlUnit-develop <[email protected]> Mon, 16 Jul 2018 16:19:15 +0000
Newsgroups gmane.comp.java.htmlunit.devel
Message-ID <[email protected]>
Revision: 15466
          http://sourceforge.net/p/htmlunit/code/15466
Author:   rbri
Date:     2018-07-16 16:18:48 +0000 (Mon, 16 Jul 2018)
Log Message:
-----------
next step in our endless encoding fight

Modified Paths:
--------------
    trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection3Test.java

Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection3Test.java
===================================================================
--- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection3Test.java	2018-07-15 17:38:14 UTC (rev 15465)
+++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/HttpWebConnection3Test.java	2018-07-16 16:18:48 UTC (rev 15466)
@@ -16,9 +16,8 @@
 
 import static com.gargoylesoftware.htmlunit.BrowserRunner.TestedBrowser.IE;
 
+import java.net.URLEncoder;
 import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
 
 import org.junit.After;
 import org.junit.Test;
@@ -157,14 +156,12 @@
      * @throws Exception if an error occurs
      */
     @Test
-    @Alerts(DEFAULT = "§§URL§§%D8%A3%D9%87%D9%84%D8%A7%D9%8B",
-            IE = "§§URL§§أهلاً")
-    @NotYetImplemented(IE)
+    @Alerts("§§URL§§?????")
     // seems to work only when running alone
     public void locationUTF() throws Exception {
         final String response = "HTTP/1.1 302 Found\r\n"
                 + "Content-Length: 0\r\n"
-                + "Location: " +  URL_FIRST + "أهلاً" + "\r\n"
+                + "Location: " +  URL_FIRST + "\u0623\u0647\u0644\u0627\u064b" + "\r\n"
                 + "\r\n";
 
         final String response2 = "HTTP/1.1 200 OK\r\n"
@@ -183,9 +180,7 @@
         assertEquals(getExpectedAlerts()[0], driver.getCurrentUrl());
         assertTrue(driver.getPageSource().contains("Hi"));
 
-        final List<String> requests = primitiveWebServer_.getRequests().stream().filter(r -> !r.contains("favicon.ico"))
-                .collect(Collectors.toList());
-        assertEquals(2, requests.size());
+        assertEquals(2, primitiveWebServer_.getRequests().size());
     }
 
     /**
@@ -194,14 +189,15 @@
      * @throws Exception if an error occurs
      */
     @Test
-    @Alerts(DEFAULT = "§§URL§§test?%D8%A3%D9%87%D9%84%D8%A7%D9%8B",
-            IE = "§§URL§§test?أهلاً")
-    @NotYetImplemented(IE)
-    // seems to work only when running alone
-    public void locationQueryUTF() throws Exception {
+    @Alerts("§§URL§§test?%D8%A3%D9%87%D9%84%D8%A7%D9%8B")
+    public void locationQueryUTF8Encoded() throws Exception {
         final String response = "HTTP/1.1 302 Found\r\n"
                 + "Content-Length: 0\r\n"
-                + "Location: " +  URL_FIRST + "test?أهلاً" + "\r\n"
+                + "Location: "
+                    +  URL_FIRST
+                    + "test?"
+                    + URLEncoder.encode("\u0623\u0647\u0644\u0627\u064b", "UTF-8")
+                    + "\r\n"
                 + "\r\n";
 
         final String response2 = "HTTP/1.1 200 OK\r\n"
@@ -220,12 +216,45 @@
         assertEquals(getExpectedAlerts()[0], driver.getCurrentUrl());
         assertTrue(driver.getPageSource().contains("Hi"));
 
-        final List<String> requests = primitiveWebServer_.getRequests().stream().filter(r -> !r.contains("favicon.ico"))
-                .collect(Collectors.toList());
-        assertEquals(2, requests.size());
+        assertEquals(2, primitiveWebServer_.getRequests().size());
     }
 
     /**
+     * Test for bug #1898.
+     *
+     * @throws Exception if an error occurs
+     */
+    @Test
+    @Alerts("§§URL§§%D8%A3%D9%87%D9%84%D8%A7%D9%8B")
+    public void locationUTF8Encoded() throws Exception {
+        final String response = "HTTP/1.1 302 Found\r\n"
+                + "Content-Length: 0\r\n"
+                + "Location: "
+                    +  URL_FIRST
+                    + URLEncoder.encode("\u0623\u0647\u0644\u0627\u064b", "UTF-8")
+                    + "\r\n"
+                + "\r\n";
+
+        final String response2 = "HTTP/1.1 200 OK\r\n"
+                + "Content-Length: 2\r\n"
+                + "Content-Type: text/html\r\n"
+                + "\r\n"
+                + "Hi";
+
+        expandExpectedAlertsVariables(URL_FIRST);
+
+        primitiveWebServer_ = new PrimitiveWebServer(PORT, response, response2);
+        primitiveWebServer_.start();
+
+        final WebDriver driver = getWebDriver();
+        driver.get(URL_FIRST.toExternalForm());
+        assertEquals(getExpectedAlerts()[0], driver.getCurrentUrl());
+        assertTrue(driver.getPageSource().contains("Hi"));
+
+        assertEquals(2, primitiveWebServer_.getRequests().size());
+    }
+
+    /**
      * Test case for Bug #1882.
      *
      * @throws Exception if the test fails


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
HtmlUnit-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/htmlunit-develop