Author: [email protected]
Date: Wed May 6 15:19:45 2009
New Revision: 5322
Modified:
trunk/user/src/com/google/gwt/user/client/Window.java
trunk/user/test/com/google/gwt/user/client/WindowTest.java
Log:
Changes Window.Location to use URL.decodeComponent instead of URL.decode;
adds a test to make sure the decoding is working properly. Fixes issue 2941.
review by: jgw
Modified: trunk/user/src/com/google/gwt/user/client/Window.java
==============================================================================
--- trunk/user/src/com/google/gwt/user/client/Window.java (original)
+++ trunk/user/src/com/google/gwt/user/client/Window.java Wed May 6
15:19:45 2009
@@ -270,7 +270,7 @@
values = new ArrayList<String>();
out.put(kv[0], values);
}
- values.add(kv.length > 1 ? URL.decode(kv[1]) : "");
+ values.add(kv.length > 1 ? URL.decodeComponent(kv[1]) : "");
}
}
@@ -292,7 +292,7 @@
for (String kvPair : qs.split("&")) {
String[] kv = kvPair.split("=", 2);
if (kv.length > 1) {
- paramMap.put(kv[0], URL.decode(kv[1]));
+ paramMap.put(kv[0], URL.decodeComponent(kv[1]));
} else {
paramMap.put(kv[0], "");
}
Modified: trunk/user/test/com/google/gwt/user/client/WindowTest.java
==============================================================================
--- trunk/user/test/com/google/gwt/user/client/WindowTest.java (original)
+++ trunk/user/test/com/google/gwt/user/client/WindowTest.java Wed May 6
15:19:45 2009
@@ -116,6 +116,11 @@
assertEquals(map.get("d").get(0), "d=d");
assertEquals(map.get("f").get(0), "2");
assertEquals(map.get("f").get(1), "1");
+
+ // Values escaped with hex codes should work too.
+ map = Window.Location.buildListParamMap(
+ "?foo=bar%20baz%3aqux");
+ assertEquals(map.get("foo").get(0), "bar baz:qux");
}
/**
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---