Просмотр исходного кода

[java] Fix urlEncode representation of `~`. Closes #5505

Cauê Waneck 9 лет назад
Родитель
Сommit
43d3ab7456
2 измененных файлов с 15 добавлено и 2 удалено
  1. 2 2
      std/StringTools.hx
  2. 13 0
      tests/unit/src/unit/issues/Issue5505.hx

+ 2 - 2
std/StringTools.hx

@@ -86,8 +86,8 @@ class StringTools {
 					ret.addChar('('.code);
 					ret.addChar('('.code);
 				case ['2'.code, '9'.code]:
 				case ['2'.code, '9'.code]:
 					ret.addChar(')'.code);
 					ret.addChar(')'.code);
-				case ['7'.code, 'E'.code]:
-					ret.addChar('-'.code);
+				case ['7'.code, 'E'.code] | ['7'.code, 'e'.code]:
+					ret.addChar('~'.code);
 				case _:
 				case _:
 					ret.addChar('%'.code);
 					ret.addChar('%'.code);
 					ret.addChar(cast c1);
 					ret.addChar(cast c1);

+ 13 - 0
tests/unit/src/unit/issues/Issue5505.hx

@@ -0,0 +1,13 @@
+package unit.issues;
+
+class Issue5505 extends Test {
+  function test() {
+#if (java || cs)
+    eq(StringTools.urlEncode('~'), '~');
+    eq(StringTools.urlDecode(StringTools.urlEncode('~')), '~');
+    eq(StringTools.urlDecode(StringTools.urlEncode('-')), '-');
+    eq(StringTools.urlDecode('%7E'), '~');
+    eq(StringTools.urlDecode('%7e'), '~');
+#end
+  }
+}