7 "hello" : "Hello World!"
11 ["{hello}", "Hello%20World%21"]
19 "hello" : "Hello World!",
24 ["{+hello}", "Hello%20World!"],
25 ["{+path}/here", "/foo/bar/here"],
26 ["here?ref={+path}", "here?ref=/foo/bar"]
34 "hello" : "Hello World!",
41 ["map?{x,y}", "map?1024,768"],
42 ["{x,hello,y}", "1024,Hello%20World%21,768"],
43 ["{+x,hello,y}", "1024,Hello%20World!,768"],
44 ["{+path,x}/here", "/foo/bar,1024/here"],
45 ["{#x,hello,y}", "#1024,Hello%20World!,768"],
46 ["{#path,x}/here", "#/foo/bar,1024/here"],
47 ["X{.var}", "X.value"],
48 ["X{.x,y}", "X.1024.768"],
50 ["{/var,x}/here", "/value/1024/here"],
51 ["{;x,y}", ";x=1024;y=768"],
52 ["{;x,y,empty}", ";x=1024;y=768;empty"],
53 ["{?x,y}", "?x=1024&y=768"],
54 ["{?x,y,empty}", "?x=1024&y=768&empty="],
55 ["?fixed=yes{&x}", "?fixed=yes&x=1024"],
56 ["{&x,y,empty}", "&x=1024&y=768&empty="]
64 "hello": "Hello World!",
66 "list": ["red", "green", "blue"],
67 "keys": {"semi": ";", "dot": ".", "comma":","}
71 ["{var:30}", "value"],
72 ["{list}", "red,green,blue"],
73 ["{list*}", "red,green,blue"],
75 "comma,%2C,dot,.,semi,%3B",
76 "comma,%2C,semi,%3B,dot,.",
77 "dot,.,comma,%2C,semi,%3B",
78 "dot,.,semi,%3B,comma,%2C",
79 "semi,%3B,comma,%2C,dot,.",
80 "semi,%3B,dot,.,comma,%2C"
83 "comma=%2C,dot=.,semi=%3B",
84 "comma=%2C,semi=%3B,dot=.",
85 "dot=.,comma=%2C,semi=%3B",
86 "dot=.,semi=%3B,comma=%2C",
87 "semi=%3B,comma=%2C,dot=.",
88 "semi=%3B,dot=.,comma=%2C"
90 ["{+path:6}/here", "/foo/b/here"],
91 ["{+list}", "red,green,blue"],
92 ["{+list*}", "red,green,blue"],
94 "comma,,,dot,.,semi,;",
95 "comma,,,semi,;,dot,.",
96 "dot,.,comma,,,semi,;",
97 "dot,.,semi,;,comma,,",
98 "semi,;,comma,,,dot,.",
99 "semi,;,dot,.,comma,,"
102 "comma=,,dot=.,semi=;",
103 "comma=,,semi=;,dot=.",
104 "dot=.,comma=,,semi=;",
105 "dot=.,semi=;,comma=,",
106 "semi=;,comma=,,dot=.",
107 "semi=;,dot=.,comma=,"
109 ["{#path:6}/here", "#/foo/b/here"],
110 ["{#list}", "#red,green,blue"],
111 ["{#list*}", "#red,green,blue"],
113 "#comma,,,dot,.,semi,;",
114 "#comma,,,semi,;,dot,.",
115 "#dot,.,comma,,,semi,;",
116 "#dot,.,semi,;,comma,,",
117 "#semi,;,comma,,,dot,.",
118 "#semi,;,dot,.,comma,,"
121 "#comma=,,dot=.,semi=;",
122 "#comma=,,semi=;,dot=.",
123 "#dot=.,comma=,,semi=;",
124 "#dot=.,semi=;,comma=,",
125 "#semi=;,comma=,,dot=.",
126 "#semi=;,dot=.,comma=,"
128 ["X{.var:3}", "X.val"],
129 ["X{.list}", "X.red,green,blue"],
130 ["X{.list*}", "X.red.green.blue"],
132 "X.comma,%2C,dot,.,semi,%3B",
133 "X.comma,%2C,semi,%3B,dot,.",
134 "X.dot,.,comma,%2C,semi,%3B",
135 "X.dot,.,semi,%3B,comma,%2C",
136 "X.semi,%3B,comma,%2C,dot,.",
137 "X.semi,%3B,dot,.,comma,%2C"
139 ["{/var:1,var}", "/v/value"],
140 ["{/list}", "/red,green,blue"],
141 ["{/list*}", "/red/green/blue"],
142 ["{/list*,path:4}", "/red/green/blue/%2Ffoo"],
144 "/comma,%2C,dot,.,semi,%3B",
145 "/comma,%2C,semi,%3B,dot,.",
146 "/dot,.,comma,%2C,semi,%3B",
147 "/dot,.,semi,%3B,comma,%2C",
148 "/semi,%3B,comma,%2C,dot,.",
149 "/semi,%3B,dot,.,comma,%2C"
152 "/comma=%2C/dot=./semi=%3B",
153 "/comma=%2C/semi=%3B/dot=.",
154 "/dot=./comma=%2C/semi=%3B",
155 "/dot=./semi=%3B/comma=%2C",
156 "/semi=%3B/comma=%2C/dot=.",
157 "/semi=%3B/dot=./comma=%2C"
159 ["{;hello:5}", ";hello=Hello"],
160 ["{;list}", ";list=red,green,blue"],
161 ["{;list*}", ";list=red;list=green;list=blue"],
163 ";keys=comma,%2C,dot,.,semi,%3B",
164 ";keys=comma,%2C,semi,%3B,dot,.",
165 ";keys=dot,.,comma,%2C,semi,%3B",
166 ";keys=dot,.,semi,%3B,comma,%2C",
167 ";keys=semi,%3B,comma,%2C,dot,.",
168 ";keys=semi,%3B,dot,.,comma,%2C"
171 ";comma=%2C;dot=.;semi=%3B",
172 ";comma=%2C;semi=%3B;dot=.",
173 ";dot=.;comma=%2C;semi=%3B",
174 ";dot=.;semi=%3B;comma=%2C",
175 ";semi=%3B;comma=%2C;dot=.",
176 ";semi=%3B;dot=.;comma=%2C"
178 ["{?var:3}", "?var=val"],
179 ["{?list}", "?list=red,green,blue"],
180 ["{?list*}", "?list=red&list=green&list=blue"],
182 "?keys=comma,%2C,dot,.,semi,%3B",
183 "?keys=comma,%2C,semi,%3B,dot,.",
184 "?keys=dot,.,comma,%2C,semi,%3B",
185 "?keys=dot,.,semi,%3B,comma,%2C",
186 "?keys=semi,%3B,comma,%2C,dot,.",
187 "?keys=semi,%3B,dot,.,comma,%2C"
190 "?comma=%2C&dot=.&semi=%3B",
191 "?comma=%2C&semi=%3B&dot=.",
192 "?dot=.&comma=%2C&semi=%3B",
193 "?dot=.&semi=%3B&comma=%2C",
194 "?semi=%3B&comma=%2C&dot=.",
195 "?semi=%3B&dot=.&comma=%2C"
197 ["{&var:3}", "&var=val"],
198 ["{&list}", "&list=red,green,blue"],
199 ["{&list*}", "&list=red&list=green&list=blue"],
201 "&keys=comma,%2C,dot,.,semi,%3B",
202 "&keys=comma,%2C,semi,%3B,dot,.",
203 "&keys=dot,.,comma,%2C,semi,%3B",
204 "&keys=dot,.,semi,%3B,comma,%2C",
205 "&keys=semi,%3B,comma,%2C,dot,.",
206 "&keys=semi,%3B,dot,.,comma,%2C"
209 "&comma=%2C&dot=.&semi=%3B",
210 "&comma=%2C&semi=%3B&dot=.",
211 "&dot=.&comma=%2C&semi=%3B",
212 "&dot=.&semi=%3B&comma=%2C",
213 "&semi=%3B&comma=%2C&dot=.",
214 "&semi=%3B&dot=.&comma=%2C"