http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java index 9b51a35..37f2376 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UonTest.java @@ -35,11 +35,11 @@ public class CommonParser_UonTest { Map m = null; String in; - in = "$o(a=$n(1))"; + in = "(a=1)"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); - in = "$o(a=$n(1),b=foo+bar)"; + in = "(a=1,b='foo+bar')"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo+bar", m.get("b")); @@ -47,19 +47,19 @@ public class CommonParser_UonTest { assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); - in = "$o(a=$n(1),b=foo+bar,c=$b(false))"; + in = "(a=1,b='foo+bar',c=false)"; m = (Map)pe.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); assertEquals(false, m.get("c")); - in = "$o(a=$n(1),b=foo%20bar,c=$b(false))"; + in = "(a=1,b='foo%20bar',c=false)"; m = (Map)pe.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); assertEquals(false, m.get("c")); - ObjectList jl = (ObjectList)p.parse("$a($o(attribute=value),$o(attribute='value'))", Object.class); + ObjectList jl = (ObjectList)p.parse("@((attribute=value),(attribute=~'value~'))", Object.class); assertEquals("value", jl.getObjectMap(0).getString("attribute")); assertEquals("'value'", jl.getObjectMap(1).getString("attribute")); @@ -127,7 +127,7 @@ public class CommonParser_UonTest { ReaderParser p = UonParser.DEFAULT; - String json = "(ints=(1,2,3),beans=((a=1,b=2)))"; + String json = "(ints=@(1,2,3),beans=@((a=1,b=2)))"; C t = p.parse(json, C.class); assertEquals(t.getInts().size(), 3); assertEquals(t.getBeans().get(0).b, 2);
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java index 2690017..e026be1 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/CommonParser_UrlEncodingTest.java @@ -36,32 +36,32 @@ public class CommonParser_UrlEncodingTest { Map m = null; String in; - in = "a=$n(1)"; + in = "a=1"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); - in = "a=$n(1)&b=foo+bar"; + in = "a=1&b='foo+bar'"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); - in = "a=$n(1)&b=foo+bar&c=$b(false)"; + in = "a=1&b='foo+bar'&c=false"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); assertEquals(false, m.get("c")); - in = "a=$n(1)&b=foo%20bar&c=$b(false)"; + in = "a=1&b='foo%20bar'&c=false"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); assertEquals(false, m.get("c")); - ObjectMap jm = (ObjectMap)p.parse("x=$a($o(attribute=value),$o(attribute='value'))", Object.class); + ObjectMap jm = (ObjectMap)p.parse("x=@((attribute=value),(attribute=~'value~'))", Object.class); assertEquals("value", jm.getObjectList("x").getObjectMap(0).getString("attribute")); assertEquals("'value'", jm.getObjectList("x").getObjectMap(1).getString("attribute")); - ObjectList jl = (ObjectList)p.parse("_value=$a($o(attribute=value),$o(attribute='value'))", Object.class); + ObjectList jl = (ObjectList)p.parse("_value=@((attribute=value),(attribute=~'value~'))", Object.class); assertEquals("value", jl.getObjectMap(0).getString("attribute")); assertEquals("'value'", jl.getObjectMap(1).getString("attribute")); @@ -129,7 +129,7 @@ public class CommonParser_UrlEncodingTest { ReaderParser p = UrlEncodingParser.DEFAULT; - String json = "ints=(1,2,3)&beans=((a=1,b=2))"; + String json = "ints=@(1,2,3)&beans=@((a=1,b=2))"; C t = p.parse(json, C.class); assertEquals(t.getInts().size(), 3); assertEquals(t.getBeans().get(0).b, 2); @@ -170,7 +170,7 @@ public class CommonParser_UrlEncodingTest { @Test public void testCollections() throws Exception { - WriterSerializer s = new UrlEncodingSerializer().setSimpleMode(true); + WriterSerializer s = new UrlEncodingSerializer(); ReaderParser p = new UrlEncodingParser(); List l = new ObjectList("foo","bar"); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java index 3a819ee..00643d0 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UonTest.java @@ -40,13 +40,13 @@ public class Common_UonTest { s.setTrimNullProperties(false); String r = s.serialize(t1); - assertEquals("$o(s1=%00,s2=s2)", r); + assertEquals("(s1=null,s2=s2)", r); t2 = pe.parse(r, A.class); assertEqualObjects(t1, t2); s.setTrimNullProperties(true); r = s.serialize(t1); - assertEquals("$o(s2=s2)", r); + assertEquals("(s2=s2)", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); } @@ -66,19 +66,19 @@ public class Common_UonTest { //==================================================================================================== @Test public void testTrimEmptyMaps() throws Exception { - UonSerializer s = UonSerializer.DEFAULT_SIMPLE_ENCODING.clone(); + UonSerializer s = UonSerializer.DEFAULT_ENCODING.clone(); B t1 = B.create(), t2; String r; s.setTrimEmptyMaps(false); r = s.serialize(t1); - assertEquals("(f1=(),f2=(f2a=%00,f2b=(s2=s2)))", r); + assertEquals("(f1=(),f2=(f2a=null,f2b=(s2=s2)))", r); t2 = pe.parse(r, B.class); assertEqualObjects(t1, t2); s.setTrimEmptyMaps(true); r = s.serialize(t1); - assertEquals("(f2=(f2a=%00,f2b=(s2=s2)))", r); + assertEquals("(f2=(f2a=null,f2b=(s2=s2)))", r); t2 = pe.parse(r, B.class); assertNull(t2.f1); } @@ -105,13 +105,13 @@ public class Common_UonTest { s.setTrimEmptyCollections(false); r = s.serialize(t1); - assertEquals("$o(f1=$a(),f2=$a(%00,$o(s2=s2)))", r); + assertEquals("(f1=@(),f2=@(null,(s2=s2)))", r); t2 = pe.parse(r, C.class); assertEqualObjects(t1, t2); s.setTrimEmptyCollections(true); r = s.serialize(t1); - assertEquals("$o(f2=$a(%00,$o(s2=s2)))", r); + assertEquals("(f2=@(null,(s2=s2)))", r); t2 = pe.parse(r, C.class); assertNull(t2.f1); } @@ -138,13 +138,13 @@ public class Common_UonTest { s.setTrimEmptyCollections(false); r = s.serialize(t1); - assertEquals("$o(f1=$a(),f2=$a(%00,$o(s2=s2)))", r); + assertEquals("(f1=@(),f2=@(null,(s2=s2)))", r); t2 = pe.parse(r, D.class); assertEqualObjects(t1, t2); s.setTrimEmptyCollections(true); r = s.serialize(t1); - assertEquals("$o(f2=$a(%00,$o(s2=s2)))", r); + assertEquals("(f2=@(null,(s2=s2)))", r); t2 = pe.parse(r, D.class); assertNull(t2.f1); } @@ -166,11 +166,8 @@ public class Common_UonTest { @Test public void testBeanPropertyProperies() throws Exception { UonSerializer s = UonSerializer.DEFAULT; - UonSerializer ss = UonSerializer.DEFAULT_SIMPLE; - String ue = ss.serialize(new E1()); - assertEquals("(x1=(f1=1),x2=(f1=1),x3=((f1=1)),x4=((f1=1)),x5=((f1=1)),x6=((f1=1)))", ue); - ue = s.serialize(new E1()); - assertEquals("$o(x1=$o(f1=$n(1)),x2=$o(f1=$n(1)),x3=$a($o(f1=$n(1))),x4=$a($o(f1=$n(1))),x5=$a($o(f1=$n(1))),x6=$a($o(f1=$n(1))))", ue); + String ue = s.serialize(new E1()); + assertEquals("(x1=(f1=1),x2=(f1=1),x3=@((f1=1)),x4=@((f1=1)),x5=@((f1=1)),x6=@((f1=1)))", ue); } public static class E1 { @@ -204,7 +201,7 @@ public class Common_UonTest { t.x1.add(new F()); l.add(t); String xml = s.serialize(l); - assertEquals("$a($o(x1=$a($o(x2=$n(2))),x2=$n(2)))", xml); + assertEquals("@((x1=@((x2=2)),x2=2))", xml); } public static class F { @@ -251,7 +248,7 @@ public class Common_UonTest { s.setRelativeUriBase(null); r = s.serialize(t); expected = "" - +"$o(" + +"(" +"f0=f0/x0," +"f1=f1/x1," +"f2=/f2/x2," @@ -263,10 +260,10 @@ public class Common_UonTest { +"f8=f8/x8," +"f9=f9/x9," +"fa=http://www.apache.org/fa/xa#MY_LABEL," - +"fb=http://www.apache.org/fb/xb?label~=MY_LABEL&foo~=bar," - +"fc=http://www.apache.org/fc/xc?foo~=bar&label~=MY_LABEL," - +"fd=http://www.apache.org/fd/xd?label2~=MY_LABEL&foo~=bar," - +"fe=http://www.apache.org/fe/xe?foo~=bar&label2~=MY_LABEL" + +"fb='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," + +"fc='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," + +"fd='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," + +"fe='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" +")"; assertEquals(expected, r); @@ -277,7 +274,7 @@ public class Common_UonTest { s.setRelativeUriBase("/cr"); r = s.serialize(t); expected = "" - +"$o(" + +"(" +"f0=/cr/f0/x0," +"f1=/cr/f1/x1," +"f2=/f2/x2," @@ -289,10 +286,10 @@ public class Common_UonTest { +"f8=/cr/f8/x8," +"f9=/cr/f9/x9," +"fa=http://www.apache.org/fa/xa#MY_LABEL," - +"fb=http://www.apache.org/fb/xb?label~=MY_LABEL&foo~=bar," - +"fc=http://www.apache.org/fc/xc?foo~=bar&label~=MY_LABEL," - +"fd=http://www.apache.org/fd/xd?label2~=MY_LABEL&foo~=bar," - +"fe=http://www.apache.org/fe/xe?foo~=bar&label2~=MY_LABEL" + +"fb='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," + +"fc='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," + +"fd='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," + +"fe='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" +")"; assertEquals(expected, r); @@ -303,7 +300,7 @@ public class Common_UonTest { s.setRelativeUriBase("/"); r = s.serialize(t); expected = "" - +"$o(" + +"(" +"f0=/f0/x0," +"f1=/f1/x1," +"f2=/f2/x2," @@ -315,10 +312,10 @@ public class Common_UonTest { +"f8=/f8/x8," +"f9=/f9/x9," +"fa=http://www.apache.org/fa/xa#MY_LABEL," - +"fb=http://www.apache.org/fb/xb?label~=MY_LABEL&foo~=bar," - +"fc=http://www.apache.org/fc/xc?foo~=bar&label~=MY_LABEL," - +"fd=http://www.apache.org/fd/xd?label2~=MY_LABEL&foo~=bar," - +"fe=http://www.apache.org/fe/xe?foo~=bar&label2~=MY_LABEL" + +"fb='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," + +"fc='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," + +"fd='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," + +"fe='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" +")"; assertEquals(expected, r); @@ -327,7 +324,7 @@ public class Common_UonTest { s.setAbsolutePathUriBase("http://foo"); r = s.serialize(t); expected = "" - +"$o(" + +"(" +"f0=f0/x0," +"f1=f1/x1," +"f2=http://foo/f2/x2," @@ -339,10 +336,10 @@ public class Common_UonTest { +"f8=f8/x8," +"f9=f9/x9," +"fa=http://www.apache.org/fa/xa#MY_LABEL," - +"fb=http://www.apache.org/fb/xb?label~=MY_LABEL&foo~=bar," - +"fc=http://www.apache.org/fc/xc?foo~=bar&label~=MY_LABEL," - +"fd=http://www.apache.org/fd/xd?label2~=MY_LABEL&foo~=bar," - +"fe=http://www.apache.org/fe/xe?foo~=bar&label2~=MY_LABEL" + +"fb='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," + +"fc='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," + +"fd='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," + +"fe='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" +")"; assertEquals(expected, r); @@ -353,7 +350,7 @@ public class Common_UonTest { s.setAbsolutePathUriBase(""); // Same as null. r = s.serialize(t); expected = "" - +"$o(" + +"(" +"f0=f0/x0," +"f1=f1/x1," +"f2=/f2/x2," @@ -365,10 +362,10 @@ public class Common_UonTest { +"f8=f8/x8," +"f9=f9/x9," +"fa=http://www.apache.org/fa/xa#MY_LABEL," - +"fb=http://www.apache.org/fb/xb?label~=MY_LABEL&foo~=bar," - +"fc=http://www.apache.org/fc/xc?foo~=bar&label~=MY_LABEL," - +"fd=http://www.apache.org/fd/xd?label2~=MY_LABEL&foo~=bar," - +"fe=http://www.apache.org/fe/xe?foo~=bar&label2~=MY_LABEL" + +"fb='http://www.apache.org/fb/xb?label=MY_LABEL&foo=bar'," + +"fc='http://www.apache.org/fc/xc?foo=bar&label=MY_LABEL'," + +"fd='http://www.apache.org/fd/xd?label2=MY_LABEL&foo=bar'," + +"fe='http://www.apache.org/fe/xe?foo=bar&label2=MY_LABEL'" +")"; assertEquals(expected, r); } @@ -380,7 +377,7 @@ public class Common_UonTest { public void testLockedSerializer() throws Exception { UonSerializer s = new UonSerializer().lock(); try { - s.setSimpleMode(true); + s.setUseWhitespace(true); fail("Locked exception not thrown"); } catch (LockedException e) {} try { @@ -430,7 +427,7 @@ public class Common_UonTest { } s.setIgnoreRecursions(true); - assertEquals("$o(name=foo,r2=$o(name=bar,r3=$o(name=baz)))", s.serialize(r1)); + assertEquals("(name=foo,r2=(name=bar,r3=(name=baz)))", s.serialize(r1)); } public static class R1 { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java index efd9e93..c8f40d3 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/Common_UrlEncodingTest.java @@ -39,7 +39,7 @@ public class Common_UrlEncodingTest { s.setTrimNullProperties(false); String r = s.serialize(t1); - assertEquals("s1=%00&s2=s2", r); + assertEquals("s1=null&s2=s2", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); @@ -65,19 +65,19 @@ public class Common_UrlEncodingTest { //==================================================================================================== @Test public void testTrimEmptyMaps() throws Exception { - UrlEncodingSerializer s = UrlEncodingSerializer.DEFAULT_SIMPLE.clone(); + UrlEncodingSerializer s = UrlEncodingSerializer.DEFAULT.clone(); B t1 = B.create(), t2; String r; s.setTrimEmptyMaps(false); r = s.serialize(t1); - assertEquals("f1=()&f2=(f2a=%00,f2b=(s2=s2))", r); + assertEquals("f1=()&f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertEqualObjects(t1, t2); s.setTrimEmptyMaps(true); r = s.serialize(t1); - assertEquals("f2=(f2a=%00,f2b=(s2=s2))", r); + assertEquals("f2=(f2a=null,f2b=(s2=s2))", r); t2 = p.parse(r, B.class); assertNull(t2.f1); } @@ -104,13 +104,13 @@ public class Common_UrlEncodingTest { s.setTrimEmptyCollections(false); r = s.serialize(t1); - assertEquals("f1=$a()&f2=$a(%00,$o(s2=s2))", r); + assertEquals("f1=@()&f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertEqualObjects(t1, t2); s.setTrimEmptyCollections(true); r = s.serialize(t1); - assertEquals("f2=$a(%00,$o(s2=s2))", r); + assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, C.class); assertNull(t2.f1); } @@ -137,13 +137,13 @@ public class Common_UrlEncodingTest { s.setTrimEmptyCollections(false); r = s.serialize(t1); - assertEquals("f1=$a()&f2=$a(%00,$o(s2=s2))", r); + assertEquals("f1=@()&f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertEqualObjects(t1, t2); s.setTrimEmptyCollections(true); r = s.serialize(t1); - assertEquals("f2=$a(%00,$o(s2=s2))", r); + assertEquals("f2=@(null,(s2=s2))", r); t2 = p.parse(r, D.class); assertNull(t2.f1); } @@ -165,11 +165,8 @@ public class Common_UrlEncodingTest { @Test public void testBeanPropertyProperies() throws Exception { UrlEncodingSerializer s = UrlEncodingSerializer.DEFAULT; - UrlEncodingSerializer ss = UrlEncodingSerializer.DEFAULT_SIMPLE; - String ue = ss.serialize(new E1()); - assertEquals("x1=(f1=1)&x2=(f1=1)&x3=((f1=1))&x4=((f1=1))&x5=((f1=1))&x6=((f1=1))", ue); - ue = s.serialize(new E1()); - assertEquals("x1=$o(f1=$n(1))&x2=$o(f1=$n(1))&x3=$a($o(f1=$n(1)))&x4=$a($o(f1=$n(1)))&x5=$a($o(f1=$n(1)))&x6=$a($o(f1=$n(1)))", ue); + String ue = s.serialize(new E1()); + assertEquals("x1=(f1=1)&x2=(f1=1)&x3=@((f1=1))&x4=@((f1=1))&x5=@((f1=1))&x6=@((f1=1))", ue); } public static class E1 { @@ -204,9 +201,9 @@ public class Common_UrlEncodingTest { l.add(t); ObjectMap m = new ObjectMap().append("t", l); String xml = s.serialize(m); - assertEquals("t=$a($o(x1=$a($o(x2=$n(2))),x2=$n(2)))", xml); + assertEquals("t=@((x1=@((x2=2)),x2=2))", xml); xml = s.serialize(l); - assertEquals("$n(0)=$o(x1=$a($o(x2=$n(2))),x2=$n(2))", xml); + assertEquals("0=(x1=@((x2=2)),x2=2)", xml); } public static class F { @@ -264,10 +261,10 @@ public class Common_UrlEncodingTest { +"&f8=f8/x8" +"&f9=f9/x9" +"&fa=http://www.apache.org/fa/xa%23MY_LABEL" - +"&fb=http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar" - +"&fc=http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL" - +"&fd=http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar" - +"&fe=http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL"; + +"&fb='http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar'" + +"&fc='http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL'" + +"&fd='http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar'" + +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); s.setRelativeUriBase(""); // Same as null. @@ -288,10 +285,10 @@ public class Common_UrlEncodingTest { +"&f8=/cr/f8/x8" +"&f9=/cr/f9/x9" +"&fa=http://www.apache.org/fa/xa%23MY_LABEL" - +"&fb=http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar" - +"&fc=http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL" - +"&fd=http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar" - +"&fe=http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL"; + +"&fb='http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar'" + +"&fc='http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL'" + +"&fd='http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar'" + +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); s.setRelativeUriBase("/cr/"); // Same as above @@ -312,10 +309,10 @@ public class Common_UrlEncodingTest { +"&f8=/f8/x8" +"&f9=/f9/x9" +"&fa=http://www.apache.org/fa/xa%23MY_LABEL" - +"&fb=http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar" - +"&fc=http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL" - +"&fd=http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar" - +"&fe=http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL"; + +"&fb='http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar'" + +"&fc='http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL'" + +"&fd='http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar'" + +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); s.setRelativeUriBase(null); @@ -334,10 +331,10 @@ public class Common_UrlEncodingTest { +"&f8=f8/x8" +"&f9=f9/x9" +"&fa=http://www.apache.org/fa/xa%23MY_LABEL" - +"&fb=http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar" - +"&fc=http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL" - +"&fd=http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar" - +"&fe=http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL"; + +"&fb='http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar'" + +"&fc='http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL'" + +"&fd='http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar'" + +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); s.setAbsolutePathUriBase("http://foo/"); @@ -358,10 +355,10 @@ public class Common_UrlEncodingTest { +"&f8=f8/x8" +"&f9=f9/x9" +"&fa=http://www.apache.org/fa/xa%23MY_LABEL" - +"&fb=http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar" - +"&fc=http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL" - +"&fd=http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar" - +"&fe=http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL"; + +"&fb='http://www.apache.org/fb/xb?label=MY_LABEL%26foo=bar'" + +"&fc='http://www.apache.org/fc/xc?foo=bar%26label=MY_LABEL'" + +"&fd='http://www.apache.org/fd/xd?label2=MY_LABEL%26foo=bar'" + +"&fe='http://www.apache.org/fe/xe?foo=bar%26label2=MY_LABEL'"; assertEquals(expected, r); } @@ -372,7 +369,7 @@ public class Common_UrlEncodingTest { public void testLockedSerializer() throws Exception { UrlEncodingSerializer s = new UrlEncodingSerializer().lock(); try { - s.setSimpleMode(true); + s.setUseWhitespace(true); fail("Locked exception not thrown"); } catch (LockedException e) {} try { @@ -422,7 +419,7 @@ public class Common_UrlEncodingTest { } s.setIgnoreRecursions(true); - assertEquals("name=foo&r2=$o(name=bar,r3=$o(name=baz))", s.serialize(r1)); + assertEquals("name=foo&r2=(name=bar,r3=(name=baz))", s.serialize(r1)); } public static class R1 { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java index 375de89..de54711 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonParserTest.java @@ -40,24 +40,24 @@ public class UonParserTest { assertEquals("a", p.parse(t, String.class)); assertEquals("a", p.parse(t, Object.class)); assertEquals("a", pe.parse(t, String.class)); - t = "(a)"; + t = "'a'"; assertEquals("a", p.parse(t, String.class)); assertEquals("a", p.parse(t, Object.class)); - t = "$s(a)"; + t = " 'a' "; assertEquals("a", p.parse(t, String.class)); // 2nd level - t = "$o(a=a)"; + t = "(a=a)"; assertEquals("a", ((Map)p.parse(t, Map.class)).get("a")); assertEquals("a", ((Map)pe.parse(t, Map.class)).get("a")); - t = "(a=a)"; + t = "('a'='a')"; assertEquals("a", ((Map)p.parse(t, Map.class)).get("a")); assertEquals("a", ((Map)pe.parse(t, Map.class)).get("a")); // Simple map // Top level - t = "$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=%00)"; + t = "(a=b,c=123,d=false,e=true,f=null)"; m = p.parse(t, Map.class); assertEquals("b", m.get("a")); assertTrue(m.get("c") instanceof Number); @@ -76,26 +76,20 @@ public class UonParserTest { // null // Top level - t = "%00"; - assertEquals("%00", p.parse(t, Object.class)); + t = "null"; + assertNull(p.parse(t, Object.class)); assertNull(pe.parse(t, Object.class)); // 2nd level - t = "$o(%00=%00)"; + t = "(null=null)"; m = p.parse(t, Map.class); - assertEquals("%00", m.get("%00")); - m = pe.parse(t, Map.class); assertTrue(m.containsKey(null)); assertNull(m.get(null)); - - t = "(%00=%00)"; - m = p.parse(t, Map.class); - assertEquals("%00", m.get("%00")); m = pe.parse(t, Map.class); assertTrue(m.containsKey(null)); assertNull(m.get(null)); - t = "(\u0000=\u0000)"; + t = " ( null = null ) "; m = p.parse(t, Map.class); assertTrue(m.containsKey(null)); assertNull(m.get(null)); @@ -104,42 +98,43 @@ public class UonParserTest { assertNull(m.get(null)); // 3rd level - t = "$o(%00=$o(%00=%00))"; + t = "(null=(null=null))"; m = p.parse(t, Map.class); - assertEquals("%00", ((Map)m.get("%00")).get("%00")); + assertTrue(((Map)m.get(null)).containsKey(null)); + assertNull(((Map)m.get(null)).get(null)); m = pe.parse(t, Map.class); assertTrue(((Map)m.get(null)).containsKey(null)); assertNull(((Map)m.get(null)).get(null)); // Empty array // Top level - t = "$a()"; + t = "@()"; List l = (List)p.parse(t, Object.class); assertTrue(l.isEmpty()); - t = "()"; + t = " @( ) "; l = p.parse(t, List.class); assertTrue(l.isEmpty()); // 2nd level in map - t = "$o(x=$a())"; + t = "(x=@())"; m = p.parse(t, HashMap.class, String.class, List.class); assertTrue(m.containsKey("x")); assertTrue(((List)m.get("x")).isEmpty()); m = (Map)p.parse(t, Object.class); assertTrue(m.containsKey("x")); assertTrue(((List)m.get("x")).isEmpty()); - t = "(x=())"; + t = " ( x = @( ) )"; m = p.parse(t, HashMap.class, String.class, List.class); assertTrue(m.containsKey("x")); assertTrue(((List)m.get("x")).isEmpty()); // Empty 2 dimensional array - t = "$a($a())"; + t = "@(@())"; l = (List)p.parse(t, Object.class); assertTrue(l.size() == 1); l = (List)l.get(0); assertTrue(l.isEmpty()); - t = "(())"; + t = " @( @( ) ) "; l = p.parse(t, LinkedList.class, List.class); assertTrue(l.size() == 1); l = (List)l.get(0); @@ -147,31 +142,31 @@ public class UonParserTest { // Array containing empty string // Top level - t = "$a(())"; + t = "@('')"; l = (List)p.parse(t, Object.class); assertTrue(l.size() == 1); assertEquals("", l.get(0)); - t = "(())"; + t = " @( '' ) "; l = p.parse(t, List.class, String.class); assertTrue(l.size() == 1); assertEquals("", l.get(0)); // 2nd level - t = "$o(()=$a(()))"; + t = "(''=@(''))"; m = (Map)p.parse(t, Object.class); assertEquals("", ((List)m.get("")).get(0)); - t = "(=(()))"; + t = " ( '' = @( '' ) ) "; m = p.parse(t, HashMap.class, String.class, List.class); assertEquals("", ((List)m.get("")).get(0)); // Array containing 3 empty strings - t = "$a(,,)"; + t = "@('','','')"; l = (List)p.parse(t, Object.class); assertTrue(l.size() == 3); assertEquals("", l.get(0)); assertEquals("", l.get(1)); assertEquals("", l.get(2)); - t = "(,,)"; + t = " @( '' , '' , '' ) "; l = p.parse(t, List.class, Object.class); assertTrue(l.size() == 3); assertEquals("", l.get(0)); @@ -180,18 +175,18 @@ public class UonParserTest { // String containing \u0000 // Top level - t = "$s(\u0000)"; + t = "'\u0000'"; assertEquals("\u0000", p.parse(t, Object.class)); - t = "(\u0000)"; + t = " '\u0000' "; assertEquals("\u0000", p.parse(t, String.class)); assertEquals("\u0000", p.parse(t, Object.class)); // 2nd level - t = "$o((\u0000)=(\u0000))"; + t = "('\u0000'='\u0000')"; m = (Map)p.parse(t, Object.class); assertTrue(m.size() == 1); assertEquals("\u0000", m.get("\u0000")); - t = "((\u0000)=(\u0000))"; + t = " ( '\u0000' = '\u0000' ) "; m = p.parse(t, HashMap.class, String.class, String.class); assertTrue(m.size() == 1); assertEquals("\u0000", m.get("\u0000")); @@ -201,29 +196,26 @@ public class UonParserTest { // Boolean // Top level - t = "$b(false)"; + t = "false"; Boolean b = (Boolean)p.parse(t, Object.class); assertEquals(Boolean.FALSE, b); b = p.parse(t, Boolean.class); assertEquals(Boolean.FALSE, b); - t = "false"; + t = " false "; b = p.parse(t, Boolean.class); assertEquals(Boolean.FALSE, b); // 2nd level - t = "$o(x=$b(false))"; + t = "(x=false)"; m = (Map)p.parse(t, Object.class); assertEquals(Boolean.FALSE, m.get("x")); - t = "(x=$b(false))"; + t = " ( x = false ) "; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals(Boolean.FALSE, m.get("x")); - t = "(x=false)"; - m = p.parse(t, HashMap.class, String.class, Boolean.class); - assertEquals(Boolean.FALSE, m.get("x")); // Number // Top level - t = "$n(123)"; + t = "123"; Integer i = (Integer)p.parse(t, Object.class); assertEquals(123, i.intValue()); i = p.parse(t, Integer.class); @@ -232,15 +224,15 @@ public class UonParserTest { assertEquals(123, d.intValue()); Float f = p.parse(t, Float.class); assertEquals(123, f.intValue()); - t = "123"; + t = " 123 "; i = p.parse(t, Integer.class); assertEquals(123, i.intValue()); // 2nd level - t = "$o(x=$n(123))"; + t = "(x=123)"; m = (Map)p.parse(t, Object.class); assertEquals(123, ((Integer)m.get("x")).intValue()); - t = "(x=123)"; + t = " ( x = 123 ) "; m = p.parse(t, HashMap.class, String.class, Number.class); assertEquals(123, ((Integer)m.get("x")).intValue()); m = p.parse(t, HashMap.class, String.class, Double.class); @@ -248,12 +240,12 @@ public class UonParserTest { // Unencoded chars // Top level - t = "x;/?:@-_.!*'"; + t = "x;/?:@-_.!*~'"; assertEquals("x;/?:@-_.!*'", p.parse(t, Object.class)); assertEquals("x;/?:@-_.!*'", pe.parse(t, Object.class)); // 2nd level - t = "$o(x;/?:@-_.!*'=x;/?:@-_.!*')"; + t = "(x;/?:@-_.!*~'=x;/?:@-_.!*~')"; m = (Map)p.parse(t, Object.class); assertEquals("x;/?:@-_.!*'", m.get("x;/?:@-_.!*'")); m = p.parse(t, HashMap.class, String.class, Object.class); @@ -277,7 +269,7 @@ public class UonParserTest { assertEquals("x{}|\\^[]`<>#%\"&+", pe.parse(t, String.class)); // 2nd level - t = "$o(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)"; + t = "(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)"; m = (Map)p.parse(t, Object.class); assertEquals("x{}|\\^[]`<>#%\"&+", m.get("x{}|\\^[]`<>#%\"&+")); try { @@ -286,30 +278,24 @@ public class UonParserTest { } catch (ParseException e) { // Good. } - t = "$o(x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B)"; + t = "(x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B)"; m = (Map)pe.parse(t, Object.class); assertEquals("x{}|\\^[]`<>#%\"&+", m.get("x{}|\\^[]`<>#%\"&+")); // Special chars // Top level - t = "x~$~,~(~)"; - assertEquals("x$,()", p.parse(t, Object.class)); - t = "(x~$~,~(~))"; - assertEquals("x$,()", p.parse(t, Object.class)); - t = "$s(x~$~,~(~))"; - assertEquals("x$,()", p.parse(t, Object.class)); + t = "'x$,()~''"; + assertEquals("x$,()'", p.parse(t, Object.class)); + t = " 'x$,()~'' "; + assertEquals("x$,()'", p.parse(t, Object.class)); // 2nd level - // Note behavior on serializeParams() is different since 2nd-level is top level. - t = "$o(x~$~,~(~)=x~$~,~(~))"; + t = "('x$,()~''='x$,()~'')"; m = (Map)p.parse(t, Object.class); - assertEquals("x$,()", m.get("x$,()")); - t = "$o((x~$~,~(~))=(x~$~,~(~)))"; + assertEquals("x$,()'", m.get("x$,()'")); + t = " ( 'x$,()~'' = 'x$,()~'' ) "; m = (Map)p.parse(t, Object.class); - assertEquals("x$,()", m.get("x$,()")); - t = "$o($s(x~$~,~(~))=$s(x~$~,~(~)))"; - m = (Map)p.parse(t, Object.class); - assertEquals("x$,()", m.get("x$,()")); + assertEquals("x$,()'", m.get("x$,()'")); // Equals sign // Gets encoded at top level, and encoded+escaped at 2nd level. @@ -320,79 +306,64 @@ public class UonParserTest { assertEquals("x=", pe.parse(t, Object.class)); // 2nd level - t = "$o(x~==x~=)"; + t = "('x='='x=')"; m = (Map)p.parse(t, Object.class); assertEquals("x=", m.get("x=")); - t = "$o((x~=)=(x~=))"; + t = "('x='='x=')"; m = (Map)p.parse(t, Object.class); assertEquals("x=", m.get("x=")); - t = "$o($s(x~=)=$s(x~=))"; + t = " ( 'x=' = 'x=' ) "; m = (Map)p.parse(t, Object.class); assertEquals("x=", m.get("x=")); - t = "(x~==x~=)"; + t = "('x='='x=')"; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals("x=", m.get("x=")); - t = "((x~=)=(x~=))"; + t = " ( 'x=' = 'x=' ) "; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals("x=", m.get("x=")); - t = "($s(x~=)=$s(x~=))"; - m = p.parse(t, HashMap.class, String.class, Object.class); - assertEquals("x=", m.get("x=")); - t = "$o(x~%3D=x~%3D)"; - m = (Map)pe.parse(t, Object.class); - assertEquals("x=", m.get("x=")); - t = "$o((x~%3D)=(x~%3D))"; + t = "('x%3D'='x%3D')"; m = (Map)pe.parse(t, Object.class); assertEquals("x=", m.get("x=")); - t = "$o($s(x~%3D)=$s(x~%3D))"; + t = " ( 'x%3D' = 'x%3D' ) "; m = (Map)pe.parse(t, Object.class); assertEquals("x=", m.get("x=")); - t = "(x~%3D=x~%3D)"; - m = pe.parse(t, HashMap.class, String.class, Object.class); - assertEquals("x=", m.get("x=")); - t = "((x~%3D)=(x~%3D))"; - m = pe.parse(t, HashMap.class, String.class, Object.class); - assertEquals("x=", m.get("x=")); - t = "($s(x~%3D)=$s(x~%3D))"; - m = pe.parse(t, HashMap.class, String.class, Object.class); - assertEquals("x=", m.get("x=")); // String starting with parenthesis // Top level - t = "~(~)"; + t = "'()'"; assertEquals("()", p.parse(t, Object.class)); assertEquals("()", p.parse(t, String.class)); - t = "(~(~))"; - assertEquals("()", p.parse(t, Object.class)); - assertEquals("()", p.parse(t, String.class)); - t = "$s(~(~))"; + t = " '()' "; assertEquals("()", p.parse(t, Object.class)); assertEquals("()", p.parse(t, String.class)); // 2nd level - t = "$o((~(~))=(~(~)))"; + t = "('()'='()')"; m = (Map)p.parse(t, Object.class); assertEquals("()", m.get("()")); - t = "((~(~))=(~(~)))"; - m = p.parse(t, HashMap.class, String.class, Object.class); - assertEquals("()", m.get("()")); - t = "($s(~(~))=$s(~(~)))"; + t = " ( '()' = '()' ) "; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals("()", m.get("()")); // String starting with $ // Top level - t = "($a)"; + t = "$a"; assertEquals("$a", p.parse(t, Object.class)); - t = "($a)"; + t = "'$a'"; assertEquals("$a", p.parse(t, Object.class)); // 2nd level - t = "$o(($a)=($a))"; + t = "($a=$a)"; + m = (Map)p.parse(t, Object.class); + assertEquals("$a", m.get("$a")); + t = " ( $a = $a ) "; m = (Map)p.parse(t, Object.class); assertEquals("$a", m.get("$a")); - t = "(($a)=($a))"; + t = "('$a'='$a')"; + m = p.parse(t, HashMap.class, String.class, Object.class); + assertEquals("$a", m.get("$a")); + t = " ( '$a' = '$a' ) "; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals("$a", m.get("$a")); @@ -403,36 +374,36 @@ public class UonParserTest { assertEquals("", pe.parse(t, Object.class)); // 2nd level - t = "$o(=)"; + t = "(=)"; m = (Map)p.parse(t, Object.class); assertEquals("", m.get("")); - t = "(=)"; + t = "(''='')"; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals("", m.get("")); // 3rd level - t = "$o(=$o(=))"; + t = "(=(=))"; m = (Map)p.parse(t, Object.class); assertEquals("", ((Map)m.get("")).get("")); - t = "(=(=))"; + t = " ( = ( = ) ) "; m = p.parse(t, HashMap.class, String.class, HashMap.class); assertEquals("", ((Map)m.get("")).get("")); // Newline character // Top level - t = "(%0A)"; + t = "'%0A'"; assertEquals("\n", pe.parse(t, Object.class)); assertEquals("%0A", p.parse(t, Object.class)); // 2nd level - t = "$o((%0A)=(%0A))"; + t = "('%0A'='%0A')"; m = (Map)pe.parse(t, Object.class); assertEquals("\n", m.get("\n")); m = (Map)p.parse(t, Object.class); assertEquals("%0A", m.get("%0A")); // 3rd level - t = "$o((%0A)=$o((%0A)=(%0A)))"; + t = "('%0A'=('%0A'='%0A'))"; m = (Map)pe.parse(t, Object.class); assertEquals("\n", ((Map)m.get("\n")).get("\n")); } @@ -455,18 +426,18 @@ public class UonParserTest { assertEquals("¢", pe.parse(t, String.class)); // 2nd level - t = "$o(¢=¢)"; + t = "(¢=¢)"; m = (Map)p.parse(t, Object.class); assertEquals("¢", m.get("¢")); - t = "$o(%C2%A2=%C2%A2)"; + t = "(%C2%A2=%C2%A2)"; m = (Map)pe.parse(t, Object.class); assertEquals("¢", m.get("¢")); // 3rd level - t = "$o(¢=$o(¢=¢))"; + t = "(¢=(¢=¢))"; m = (Map)p.parse(t, Object.class); assertEquals("¢", ((Map)m.get("¢")).get("¢")); - t = "$o(%C2%A2=$o(%C2%A2=%C2%A2))"; + t = "(%C2%A2=(%C2%A2=%C2%A2))"; m = (Map)pe.parse(t, Object.class); assertEquals("¢", ((Map)m.get("¢")).get("¢")); @@ -480,18 +451,18 @@ public class UonParserTest { assertEquals("â¬", pe.parse(t, String.class)); // 2nd level - t = "$o(â¬=â¬)"; + t = "(â¬=â¬)"; m = (Map)p.parse(t, Object.class); assertEquals("â¬", m.get("â¬")); - t = "$o(%E2%82%AC=%E2%82%AC)"; + t = "(%E2%82%AC=%E2%82%AC)"; m = (Map)pe.parse(t, Object.class); assertEquals("â¬", m.get("â¬")); // 3rd level - t = "$o(â¬=$o(â¬=â¬))"; + t = "(â¬=(â¬=â¬))"; m = (Map)p.parse(t, Object.class); assertEquals("â¬", ((Map)m.get("â¬")).get("â¬")); - t = "$o(%E2%82%AC=$o(%E2%82%AC=%E2%82%AC))"; + t = "(%E2%82%AC=(%E2%82%AC=%E2%82%AC))"; m = (Map)pe.parse(t, Object.class); assertEquals("â¬", ((Map)m.get("â¬")).get("â¬")); @@ -505,18 +476,18 @@ public class UonParserTest { assertEquals("ð¤¢", pe.parse(t, String.class)); // 2nd level - t = "$o(ð¤¢=ð¤¢)"; + t = "(ð¤¢=ð¤¢)"; m = (Map)p.parse(t, Object.class); assertEquals("ð¤¢", m.get("ð¤¢")); - t = "$o(%F0%A4%AD%A2=%F0%A4%AD%A2)"; + t = "(%F0%A4%AD%A2=%F0%A4%AD%A2)"; m = (Map)pe.parse(t, Object.class); assertEquals("ð¤¢", m.get("ð¤¢")); // 3rd level - t = "$o(ð¤¢=$o(ð¤¢=ð¤¢))"; + t = "(ð¤¢=(ð¤¢=ð¤¢))"; m = (Map)p.parse(t, Object.class); assertEquals("ð¤¢", ((Map)m.get("ð¤¢")).get("ð¤¢")); - t = "$o(%F0%A4%AD%A2=$o(%F0%A4%AD%A2=%F0%A4%AD%A2))"; + t = "(%F0%A4%AD%A2=(%F0%A4%AD%A2=%F0%A4%AD%A2))"; m = (Map)pe.parse(t, Object.class); assertEquals("ð¤¢", ((Map)m.get("ð¤¢")).get("ð¤¢")); } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java index 3787f90..4c6d001 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UonSerializerTest.java @@ -21,9 +21,7 @@ import org.junit.*; public class UonSerializerTest { static UonSerializer s = UonSerializer.DEFAULT_ENCODING; - static UonSerializer ss = UonSerializer.DEFAULT_SIMPLE_ENCODING; static UonSerializer su = UonSerializer.DEFAULT; - static UonSerializer ssu = UonSerializer.DEFAULT_SIMPLE; static UonSerializer sr = UonSerializer.DEFAULT_READABLE; @@ -39,341 +37,261 @@ public class UonSerializerTest { // Top level t = "a"; assertEquals("a", s.serialize(t)); - assertEquals("a", ss.serialize(t)); assertEquals("a", su.serialize(t)); - assertEquals("a", ssu.serialize(t)); assertEquals("a", sr.serialize(t)); // 2nd level t = new ObjectMap("{a:'a'}"); - assertEquals("$o(a=a)", s.serialize(t)); - assertEquals("(a=a)", ss.serialize(t)); - assertEquals("$o(a=a)", su.serialize(t)); - assertEquals("(a=a)", ssu.serialize(t)); - assertEquals("$o(\n\ta=a\n)", sr.serialize(t)); + assertEquals("(a=a)", s.serialize(t)); + assertEquals("(a=a)", su.serialize(t)); + assertEquals("(\n\ta=a\n)", sr.serialize(t)); // Simple map // Top level t = new ObjectMap("{a:'b',c:123,d:false,e:true,f:null}"); - assertEquals("$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=%00)", s.serialize(t)); - assertEquals("(a=b,c=123,d=false,e=true,f=%00)", ss.serialize(t)); - assertEquals("$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=\u0000)", su.serialize(t)); - assertEquals("(a=b,c=123,d=false,e=true,f=\u0000)", ssu.serialize(t)); - assertEquals("$o(\n\ta=b,\n\tc=$n(123),\n\td=$b(false),\n\te=$b(true),\n\tf=\u0000\n)", sr.serialize(t)); + assertEquals("(a=b,c=123,d=false,e=true,f=null)", s.serialize(t)); + assertEquals("(a=b,c=123,d=false,e=true,f=null)", su.serialize(t)); + assertEquals("(\n\ta=b,\n\tc=123,\n\td=false,\n\te=true,\n\tf=null\n)", sr.serialize(t)); // 2nd level t = new ObjectMap("{a:{a:'b',c:123,d:false,e:true,f:null}}"); - assertEquals("$o(a=$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=%00))", s.serialize(t)); - assertEquals("(a=(a=b,c=123,d=false,e=true,f=%00))", ss.serialize(t)); - assertEquals("$o(a=$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=\u0000))", su.serialize(t)); - assertEquals("(a=(a=b,c=123,d=false,e=true,f=\u0000))", ssu.serialize(t)); - assertEquals("$o(\n\ta=$o(\n\t\ta=b,\n\t\tc=$n(123),\n\t\td=$b(false),\n\t\te=$b(true),\n\t\tf=\u0000\n\t)\n)", sr.serialize(t)); + assertEquals("(a=(a=b,c=123,d=false,e=true,f=null))", s.serialize(t)); + assertEquals("(a=(a=b,c=123,d=false,e=true,f=null))", su.serialize(t)); + assertEquals("(\n\ta=(\n\t\ta=b,\n\t\tc=123,\n\t\td=false,\n\t\te=true,\n\t\tf=null\n\t)\n)", sr.serialize(t)); // Simple map with primitives as literals t = new ObjectMap("{a:'b',c:'123',d:'false',e:'true',f:'null'}"); - assertEquals("$o(a=b,c=123,d=false,e=true,f=null)", s.serialize(t)); - assertEquals("(a=b,c=123,d=false,e=true,f=null)", ss.serialize(t)); - assertEquals("$o(a=b,c=123,d=false,e=true,f=null)", su.serialize(t)); - assertEquals("(a=b,c=123,d=false,e=true,f=null)", ssu.serialize(t)); - assertEquals("$o(\n\ta=b,\n\tc=123,\n\td=false,\n\te=true,\n\tf=null\n)", sr.serialize(t)); + assertEquals("(a=b,c='123',d='false',e='true',f='null')", s.serialize(t)); + assertEquals("(a=b,c='123',d='false',e='true',f='null')", su.serialize(t)); + assertEquals("(\n\ta=b,\n\tc='123',\n\td='false',\n\te='true',\n\tf='null'\n)", sr.serialize(t)); // null // Note that serializeParams is always encoded. // Top level t = null; - assertEquals("%00", s.serialize(t)); - assertEquals("%00", ss.serialize(t)); - assertEquals("\u0000", su.serialize(t)); - assertEquals("\u0000", ssu.serialize(t)); - assertEquals("\u0000", sr.serialize(t)); + assertEquals("null", s.serialize(t)); + assertEquals("null", su.serialize(t)); + assertEquals("null", sr.serialize(t)); // 2nd level t = new ObjectMap("{null:null}"); - assertEquals("$o(%00=%00)", s.serialize(t)); - assertEquals("(%00=%00)", ss.serialize(t)); - assertEquals("$o(\u0000=\u0000)", su.serialize(t)); - assertEquals("(\u0000=\u0000)", ssu.serialize(t)); - assertEquals("$o(\n\t\u0000=\u0000\n)", sr.serialize(t)); + assertEquals("(null=null)", s.serialize(t)); + assertEquals("(null=null)", su.serialize(t)); + assertEquals("(\n\tnull=null\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{null:{null:null}}"); - assertEquals("$o(%00=$o(%00=%00))", s.serialize(t)); - assertEquals("(%00=(%00=%00))", ss.serialize(t)); - assertEquals("$o(\u0000=$o(\u0000=\u0000))", su.serialize(t)); - assertEquals("(\u0000=(\u0000=\u0000))", ssu.serialize(t)); - assertEquals("$o(\n\t\u0000=$o(\n\t\t\u0000=\u0000\n\t)\n)", sr.serialize(t)); + assertEquals("(null=(null=null))", s.serialize(t)); + assertEquals("(null=(null=null))", su.serialize(t)); + assertEquals("(\n\tnull=(\n\t\tnull=null\n\t)\n)", sr.serialize(t)); // Empty array // Top level t = new String[0]; - assertEquals("$a()", s.serialize(t)); - assertEquals("()", ss.serialize(t)); - assertEquals("$a()", su.serialize(t)); - assertEquals("()", ssu.serialize(t)); - assertEquals("$a()", sr.serialize(t)); + assertEquals("@()", s.serialize(t)); + assertEquals("@()", su.serialize(t)); + assertEquals("@()", sr.serialize(t)); // 2nd level in map t = new ObjectMap("{x:[]}"); - assertEquals("$o(x=$a())", s.serialize(t)); - assertEquals("(x=())", ss.serialize(t)); - assertEquals("$o(x=$a())", su.serialize(t)); - assertEquals("(x=())", ssu.serialize(t)); - assertEquals("$o(\n\tx=$a()\n)", sr.serialize(t)); + assertEquals("(x=@())", s.serialize(t)); + assertEquals("(x=@())", su.serialize(t)); + assertEquals("(\n\tx=@()\n)", sr.serialize(t)); // Empty 2 dimensional array t = new String[1][0]; - assertEquals("$a($a())", s.serialize(t)); - assertEquals("(())", ss.serialize(t)); - assertEquals("$a($a())", su.serialize(t)); - assertEquals("(())", ssu.serialize(t)); - assertEquals("$a(\n\t$a()\n)", sr.serialize(t)); + assertEquals("@(@())", s.serialize(t)); + assertEquals("@(@())", su.serialize(t)); + assertEquals("@(\n\t@()\n)", sr.serialize(t)); // Array containing empty string // Top level t = new String[]{""}; - assertEquals("$a(())", s.serialize(t)); - assertEquals("(())", ss.serialize(t)); - assertEquals("$a(())", su.serialize(t)); - assertEquals("(())", ssu.serialize(t)); - assertEquals("$a(\n\t()\n)", sr.serialize(t)); + assertEquals("@('')", s.serialize(t)); + assertEquals("@('')", su.serialize(t)); + assertEquals("@(\n\t''\n)", sr.serialize(t)); // 2nd level t = new ObjectMap("{x:['']}"); - assertEquals("$o(x=$a(()))", s.serialize(t)); - assertEquals("(x=(()))", ss.serialize(t)); - assertEquals("$o(x=$a(()))", su.serialize(t)); - assertEquals("(x=(()))", ssu.serialize(t)); - assertEquals("$o(\n\tx=$a(\n\t\t()\n\t)\n)", sr.serialize(t)); + assertEquals("(x=@(''))", s.serialize(t)); + assertEquals("(x=@(''))", su.serialize(t)); + assertEquals("(\n\tx=@(\n\t\t''\n\t)\n)", sr.serialize(t)); // Array containing 3 empty strings t = new String[]{"","",""}; - assertEquals("$a(,,)", s.serialize(t)); - assertEquals("(,,)", ss.serialize(t)); - assertEquals("$a(,,)", su.serialize(t)); - assertEquals("(,,)", ssu.serialize(t)); - assertEquals("$a(\n\t(),\n\t(),\n\t()\n)", sr.serialize(t)); + assertEquals("@('','','')", s.serialize(t)); + assertEquals("@('','','')", su.serialize(t)); + assertEquals("@(\n\t'',\n\t'',\n\t''\n)", sr.serialize(t)); // String containing \u0000 // Top level t = "\u0000"; - assertEquals("(%00)", s.serialize(t)); - assertEquals("(%00)", ss.serialize(t)); - assertEquals("(\u0000)", su.serialize(t)); - assertEquals("(\u0000)", ssu.serialize(t)); - assertEquals("(\u0000)", sr.serialize(t)); + assertEquals("%00", s.serialize(t)); + assertEquals("\u0000", su.serialize(t)); + assertEquals("\u0000", sr.serialize(t)); // 2nd level t = new ObjectMap("{'\u0000':'\u0000'}"); - assertEquals("$o((%00)=(%00))", s.serialize(t)); - assertEquals("((%00)=(%00))", ss.serialize(t)); - assertEquals("$o((\u0000)=(\u0000))", su.serialize(t)); - assertEquals("((\u0000)=(\u0000))", ssu.serialize(t)); - assertEquals("$o(\n\t(\u0000)=(\u0000)\n)", sr.serialize(t)); + assertEquals("(%00=%00)", s.serialize(t)); + assertEquals("(\u0000=\u0000)", su.serialize(t)); + assertEquals("(\n\t\u0000=\u0000\n)", sr.serialize(t)); // Boolean // Top level t = false; - assertEquals("$b(false)", s.serialize(t)); - assertEquals("false", ss.serialize(t)); - assertEquals("$b(false)", su.serialize(t)); - assertEquals("false", ssu.serialize(t)); - assertEquals("$b(false)", sr.serialize(t)); + assertEquals("false", s.serialize(t)); + assertEquals("false", su.serialize(t)); + assertEquals("false", sr.serialize(t)); // 2nd level t = new ObjectMap("{x:false}"); - assertEquals("$o(x=$b(false))", s.serialize(t)); - assertEquals("(x=false)", ss.serialize(t)); - assertEquals("$o(x=$b(false))", su.serialize(t)); - assertEquals("(x=false)", ssu.serialize(t)); - assertEquals("$o(\n\tx=$b(false)\n)", sr.serialize(t)); + assertEquals("(x=false)", s.serialize(t)); + assertEquals("(x=false)", su.serialize(t)); + assertEquals("(\n\tx=false\n)", sr.serialize(t)); // Number // Top level t = 123; - assertEquals("$n(123)", s.serialize(t)); - assertEquals("123", ss.serialize(t)); - assertEquals("$n(123)", su.serialize(t)); - assertEquals("123", ssu.serialize(t)); - assertEquals("$n(123)", sr.serialize(t)); + assertEquals("123", s.serialize(t)); + assertEquals("123", su.serialize(t)); + assertEquals("123", sr.serialize(t)); // 2nd level t = new ObjectMap("{x:123}"); - assertEquals("$o(x=$n(123))", s.serialize(t)); - assertEquals("(x=123)", ss.serialize(t)); - assertEquals("$o(x=$n(123))", su.serialize(t)); - assertEquals("(x=123)", ssu.serialize(t)); - assertEquals("$o(\n\tx=$n(123)\n)", sr.serialize(t)); + assertEquals("(x=123)", s.serialize(t)); + assertEquals("(x=123)", su.serialize(t)); + assertEquals("(\n\tx=123\n)", sr.serialize(t)); // Unencoded chars // Top level t = "x;/?:@-_.!*'"; - assertEquals("x;/?:@-_.!*'", s.serialize(t)); - assertEquals("x;/?:@-_.!*'", ss.serialize(t)); - assertEquals("x;/?:@-_.!*'", su.serialize(t)); - assertEquals("x;/?:@-_.!*'", ssu.serialize(t)); - assertEquals("x;/?:@-_.!*'", sr.serialize(t)); + assertEquals("x;/?:@-_.!*~'", s.serialize(t)); + assertEquals("x;/?:@-_.!*~'", su.serialize(t)); + assertEquals("x;/?:@-_.!*~'", sr.serialize(t)); // 2nd level t = new ObjectMap("{x:'x;/?:@-_.!*\\''}"); - assertEquals("$o(x=x;/?:@-_.!*')", s.serialize(t)); - assertEquals("(x=x;/?:@-_.!*')", ss.serialize(t)); - assertEquals("$o(x=x;/?:@-_.!*')", su.serialize(t)); - assertEquals("(x=x;/?:@-_.!*')", ssu.serialize(t)); - assertEquals("$o(\n\tx=x;/?:@-_.!*'\n)", sr.serialize(t)); + assertEquals("(x=x;/?:@-_.!*~')", s.serialize(t)); + assertEquals("(x=x;/?:@-_.!*~')", su.serialize(t)); + assertEquals("(\n\tx=x;/?:@-_.!*~'\n)", sr.serialize(t)); // Encoded chars // Top level t = "x{}|\\^[]`<>#%\"&+"; assertEquals("x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B", s.serialize(t)); - assertEquals("x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B", ss.serialize(t)); assertEquals("x{}|\\^[]`<>#%\"&+", su.serialize(t)); - assertEquals("x{}|\\^[]`<>#%\"&+", ssu.serialize(t)); assertEquals("x{}|\\^[]`<>#%\"&+", sr.serialize(t)); // 2nd level t = new ObjectMap("{'x{}|\\\\^[]`<>#%\"&+':'x{}|\\\\^[]`<>#%\"&+'}"); - assertEquals("$o(x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B)", s.serialize(t)); - assertEquals("(x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B)", ss.serialize(t)); - assertEquals("$o(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)", su.serialize(t)); - assertEquals("(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)", ssu.serialize(t)); - assertEquals("$o(\n\tx{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+\n)", sr.serialize(t)); + assertEquals("(x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B=x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B)", s.serialize(t)); + assertEquals("(x{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+)", su.serialize(t)); + assertEquals("(\n\tx{}|\\^[]`<>#%\"&+=x{}|\\^[]`<>#%\"&+\n)", sr.serialize(t)); // Escaped chars // Top level t = "x$,()~"; - assertEquals("x$,()~", s.serialize(t)); - assertEquals("x$,()~", ss.serialize(t)); - assertEquals("x$,()~", su.serialize(t)); - assertEquals("x$,()~", ssu.serialize(t)); - assertEquals("x$,()~", sr.serialize(t)); + assertEquals("'x$,()~~'", s.serialize(t)); + assertEquals("'x$,()~~'", su.serialize(t)); + assertEquals("'x$,()~~'", sr.serialize(t)); // 2nd level // Note behavior on serializeParams() is different since 2nd-level is top level. t = new ObjectMap("{'x$,()~':'x$,()~'}"); - assertEquals("$o(x$~,~(~)~~=x$~,~(~)~~)", s.serialize(t)); - assertEquals("(x$~,~(~)~~=x$~,~(~)~~)", ss.serialize(t)); - assertEquals("$o(x$~,~(~)~~=x$~,~(~)~~)", su.serialize(t)); - assertEquals("(x$~,~(~)~~=x$~,~(~)~~)", ssu.serialize(t)); - assertEquals("$o(\n\tx$~,~(~)~~=x$~,~(~)~~\n)", sr.serialize(t)); + assertEquals("('x$,()~~'='x$,()~~')", s.serialize(t)); + assertEquals("('x$,()~~'='x$,()~~')", su.serialize(t)); + assertEquals("(\n\t'x$,()~~'='x$,()~~'\n)", sr.serialize(t)); // 3rd level // Note behavior on serializeParams(). t = new ObjectMap("{'x$,()~':{'x$,()~':'x$,()~'}}"); - assertEquals("$o(x$~,~(~)~~=$o(x$~,~(~)~~=x$~,~(~)~~))", s.serialize(t)); - assertEquals("(x$~,~(~)~~=(x$~,~(~)~~=x$~,~(~)~~))", ss.serialize(t)); - assertEquals("$o(x$~,~(~)~~=$o(x$~,~(~)~~=x$~,~(~)~~))", su.serialize(t)); - assertEquals("(x$~,~(~)~~=(x$~,~(~)~~=x$~,~(~)~~))", ssu.serialize(t)); - assertEquals("$o(\n\tx$~,~(~)~~=$o(\n\t\tx$~,~(~)~~=x$~,~(~)~~\n\t)\n)", sr.serialize(t)); + assertEquals("('x$,()~~'=('x$,()~~'='x$,()~~'))", s.serialize(t)); + assertEquals("('x$,()~~'=('x$,()~~'='x$,()~~'))", su.serialize(t)); + assertEquals("(\n\t'x$,()~~'=(\n\t\t'x$,()~~'='x$,()~~'\n\t)\n)", sr.serialize(t)); // Equals sign // Gets encoded at top level, and encoded+escaped at 2nd level. // Top level t = "x="; - assertEquals("x=", s.serialize(t)); - assertEquals("x=", ss.serialize(t)); - assertEquals("x=", su.serialize(t)); - assertEquals("x=", ssu.serialize(t)); - assertEquals("x=", sr.serialize(t)); + assertEquals("'x='", s.serialize(t)); + assertEquals("'x='", su.serialize(t)); + assertEquals("'x='", sr.serialize(t)); // 2nd level t = new ObjectMap("{'x=':'x='}"); - assertEquals("$o(x~==x~=)", s.serialize(t)); - assertEquals("(x~==x~=)", ss.serialize(t)); - assertEquals("$o(x~==x~=)", su.serialize(t)); - assertEquals("(x~==x~=)", ssu.serialize(t)); - assertEquals("$o(\n\tx~==x~=\n)", sr.serialize(t)); + assertEquals("('x='='x=')", s.serialize(t)); + assertEquals("('x='='x=')", su.serialize(t)); + assertEquals("(\n\t'x='='x='\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{'x=':{'x=':'x='}}"); - assertEquals("$o(x~==$o(x~==x~=))", s.serialize(t)); - assertEquals("(x~==(x~==x~=))", ss.serialize(t)); - assertEquals("$o(x~==$o(x~==x~=))", su.serialize(t)); - assertEquals("(x~==(x~==x~=))", ssu.serialize(t)); - assertEquals("$o(\n\tx~==$o(\n\t\tx~==x~=\n\t)\n)", sr.serialize(t)); + assertEquals("('x='=('x='='x='))", s.serialize(t)); + assertEquals("('x='=('x='='x='))", su.serialize(t)); + assertEquals("(\n\t'x='=(\n\t\t'x='='x='\n\t)\n)", sr.serialize(t)); // String starting with parenthesis // Top level t = "()"; - assertEquals("(~(~))", s.serialize(t)); - assertEquals("(~(~))", ss.serialize(t)); - assertEquals("(~(~))", su.serialize(t)); - assertEquals("(~(~))", ssu.serialize(t)); - assertEquals("(~(~))", sr.serialize(t)); + assertEquals("'()'", s.serialize(t)); + assertEquals("'()'", su.serialize(t)); + assertEquals("'()'", sr.serialize(t)); // 2nd level t = new ObjectMap("{'()':'()'}"); - assertEquals("$o((~(~))=(~(~)))", s.serialize(t)); - assertEquals("((~(~))=(~(~)))", ss.serialize(t)); - assertEquals("$o((~(~))=(~(~)))", su.serialize(t)); - assertEquals("((~(~))=(~(~)))", ssu.serialize(t)); - assertEquals("$o(\n\t(~(~))=(~(~))\n)", sr.serialize(t)); + assertEquals("('()'='()')", s.serialize(t)); + assertEquals("('()'='()')", su.serialize(t)); + assertEquals("(\n\t'()'='()'\n)", sr.serialize(t)); // String starting with $ // Top level t = "$a"; - assertEquals("($a)", s.serialize(t)); - assertEquals("($a)", ss.serialize(t)); - assertEquals("($a)", su.serialize(t)); - assertEquals("($a)", ssu.serialize(t)); - assertEquals("($a)", sr.serialize(t)); + assertEquals("$a", s.serialize(t)); + assertEquals("$a", su.serialize(t)); + assertEquals("$a", sr.serialize(t)); // 2nd level t = new ObjectMap("{$a:'$a'}"); - assertEquals("$o(($a)=($a))", s.serialize(t)); - assertEquals("(($a)=($a))", ss.serialize(t)); - assertEquals("$o(($a)=($a))", su.serialize(t)); - assertEquals("(($a)=($a))", ssu.serialize(t)); - assertEquals("$o(\n\t($a)=($a)\n)", sr.serialize(t)); + assertEquals("($a=$a)", s.serialize(t)); + assertEquals("($a=$a)", su.serialize(t)); + assertEquals("(\n\t$a=$a\n)", sr.serialize(t)); // Blank string // Top level t = ""; - assertEquals("", s.serialize(t)); - assertEquals("", ss.serialize(t)); - assertEquals("", su.serialize(t)); - assertEquals("", ssu.serialize(t)); - assertEquals("", sr.serialize(t)); + assertEquals("''", s.serialize(t)); + assertEquals("''", su.serialize(t)); + assertEquals("''", sr.serialize(t)); // 2nd level t = new ObjectMap("{'':''}"); - assertEquals("$o(=)", s.serialize(t)); - assertEquals("(=)", ss.serialize(t)); - assertEquals("$o(=)", su.serialize(t)); - assertEquals("(=)", ssu.serialize(t)); - assertEquals("$o(\n\t()=()\n)", sr.serialize(t)); + assertEquals("(''='')", s.serialize(t)); + assertEquals("(''='')", su.serialize(t)); + assertEquals("(\n\t''=''\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{'':{'':''}}"); - assertEquals("$o(=$o(=))", s.serialize(t)); - assertEquals("(=(=))", ss.serialize(t)); - assertEquals("$o(=$o(=))", su.serialize(t)); - assertEquals("(=(=))", ssu.serialize(t)); - assertEquals("$o(\n\t()=$o(\n\t\t()=()\n\t)\n)", sr.serialize(t)); + assertEquals("(''=(''=''))", s.serialize(t)); + assertEquals("(''=(''=''))", su.serialize(t)); + assertEquals("(\n\t''=(\n\t\t''=''\n\t)\n)", sr.serialize(t)); // Newline character // Top level t = "\n"; - assertEquals("%0A", s.serialize(t)); - assertEquals("%0A", ss.serialize(t)); - assertEquals("\n", su.serialize(t)); - assertEquals("\n", ssu.serialize(t)); - assertEquals("(\n)", sr.serialize(t)); + assertEquals("'%0A'", s.serialize(t)); + assertEquals("'\n'", su.serialize(t)); + assertEquals("'\n'", sr.serialize(t)); // 2nd level t = new ObjectMap("{'\n':'\n'}"); - assertEquals("$o(%0A=%0A)", s.serialize(t)); - assertEquals("(%0A=%0A)", ss.serialize(t)); - assertEquals("$o(\n=\n)", su.serialize(t)); - assertEquals("(\n=\n)", ssu.serialize(t)); - assertEquals("$o(\n\t(\n)=(\n)\n)", sr.serialize(t)); + assertEquals("('%0A'='%0A')", s.serialize(t)); + assertEquals("('\n'='\n')", su.serialize(t)); + assertEquals("(\n\t'\n'='\n'\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{'\n':{'\n':'\n'}}"); - assertEquals("$o(%0A=$o(%0A=%0A))", s.serialize(t)); - assertEquals("(%0A=(%0A=%0A))", ss.serialize(t)); - assertEquals("$o(\n=$o(\n=\n))", su.serialize(t)); - assertEquals("(\n=(\n=\n))", ssu.serialize(t)); - assertEquals("$o(\n\t(\n)=$o(\n\t\t(\n)=(\n)\n\t)\n)", sr.serialize(t)); + assertEquals("('%0A'=('%0A'='%0A'))", s.serialize(t)); + assertEquals("('\n'=('\n'='\n'))", su.serialize(t)); + assertEquals("(\n\t'\n'=(\n\t\t'\n'='\n'\n\t)\n)", sr.serialize(t)); } //==================================================================================================== @@ -387,75 +305,57 @@ public class UonSerializerTest { // Top level t = "¢"; assertEquals("%C2%A2", s.serialize(t)); - assertEquals("%C2%A2", ss.serialize(t)); assertEquals("¢", su.serialize(t)); - assertEquals("¢", ssu.serialize(t)); assertEquals("¢", sr.serialize(t)); // 2nd level t = new ObjectMap("{'¢':'¢'}"); - assertEquals("$o(%C2%A2=%C2%A2)", s.serialize(t)); - assertEquals("(%C2%A2=%C2%A2)", ss.serialize(t)); - assertEquals("$o(¢=¢)", su.serialize(t)); - assertEquals("(¢=¢)", ssu.serialize(t)); - assertEquals("$o(\n\t¢=¢\n)", sr.serialize(t)); + assertEquals("(%C2%A2=%C2%A2)", s.serialize(t)); + assertEquals("(¢=¢)", su.serialize(t)); + assertEquals("(\n\t¢=¢\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{'¢':{'¢':'¢'}}"); - assertEquals("$o(%C2%A2=$o(%C2%A2=%C2%A2))", s.serialize(t)); - assertEquals("(%C2%A2=(%C2%A2=%C2%A2))", ss.serialize(t)); - assertEquals("$o(¢=$o(¢=¢))", su.serialize(t)); - assertEquals("(¢=(¢=¢))", ssu.serialize(t)); - assertEquals("$o(\n\t¢=$o(\n\t\t¢=¢\n\t)\n)", sr.serialize(t)); + assertEquals("(%C2%A2=(%C2%A2=%C2%A2))", s.serialize(t)); + assertEquals("(¢=(¢=¢))", su.serialize(t)); + assertEquals("(\n\t¢=(\n\t\t¢=¢\n\t)\n)", sr.serialize(t)); // 3-byte UTF-8 character // Top level t = "â¬"; assertEquals("%E2%82%AC", s.serialize(t)); - assertEquals("%E2%82%AC", ss.serialize(t)); assertEquals("â¬", su.serialize(t)); - assertEquals("â¬", ssu.serialize(t)); assertEquals("â¬", sr.serialize(t)); // 2nd level t = new ObjectMap("{'â¬':'â¬'}"); - assertEquals("$o(%E2%82%AC=%E2%82%AC)", s.serialize(t)); - assertEquals("(%E2%82%AC=%E2%82%AC)", ss.serialize(t)); - assertEquals("$o(â¬=â¬)", su.serialize(t)); - assertEquals("(â¬=â¬)", ssu.serialize(t)); - assertEquals("$o(\n\tâ¬=â¬\n)", sr.serialize(t)); + assertEquals("(%E2%82%AC=%E2%82%AC)", s.serialize(t)); + assertEquals("(â¬=â¬)", su.serialize(t)); + assertEquals("(\n\tâ¬=â¬\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{'â¬':{'â¬':'â¬'}}"); - assertEquals("$o(%E2%82%AC=$o(%E2%82%AC=%E2%82%AC))", s.serialize(t)); - assertEquals("(%E2%82%AC=(%E2%82%AC=%E2%82%AC))", ss.serialize(t)); - assertEquals("$o(â¬=$o(â¬=â¬))", su.serialize(t)); - assertEquals("(â¬=(â¬=â¬))", ssu.serialize(t)); - assertEquals("$o(\n\tâ¬=$o(\n\t\tâ¬=â¬\n\t)\n)", sr.serialize(t)); + assertEquals("(%E2%82%AC=(%E2%82%AC=%E2%82%AC))", s.serialize(t)); + assertEquals("(â¬=(â¬=â¬))", su.serialize(t)); + assertEquals("(\n\tâ¬=(\n\t\tâ¬=â¬\n\t)\n)", sr.serialize(t)); // 4-byte UTF-8 character // Top level t = "ð¤¢"; assertEquals("%F0%A4%AD%A2", s.serialize(t)); - assertEquals("%F0%A4%AD%A2", ss.serialize(t)); assertEquals("ð¤¢", su.serialize(t)); - assertEquals("ð¤¢", ssu.serialize(t)); assertEquals("ð¤¢", sr.serialize(t)); // 2nd level t = new ObjectMap("{'ð¤¢':'ð¤¢'}"); - assertEquals("$o(%F0%A4%AD%A2=%F0%A4%AD%A2)", s.serialize(t)); - assertEquals("(%F0%A4%AD%A2=%F0%A4%AD%A2)", ss.serialize(t)); - assertEquals("$o(ð¤¢=ð¤¢)", su.serialize(t)); - assertEquals("(ð¤¢=ð¤¢)", ssu.serialize(t)); - assertEquals("$o(\n\tð¤¢=ð¤¢\n)", sr.serialize(t)); + assertEquals("(%F0%A4%AD%A2=%F0%A4%AD%A2)", s.serialize(t)); + assertEquals("(ð¤¢=ð¤¢)", su.serialize(t)); + assertEquals("(\n\tð¤¢=ð¤¢\n)", sr.serialize(t)); // 3rd level t = new ObjectMap("{'ð¤¢':{'ð¤¢':'ð¤¢'}}"); - assertEquals("$o(%F0%A4%AD%A2=$o(%F0%A4%AD%A2=%F0%A4%AD%A2))", s.serialize(t)); - assertEquals("(%F0%A4%AD%A2=(%F0%A4%AD%A2=%F0%A4%AD%A2))", ss.serialize(t)); - assertEquals("$o(ð¤¢=$o(ð¤¢=ð¤¢))", su.serialize(t)); - assertEquals("(ð¤¢=(ð¤¢=ð¤¢))", ssu.serialize(t)); - assertEquals("$o(\n\tð¤¢=$o(\n\t\tð¤¢=ð¤¢\n\t)\n)", sr.serialize(t)); + assertEquals("(%F0%A4%AD%A2=(%F0%A4%AD%A2=%F0%A4%AD%A2))", s.serialize(t)); + assertEquals("(ð¤¢=(ð¤¢=ð¤¢))", su.serialize(t)); + assertEquals("(\n\tð¤¢=(\n\t\tð¤¢=ð¤¢\n\t)\n)", sr.serialize(t)); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java index 30ab795..753d585 100755 --- a/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java +++ b/juneau-core-test/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParserTest.java @@ -41,19 +41,19 @@ public class UrlEncodingParserTest { t = "_value=a"; assertEquals("a", p.parse(t, Object.class)); assertEquals("a", p.parse(t, String.class)); - t = "_value=(a)"; + t = "_value='a'"; assertEquals("a", p.parse(t, String.class)); assertEquals("a", p.parse(t, Object.class)); - t = "_value=$s(a)"; + t = "_value= 'a' "; assertEquals("a", p.parse(t, String.class)); t = "a"; assertEquals("a", p.parseParameter(t, Object.class)); assertEquals("a", p.parseParameter(t, String.class)); - t = "(a)"; + t = "'a'"; assertEquals("a", p.parseParameter(t, String.class)); assertEquals("a", p.parseParameter(t, Object.class)); - t = "$s(a)"; + t = " 'a' "; assertEquals("a", p.parseParameter(t, String.class)); // 2nd level @@ -62,7 +62,7 @@ public class UrlEncodingParserTest { // Simple map // Top level - t = "?a=b&c=$n(123)&d=$b(false)&e=$b(true)&f=%00"; + t = "?a=b&c=123&d=false&e=true&f=null"; m = p.parse(t, Map.class); assertEquals("b", m.get("a")); assertTrue(m.get("c") instanceof Number); @@ -73,7 +73,7 @@ public class UrlEncodingParserTest { assertEquals(Boolean.TRUE, m.get("e")); assertNull(m.get("f")); - t = "$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=%00)"; + t = "(a=b,c=123,d=false,e=true,f=%00)"; m = p.parseParameter(t, Map.class); assertEquals("b", m.get("a")); assertTrue(m.get("c") instanceof Number); @@ -84,7 +84,7 @@ public class UrlEncodingParserTest { assertEquals(Boolean.TRUE, m.get("e")); assertEquals("%00", m.get("f")); - t = "$o(a=b,c=$n(123),d=$b(false),e=$b(true),f=\u0000)"; + t = "(a=b,c=123,d=false,e=true,f=null)"; m = p.parseParameter(t, Map.class); assertTrue(m.containsKey("f")); assertNull(m.get("f")); @@ -96,75 +96,73 @@ public class UrlEncodingParserTest { // null // Top level - t = "_value=%00"; + t = "_value=null"; assertNull(p.parse(t, Object.class)); - t = "\u0000"; + t = "null"; assertNull(p.parseParameter(t, Object.class)); - t = "%00"; - assertEquals("%00", p.parseParameter(t, Object.class)); // 2nd level - t = "?%00=%00"; + t = "?null=null"; m = p.parse(t, Map.class); assertTrue(m.containsKey(null)); assertNull(m.get(null)); - t = "?\u0000=\u0000"; + t = "?null=null"; m = p.parse(t, Map.class); assertTrue(m.containsKey(null)); assertNull(m.get(null)); // 3rd level - t = "?%00=$o(%00=%00)"; + t = "?null=(null=null)"; m = p.parse(t, Map.class); assertTrue(((Map)m.get(null)).containsKey(null)); assertNull(((Map)m.get(null)).get(null)); // Empty array // Top level - t = "_value=$a()"; + t = "_value=@()"; l = (List)p.parse(t, Object.class); assertTrue(l.isEmpty()); - t = "_value=()"; + t = "_value= @( ) "; l = p.parse(t, List.class); assertTrue(l.isEmpty()); - t = "$a()"; + t = "@()"; l = (List)p.parseParameter(t, Object.class); assertTrue(l.isEmpty()); - t = "()"; + t = " @( ) "; l = p.parseParameter(t, List.class); assertTrue(l.isEmpty()); // 2nd level in map - t = "?x=$a()"; + t = "?x=@()"; m = p.parse(t, HashMap.class, String.class, List.class); assertTrue(m.containsKey("x")); assertTrue(((List)m.get("x")).isEmpty()); m = (Map)p.parse(t, Object.class); assertTrue(m.containsKey("x")); assertTrue(((List)m.get("x")).isEmpty()); - t = "?x=()"; + t = "?x=@()"; m = p.parse(t, HashMap.class, String.class, List.class); assertTrue(m.containsKey("x")); assertTrue(((List)m.get("x")).isEmpty()); // Empty 2 dimensional array - t = "_value=$a($a())"; + t = "_value=@(@())"; l = (List)p.parse(t, Object.class); assertTrue(l.size() == 1); l = (List)l.get(0); assertTrue(l.isEmpty()); - t = "0=()"; + t = "0=@()"; l = p.parse(t, LinkedList.class, List.class); assertTrue(l.size() == 1); l = (List)l.get(0); assertTrue(l.isEmpty()); - t = "$a($a())"; + t = "@(@())"; l = (List)p.parseParameter(t, Object.class); assertTrue(l.size() == 1); l = (List)l.get(0); assertTrue(l.isEmpty()); - t = "(())"; + t = "@(@())"; l = (List)p.parseParameter(t, LinkedList.class, List.class); assertTrue(l.size() == 1); l = (List)l.get(0); @@ -172,51 +170,51 @@ public class UrlEncodingParserTest { // Array containing empty string // Top level - t = "_value=$a(())"; + t = "_value=@('')"; l = (List)p.parse(t, Object.class); assertTrue(l.size() == 1); assertEquals("", l.get(0)); - t = "0=()"; + t = "0=''"; l = p.parse(t, List.class, String.class); assertTrue(l.size() == 1); assertEquals("", l.get(0)); - t = "$a(())"; + t = "@('')"; l = (List)p.parseParameter(t, Object.class); assertTrue(l.size() == 1); assertEquals("", l.get(0)); - t = "(())"; + t = "@('')"; l = (List)p.parseParameter(t, List.class, String.class); assertTrue(l.size() == 1); assertEquals("", l.get(0)); // 2nd level - t = "?()=$a(())"; + t = "?''=@('')"; m = (Map)p.parse(t, Object.class); assertEquals("", ((List)m.get("")).get(0)); - t = "?()=(())"; + t = "?''=@('')"; m = p.parse(t, HashMap.class, String.class, List.class); assertEquals("", ((List)m.get("")).get(0)); // Array containing 3 empty strings - t = "_value=$a(,,)"; + t = "_value=@('','','')"; l = (List)p.parse(t, Object.class); assertTrue(l.size() == 3); assertEquals("", l.get(0)); assertEquals("", l.get(1)); assertEquals("", l.get(2)); - t = "0=&1=&2="; + t = "0=''&1=''&2=''"; l = p.parse(t, List.class, Object.class); assertTrue(l.size() == 3); assertEquals("", l.get(0)); assertEquals("", l.get(1)); assertEquals("", l.get(2)); - t = "$a(,,)"; + t = "@('','','')"; l = (List)p.parseParameter(t, Object.class); assertTrue(l.size() == 3); assertEquals("", l.get(0)); assertEquals("", l.get(1)); assertEquals("", l.get(2)); - t = "(,,)"; + t = "@('','','')"; l = (List)p.parseParameter(t, List.class, Object.class); assertTrue(l.size() == 3); assertEquals("", l.get(0)); @@ -225,19 +223,19 @@ public class UrlEncodingParserTest { // String containing \u0000 // Top level - t = "_value=$s(\u0000)"; + t = "_value='\u0000'"; assertEquals("\u0000", p.parse(t, Object.class)); - t = "_value=(\u0000)"; + t = "_value='\u0000'"; assertEquals("\u0000", p.parse(t, String.class)); assertEquals("\u0000", p.parse(t, Object.class)); - t = "$s(\u0000)"; + t = "'\u0000'"; assertEquals("\u0000", p.parseParameter(t, Object.class)); - t = "(\u0000)"; + t = "'\u0000'"; assertEquals("\u0000", p.parseParameter(t, String.class)); assertEquals("\u0000", p.parseParameter(t, Object.class)); // 2nd level - t = "?(\u0000)=(\u0000)"; + t = "?'\u0000'='\u0000'"; m = (Map)p.parse(t, Object.class); assertTrue(m.size() == 1); assertEquals("\u0000", m.get("\u0000")); @@ -247,7 +245,7 @@ public class UrlEncodingParserTest { // Boolean // Top level - t = "_value=$b(false)"; + t = "_value=false"; Boolean b = (Boolean)p.parse(t, Object.class); assertEquals(Boolean.FALSE, b); b = p.parse(t, Boolean.class); @@ -255,7 +253,7 @@ public class UrlEncodingParserTest { t = "_value=false"; b = p.parse(t, Boolean.class); assertEquals(Boolean.FALSE, b); - t = "$b(false)"; + t = "false"; b = (Boolean)p.parseParameter(t, Object.class); assertEquals(Boolean.FALSE, b); b = p.parseParameter(t, Boolean.class); @@ -265,7 +263,7 @@ public class UrlEncodingParserTest { assertEquals(Boolean.FALSE, b); // 2nd level - t = "?x=$b(false)"; + t = "?x=false"; m = (Map)p.parse(t, Object.class); assertEquals(Boolean.FALSE, m.get("x")); t = "?x=false"; @@ -274,7 +272,7 @@ public class UrlEncodingParserTest { // Number // Top level - t = "_value=$n(123)"; + t = "_value=123"; Integer i = (Integer)p.parse(t, Object.class); assertEquals(123, i.intValue()); i = p.parse(t, Integer.class); @@ -286,7 +284,7 @@ public class UrlEncodingParserTest { t = "_value=123"; i = p.parse(t, Integer.class); assertEquals(123, i.intValue()); - t = "$n(123)"; + t = "123"; i = (Integer)p.parseParameter(t, Object.class); assertEquals(123, i.intValue()); i = p.parseParameter(t, Integer.class); @@ -300,7 +298,7 @@ public class UrlEncodingParserTest { assertEquals(123, i.intValue()); // 2nd level - t = "?x=$n(123)"; + t = "?x=123"; m = (Map)p.parse(t, Object.class); assertEquals(123, ((Integer)m.get("x")).intValue()); m = p.parse(t, HashMap.class, String.class, Double.class); @@ -355,86 +353,77 @@ public class UrlEncodingParserTest { // Special chars // These characters are escaped and not encoded. // Top level - t = "_value=x~$~,~(~)"; + t = "_value='x$,()'"; assertEquals("x$,()", p.parse(t, Object.class)); - t = "x~$~,~(~)"; + t = "'x$,()'"; assertEquals("x$,()", p.parseParameter(t, Object.class)); - t = "_value=x~~$~~,~~(~~)"; + t = "_value='x~~$~~,~~(~~)'"; assertEquals("x~$~,~(~)", p.parse(t, Object.class)); - t = "x~~$~~,~~(~~)"; + t = "'x~~$~~,~~(~~)'"; assertEquals("x~$~,~(~)", p.parseParameter(t, Object.class)); // At secondary levels, these characters are escaped and not encoded. // 2nd level - t = "?x~$~,~(~)=x~$~,~(~)"; + t = "?'x$,()'='x$,()'"; m = (Map)p.parse(t, Object.class); assertEquals("x$,()", m.get("x$,()")); - t = "?x~~$~~,~~(~~)=x~~$~~,~~(~~)"; + t = "?'x~~$~~,~~(~~)'='x~~$~~,~~(~~)'"; m = (Map)p.parse(t, Object.class); assertEquals("x~$~,~(~)", m.get("x~$~,~(~)")); // Equals sign // Gets encoded at top level, and encoded+escaped at 2nd level. // Top level - t = "_value=x="; + t = "_value='x='"; assertEquals("x=", p.parse(t, Object.class)); - t = "_value=x%3D"; + t = "_value='x%3D'"; assertEquals("x=", p.parse(t, Object.class)); - t = "x="; + t = "'x='"; assertEquals("x=", p.parseParameter(t, Object.class)); - t = "x%3D"; + t = "'x%3D'"; assertEquals("x%3D", p.parseParameter(t, Object.class)); // 2nd level - t = "?x~%3D=x~%3D"; + t = "?'x%3D'='x%3D'"; m = (Map)p.parse(t, Object.class); assertEquals("x=", m.get("x=")); - t = "?x~~%3D=x~~%3D"; + t = "?'x~~%3D'='x~~%3D'"; m = (Map)p.parse(t, Object.class); assertEquals("x~=", m.get("x~=")); // String starting with parenthesis // Top level - t = "_value=~(~)"; - assertEquals("()", p.parse(t, Object.class)); - assertEquals("()", p.parse(t, String.class)); - t = "_value=(~(~))"; + t = "_value='()'"; assertEquals("()", p.parse(t, Object.class)); assertEquals("()", p.parse(t, String.class)); - t = "_value=(~(~))"; + t = "_value='()'"; assertEquals("()", p.parse(t, Object.class)); assertEquals("()", p.parse(t, String.class)); - t = "~(~)"; - assertEquals("()", p.parseParameter(t, Object.class)); - assertEquals("()", p.parseParameter(t, String.class)); - t = "(~(~))"; - assertEquals("()", p.parseParameter(t, Object.class)); - assertEquals("()", p.parseParameter(t, String.class)); - t = "(~(~))"; + t = "'()'"; assertEquals("()", p.parseParameter(t, Object.class)); assertEquals("()", p.parseParameter(t, String.class)); // 2nd level - t = "?(~(~))=(~(~))"; + t = "?'()'='()'"; m = (Map)p.parse(t, Object.class); assertEquals("()", m.get("()")); - t = "?(~(~))=(~(~))"; + t = "?'()'='()'"; m = p.parse(t, HashMap.class, String.class, Object.class); assertEquals("()", m.get("()")); // String starting with $ // Top level - t = "_value=(~$a)"; + t = "_value=$a"; assertEquals("$a", p.parse(t, Object.class)); - t = "_value=(~$a)"; + t = "_value=$a"; assertEquals("$a", p.parse(t, Object.class)); - t = "(~$a)"; + t = "$a"; assertEquals("$a", p.parseParameter(t, Object.class)); - t = "(~$a)"; + t = "$a"; assertEquals("$a", p.parseParameter(t, Object.class)); // 2nd level - t = "?(~$a)=(~$a)"; + t = "?$a=$a"; m = (Map)p.parse(t, Object.class); assertEquals("$a", m.get("$a")); m = p.parse(t, HashMap.class, String.class, Object.class); @@ -455,7 +444,7 @@ public class UrlEncodingParserTest { assertEquals("", m.get("")); // 3rd level - t = "?=$o(=)"; + t = "?=(=)"; m = (Map)p.parse(t, Object.class); assertEquals("", ((Map)m.get("")).get("")); t = "?=(=)"; @@ -464,20 +453,20 @@ public class UrlEncodingParserTest { // Newline character // Top level - t = "_value=(%0A)"; + t = "_value='%0A'"; assertEquals("\n", p.parse(t, Object.class)); - t = "(%0A)"; + t = "'%0A'"; assertEquals("%0A", p.parseParameter(t, Object.class)); - t = "(\n)"; + t = "'\n'"; assertEquals("\n", p.parseParameter(t, Object.class)); // 2nd level - t = "?%0A=(%0A)"; + t = "?'%0A'='%0A'"; m = (Map)p.parse(t, Object.class); assertEquals("\n", m.get("\n")); // 3rd level - t = "?%0A=$o((%0A)=(%0A))"; + t = "?'%0A'=('%0A'='%0A')"; m = (Map)p.parse(t, Object.class); assertEquals("\n", ((Map)m.get("\n")).get("\n")); } @@ -511,7 +500,7 @@ public class UrlEncodingParserTest { assertEquals("¢", m.get("¢")); // 3rd level - t = "?%C2%A2=$o(%C2%A2=%C2%A2)"; + t = "?%C2%A2=(%C2%A2=%C2%A2)"; m = (Map)p.parse(t, Object.class); assertEquals("¢", ((Map)m.get("¢")).get("¢")); @@ -536,7 +525,7 @@ public class UrlEncodingParserTest { assertEquals("â¬", m.get("â¬")); // 3rd level - t = "?%E2%82%AC=$o(%E2%82%AC=%E2%82%AC)"; + t = "?%E2%82%AC=(%E2%82%AC=%E2%82%AC)"; m = (Map)p.parse(t, Object.class); assertEquals("â¬", ((Map)m.get("â¬")).get("â¬")); @@ -561,7 +550,7 @@ public class UrlEncodingParserTest { assertEquals("ð¤¢", m.get("ð¤¢")); // 3rd level - t = "?%F0%A4%AD%A2=$o(%F0%A4%AD%A2=%F0%A4%AD%A2)"; + t = "?%F0%A4%AD%A2=(%F0%A4%AD%A2=%F0%A4%AD%A2)"; m = (Map)p.parse(t, Object.class); assertEquals("ð¤¢", ((Map)m.get("ð¤¢")).get("ð¤¢")); } @@ -584,7 +573,7 @@ public class UrlEncodingParserTest { assertEquals("foo", t.f1); assertEquals(123, t.f2); - s = "$o(f1=foo,f2=123)"; + s = "('f1'='foo','f2'=123)"; t = p.parseParameter(s, A.class); assertEquals("foo", t.f1); assertEquals(123, t.f2); @@ -705,19 +694,19 @@ public class UrlEncodingParserTest { c = p.parse(s, C1.class); assertObjectEquals("{f1:['a~b','a~b']}", c); - s = "?f1=(a~b,a~b)"; + s = "?f1=@(a~b,a~b)"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['a~b','a~b']}", c); - s = "?f1=((a~b),(a~b))"; + s = "?f1=@('a~b','a~b')"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['a~b','a~b']}", c); - s = "?f1=($s(a~b),$s(a~b))"; + s = "?f1=@('a~b','a~b')"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['a~b','a~b']}", c); - s = "?f1=$a($s(a~b),$s(a~b))"; + s = "?f1=@('a~b','a~b')"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['a~b','a~b']}", c); @@ -725,40 +714,36 @@ public class UrlEncodingParserTest { c = p.parse(s, C1.class); assertObjectEquals("{f1:['~','~']}", c); - s = "?f1=(~~,~~)"; + s = "?f1=@(~~,~~)"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['~','~']}", c); - s = "?f1=(~~~~~~,~~~~~~)"; + s = "?f1=@(~~~~~~,~~~~~~)"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['~~~','~~~']}", c); - s = "?f1=((~~~~~~),(~~~~~~))"; + s = "?f1=@('~~~~~~','~~~~~~')"; c = p.parse(s, C1.class); assertObjectEquals("{f1:['~~~','~~~']}", c); - // The ~ should be treated as an escape if followed by any of the following characters: ,()~= - s = "?f1=~,~(~)~~~=~$,~,~(~)~~~=~$"; + // The ~ should be treated as an escape if followed by any of the following characters: '~ + s = "?f1=~'~~,~'~~"; c = p.parse(s, C1.class); - assertObjectEquals("{f1:[',()~=$',',()~=$']}", c); + assertObjectEquals("{f1:['\\'~','\\'~']}", c); - s = "?f1=(~,~(~)~~~=~$,~,~(~)~~~=~$)"; + s = "?f1=@(~'~~,~'~~)"; c = p.parse(s, C1.class); - assertObjectEquals("{f1:[',()~=$',',()~=$']}", c); + assertObjectEquals("{f1:['\\'~','\\'~']}", c); - s = "?f1=((~,~(~)~~~=~$),(~,~(~)~~~=~$))"; + s = "?f1=@('~'~~','~'~~')"; c = p.parse(s, C1.class); - assertObjectEquals("{f1:[',()~=$',',()~=$']}", c); + assertObjectEquals("{f1:['\\'~','\\'~']}", c); s = "?a~b=a~b"; ObjectMap m = p.parse(s, ObjectMap.class); assertEquals("{'a~b':'a~b'}", m.toString()); - s = "?(a~b)=(a~b)"; - m = p.parse(s, ObjectMap.class); - assertEquals("{'a~b':'a~b'}", m.toString()); - - s = "?$s(a~b)=$s(a~b)"; + s = "?'a~b'='a~b'"; m = p.parse(s, ObjectMap.class); assertEquals("{'a~b':'a~b'}", m.toString()); @@ -766,7 +751,7 @@ public class UrlEncodingParserTest { m = p.parse(s, ObjectMap.class); assertEquals("{'~':'~'}", m.toString()); - s = "?(~~)=(~~)"; + s = "?'~~'='~~'"; m = p.parse(s, ObjectMap.class); assertEquals("{'~':'~'}", m.toString()); @@ -774,37 +759,9 @@ public class UrlEncodingParserTest { m = p.parse(s, ObjectMap.class); assertEquals("{'~~~':'~~~'}", m.toString()); - s = "?(~~~~~~)=(~~~~~~)"; + s = "?'~~~~~~'='~~~~~~'"; m = p.parse(s, ObjectMap.class); assertEquals("{'~~~':'~~~'}", m.toString()); - - s = "?$s(~~~~~~)=$s(~~~~~~)"; - m = p.parse(s, ObjectMap.class); - assertEquals("{'~~~':'~~~'}", m.toString()); - - s = "?~,~(~)~~~=~$=~,~(~)~~~=~$"; - m = p.parse(s, ObjectMap.class); - assertEquals("{',()~=$':',()~=$'}", m.toString()); - - s = "?(~,~(~)~~~=~$)=(~,~(~)~~~=~$)"; - m = p.parse(s, ObjectMap.class); - assertEquals("{',()~=$':',()~=$'}", m.toString()); - - s = "?$s(~,~(~)~~~=~$)=$s(~,~(~)~~~=~$)"; - m = p.parse(s, ObjectMap.class); - assertEquals("{',()~=$':',()~=$'}", m.toString()); - - s = "?%7E%2C%7E%28%7E%29%7E%7E%7E%3D%7E%24=%7E%2C%7E%28%7E%29%7E%7E%7E%3D%7E%24"; - m = p.parse(s, ObjectMap.class); - assertEquals("{',()~=$':',()~=$'}", m.toString()); - - s = "?(%7E%2C%7E%28%7E%29%7E%7E%7E%3D%7E%24)=(%7E%2C%7E%28%7E%29%7E%7E%7E%3D%7E%24)"; - m = p.parse(s, ObjectMap.class); - assertEquals("{',()~=$':',()~=$'}", m.toString()); - - s = "?$s(%7E%2C%7E%28%7E%29%7E%7E%7E%3D%7E%24)=$s(%7E%2C%7E%28%7E%29%7E%7E%7E%3D%7E%24)"; - m = p.parse(s, ObjectMap.class); - assertEquals("{',()~=$':',()~=$'}", m.toString()); } public static class C1 { @@ -816,7 +773,7 @@ public class UrlEncodingParserTest { //==================================================================================================== @Test public void testWhitespace() throws Exception { - UrlEncodingParser p = UrlEncodingParser.DEFAULT_WS_AWARE; + UrlEncodingParser p = UrlEncodingParser.DEFAULT; String s; ObjectMap m; @@ -824,36 +781,36 @@ public class UrlEncodingParserTest { m = p.parse(s, ObjectMap.class); assertEquals("{f1:'foo',f2:'bar'}", m.toString()); - s = "?f1=(\n\t)&f2=(\n\t)"; + s = "?f1='\n\t'&f2='\n\t'"; m = p.parse(s, ObjectMap.class); assertEquals("\n\t", m.getString("f1")); assertEquals("\n\t", m.getString("f2")); - s = "?f1=(\n\t)\n\t&f2=(\n\t)\n\t"; + s = "?f1='\n\t'\n\t&f2='\n\t'\n\t"; m = p.parse(s, ObjectMap.class); assertEquals("\n\t", m.getString("f1")); assertEquals("\n\t", m.getString("f2")); assertEquals("{f1:'\\n\\t',f2:'\\n\\t'}", m.toString()); // Note that JsonSerializer escapes newlines and tabs. - s = "?f1=$s(\n\t)\n\t&f2=$s(\n\t)\n\t"; + s = "?f1='\n\t'\n\t&f2='\n\t'\n\t"; m = p.parse(s, ObjectMap.class); assertEquals("\n\t", m.getString("f1")); assertEquals("\n\t", m.getString("f2")); assertEquals("{f1:'\\n\\t',f2:'\\n\\t'}", m.toString()); // Note that JsonSerializer escapes newlines and tabs. - s = "?f1=$o(\n\tf1a=a,\n\tf1b=b\n\t)\n\t&f2=$o(\n\tf2a=a,\n\tf2b=b\n\t)\n\t"; + s = "?f1=(\n\tf1a=a,\n\tf1b=b\n\t)\n\t&f2=(\n\tf2a=a,\n\tf2b=b\n\t)\n\t"; m = p.parse(s, ObjectMap.class); assertEquals("{f1:{f1a:'a',f1b:'b'},f2:{f2a:'a',f2b:'b'}}", m.toString()); // Note that JsonSerializer escapes newlines and tabs. D d = p.parse(s, D.class); assertObjectEquals("{f1:{f1a:'a',f1b:'b'},f2:{f2a:'a',f2b:'b'}}", d); // Note that JsonSerializer escapes newlines and tabs. - s = "?f1=$o(\n\tf1a=(\n\t),\n\tf1b=(\n\t)\n\t)\n\t&f2=$o(\n\tf2a=(\n\t),\n\tf2b=(\n\t)\n\t)\n\t"; + s = "?f1=(\n\tf1a='\n\t',\n\tf1b='\n\t'\n\t)\n\t&f2=(\n\tf2a='\n\t',\n\tf2b='\n\t'\n\t)\n\t"; m = p.parse(s, ObjectMap.class); assertEquals("{f1:{f1a:'\\n\\t',f1b:'\\n\\t'},f2:{f2a:'\\n\\t',f2b:'\\n\\t'}}", m.toString()); // Note that JsonSerializer escapes newlines and tabs. d = p.parse(s, D.class); assertObjectEquals("{f1:{f1a:'\\n\\t',f1b:'\\n\\t'},f2:{f2a:'\\n\\t',f2b:'\\n\\t'}}", d); // Note that JsonSerializer escapes newlines and tabs. - s = "?f1=$a(\n\tfoo,\n\tbar\n\t)\n\t&f2=$a(\n\tfoo,\n\tbar\n\t)\n\t"; + s = "?f1=@(\n\tfoo,\n\tbar\n\t)\n\t&f2=@(\n\tfoo,\n\tbar\n\t)\n\t"; m = p.parse(s, ObjectMap.class); assertEquals("{f1:['foo','bar'],f2:['foo','bar']}", m.toString()); // Note that JsonSerializer escapes newlines and tabs. @@ -899,22 +856,22 @@ public class UrlEncodingParserTest { + "&f02=c&f02=d" + "&f03=1&f03=2" + "&f04=3&f04=4" - + "&f05=(e,f)&f05=(g,h)" - + "&f06=(i,j)&f06=(k,l)" + + "&f05=@(e,f)&f05=@(g,h)" + + "&f06=@(i,j)&f06=@(k,l)" + "&f07=(a=a,b=1,c=true)&f07=(a=b,b=2,c=false)" + "&f08=(a=a,b=1,c=true)&f08=(a=b,b=2,c=false)" - + "&f09=((a=a,b=1,c=true))&f09=((a=b,b=2,c=false))" - + "&f10=((a=a,b=1,c=true))&f10=((a=b,b=2,c=false))" + + "&f09=@((a=a,b=1,c=true))&f09=@((a=b,b=2,c=false))" + + "&f10=@((a=a,b=1,c=true))&f10=@((a=b,b=2,c=false))" + "&f11=a&f11=b" + "&f12=c&f12=d" + "&f13=1&f13=2" + "&f14=3&f14=4" - + "&f15=(e,f)&f15=(g,h)" - + "&f16=(i,j)&f16=(k,l)" + + "&f15=@(e,f)&f15=@(g,h)" + + "&f16=@(i,j)&f16=@(k,l)" + "&f17=(a=a,b=1,c=true)&f17=(a=b,b=2,c=false)" + "&f18=(a=a,b=1,c=true)&f18=(a=b,b=2,c=false)" - + "&f19=((a=a,b=1,c=true))&f19=((a=b,b=2,c=false))" - + "&f20=((a=a,b=1,c=true))&f20=((a=b,b=2,c=false))"; + + "&f19=@((a=a,b=1,c=true))&f19=@((a=b,b=2,c=false))" + + "&f20=@((a=a,b=1,c=true))&f20=@((a=b,b=2,c=false))"; DTOs.B t = p.parse(in, DTOs.B.class); String e = "{" @@ -955,22 +912,22 @@ public class UrlEncodingParserTest { + "&f02=c&f02=d" + "&f03=1&f03=2" + "&f04=3&f04=4" - + "&f05=(e,f)&f05=(g,h)" - + "&f06=(i,j)&f06=(k,l)" + + "&f05=@(e,f)&f05=@(g,h)" + + "&f06=@(i,j)&f06=@(k,l)" + "&f07=(a=a,b=1,c=true)&f07=(a=b,b=2,c=false)" + "&f08=(a=a,b=1,c=true)&f08=(a=b,b=2,c=false)" - + "&f09=((a=a,b=1,c=true))&f09=((a=b,b=2,c=false))" - + "&f10=((a=a,b=1,c=true))&f10=((a=b,b=2,c=false))" + + "&f09=@((a=a,b=1,c=true))&f09=@((a=b,b=2,c=false))" + + "&f10=@((a=a,b=1,c=true))&f10=@((a=b,b=2,c=false))" + "&f11=a&f11=b" + "&f12=c&f12=d" + "&f13=1&f13=2" + "&f14=3&f14=4" - + "&f15=(e,f)&f15=(g,h)" - + "&f16=(i,j)&f16=(k,l)" + + "&f15=@(e,f)&f15=@(g,h)" + + "&f16=@(i,j)&f16=@(k,l)" + "&f17=(a=a,b=1,c=true)&f17=(a=b,b=2,c=false)" + "&f18=(a=a,b=1,c=true)&f18=(a=b,b=2,c=false)" - + "&f19=((a=a,b=1,c=true))&f19=((a=b,b=2,c=false))" - + "&f20=((a=a,b=1,c=true))&f20=((a=b,b=2,c=false))"; + + "&f19=@((a=a,b=1,c=true))&f19=@((a=b,b=2,c=false))" + + "&f20=@((a=a,b=1,c=true))&f20=@((a=b,b=2,c=false))"; DTOs.C t = p.parse(in, DTOs.C.class); String e = "{"
