2 "3.2.1 Variable Expansion" :
5 "count" : ["one", "two", "three"],
6 "dom" : ["example", "com"],
8 "hello" : "Hello World!",
12 "base" : "http://example.com/home/",
14 "list" : ["red", "green", "blue"],
15 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
24 ["{count}", "one,two,three"],
25 ["{count*}", "one,two,three"],
26 ["{/count}", "/one,two,three"],
27 ["{/count*}", "/one/two/three"],
28 ["{;count}", ";count=one,two,three"],
29 ["{;count*}", ";count=one;count=two;count=three"],
30 ["{?count}", "?count=one,two,three"],
31 ["{?count*}", "?count=one&count=two&count=three"],
32 ["{&count*}", "&count=one&count=two&count=three"]
35 "3.2.2 Simple String Expansion" :
38 "count" : ["one", "two", "three"],
39 "dom" : ["example", "com"],
41 "hello" : "Hello World!",
45 "base" : "http://example.com/home/",
47 "list" : ["red", "green", "blue"],
48 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
58 ["{hello}", "Hello%20World%21"],
62 ["{x,y}", "1024,768"],
63 ["{x,hello,y}", "1024,Hello%20World%21,768"],
64 ["?{x,empty}", "?1024,"],
65 ["?{x,undef}", "?1024"],
66 ["?{undef,y}", "?768"],
68 ["{var:30}", "value"],
69 ["{list}", "red,green,blue"],
70 ["{list*}", "red,green,blue"],
72 "comma,%2C,dot,.,semi,%3B",
73 "comma,%2C,semi,%3B,dot,.",
74 "dot,.,comma,%2C,semi,%3B",
75 "dot,.,semi,%3B,comma,%2C",
76 "semi,%3B,comma,%2C,dot,.",
77 "semi,%3B,dot,.,comma,%2C"
80 "comma=%2C,dot=.,semi=%3B",
81 "comma=%2C,semi=%3B,dot=.",
82 "dot=.,comma=%2C,semi=%3B",
83 "dot=.,semi=%3B,comma=%2C",
84 "semi=%3B,comma=%2C,dot=.",
85 "semi=%3B,dot=.,comma=%2C"
89 "3.2.3 Reserved Expansion" :
92 "count" : ["one", "two", "three"],
93 "dom" : ["example", "com"],
95 "hello" : "Hello World!",
99 "base" : "http://example.com/home/",
101 "list" : ["red", "green", "blue"],
102 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
112 ["{/var,empty}", "/value/"],
113 ["{/var,undef}", "/value"],
114 ["{+hello}", "Hello%20World!"],
115 ["{+half}", "50%25"],
116 ["{base}index", "http%3A%2F%2Fexample.com%2Fhome%2Findex"],
117 ["{+base}index", "http://example.com/home/index"],
118 ["O{+empty}X", "OX"],
119 ["O{+undef}X", "OX"],
120 ["{+path}/here", "/foo/bar/here"],
121 ["{+path:6}/here", "/foo/b/here"],
122 ["here?ref={+path}", "here?ref=/foo/bar"],
123 ["up{+path}{var}/here", "up/foo/barvalue/here"],
124 ["{+x,hello,y}", "1024,Hello%20World!,768"],
125 ["{+path,x}/here", "/foo/bar,1024/here"],
126 ["{+list}", "red,green,blue"],
127 ["{+list*}", "red,green,blue"],
129 "comma,,,dot,.,semi,;",
130 "comma,,,semi,;,dot,.",
131 "dot,.,comma,,,semi,;",
132 "dot,.,semi,;,comma,,",
133 "semi,;,comma,,,dot,.",
134 "semi,;,dot,.,comma,,"
137 "comma=,,dot=.,semi=;",
138 "comma=,,semi=;,dot=.",
139 "dot=.,comma=,,semi=;",
140 "dot=.,semi=;,comma=,",
141 "semi=;,comma=,,dot=.",
142 "semi=;,dot=.,comma=,"
146 "3.2.4 Fragment Expansion" :
149 "count" : ["one", "two", "three"],
150 "dom" : ["example", "com"],
152 "hello" : "Hello World!",
156 "base" : "http://example.com/home/",
158 "list" : ["red", "green", "blue"],
159 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
168 ["{#var}", "#value"],
169 ["{#hello}", "#Hello%20World!"],
170 ["{#half}", "#50%25"],
171 ["foo{#empty}", "foo#"],
172 ["foo{#undef}", "foo"],
173 ["{#x,hello,y}", "#1024,Hello%20World!,768"],
174 ["{#path,x}/here", "#/foo/bar,1024/here"],
175 ["{#path:6}/here", "#/foo/b/here"],
176 ["{#list}", "#red,green,blue"],
177 ["{#list*}", "#red,green,blue"],
179 "#comma,,,dot,.,semi,;",
180 "#comma,,,semi,;,dot,.",
181 "#dot,.,comma,,,semi,;",
182 "#dot,.,semi,;,comma,,",
183 "#semi,;,comma,,,dot,.",
184 "#semi,;,dot,.,comma,,"
188 "3.2.5 Label Expansion with Dot-Prefix" :
191 "count" : ["one", "two", "three"],
192 "dom" : ["example", "com"],
194 "hello" : "Hello World!",
198 "base" : "http://example.com/home/",
200 "list" : ["red", "green", "blue"],
201 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
211 ["{.who,who}", ".fred.fred"],
212 ["{.half,who}", ".50%25.fred"],
213 ["www{.dom*}", "www.example.com"],
214 ["X{.var}", "X.value"],
215 ["X{.var:3}", "X.val"],
218 ["X{.list}", "X.red,green,blue"],
219 ["X{.list*}", "X.red.green.blue"],
221 "#comma,,,dot,.,semi,;",
222 "#comma,,,semi,;,dot,.",
223 "#dot,.,comma,,,semi,;",
224 "#dot,.,semi,;,comma,,",
225 "#semi,;,comma,,,dot,.",
226 "#semi,;,dot,.,comma,,"
229 "#comma=,,dot=.,semi=;",
230 "#comma=,,semi=;,dot=.",
231 "#dot=.,comma=,,semi=;",
232 "#dot=.,semi=;,comma=,",
233 "#semi=;,comma=,,dot=.",
234 "#semi=;,dot=.,comma=,"
236 ["X{.empty_keys}", "X"],
237 ["X{.empty_keys*}", "X"]
240 "3.2.6 Path Segment Expansion" :
243 "count" : ["one", "two", "three"],
244 "dom" : ["example", "com"],
246 "hello" : "Hello World!",
250 "base" : "http://example.com/home/",
252 "list" : ["red", "green", "blue"],
253 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
263 ["{/who,who}", "/fred/fred"],
264 ["{/half,who}", "/50%25/fred"],
265 ["{/who,dub}", "/fred/me%2Ftoo"],
266 ["{/var}", "/value"],
267 ["{/var,empty}", "/value/"],
268 ["{/var,undef}", "/value"],
269 ["{/var,x}/here", "/value/1024/here"],
270 ["{/var:1,var}", "/v/value"],
271 ["{/list}", "/red,green,blue"],
272 ["{/list*}", "/red/green/blue"],
273 ["{/list*,path:4}", "/red/green/blue/%2Ffoo"],
275 "/comma,%2C,dot,.,semi,%3B",
276 "/comma,%2C,semi,%3B,dot,.",
277 "/dot,.,comma,%2C,semi,%3B",
278 "/dot,.,semi,%3B,comma,%2C",
279 "/semi,%3B,comma,%2C,dot,.",
280 "/semi,%3B,dot,.,comma,%2C"
283 "/comma=%2C/dot=./semi=%3B",
284 "/comma=%2C/semi=%3B/dot=.",
285 "/dot=./comma=%2C/semi=%3B",
286 "/dot=./semi=%3B/comma=%2C",
287 "/semi=%3B/comma=%2C/dot=.",
288 "/semi=%3B/dot=./comma=%2C"
292 "3.2.7 Path-Style Parameter Expansion" :
295 "count" : ["one", "two", "three"],
296 "dom" : ["example", "com"],
298 "hello" : "Hello World!",
302 "base" : "http://example.com/home/",
304 "list" : ["red", "green", "blue"],
305 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
314 ["{;who}", ";who=fred"],
315 ["{;half}", ";half=50%25"],
316 ["{;empty}", ";empty"],
317 ["{;hello:5}", ";hello=Hello"],
318 ["{;v,empty,who}", ";v=6;empty;who=fred"],
319 ["{;v,bar,who}", ";v=6;who=fred"],
320 ["{;x,y}", ";x=1024;y=768"],
321 ["{;x,y,empty}", ";x=1024;y=768;empty"],
322 ["{;x,y,undef}", ";x=1024;y=768"],
323 ["{;list}", ";list=red,green,blue"],
324 ["{;list*}", ";list=red;list=green;list=blue"],
326 ";keys=comma,%2C,dot,.,semi,%3B",
327 ";keys=comma,%2C,semi,%3B,dot,.",
328 ";keys=dot,.,comma,%2C,semi,%3B",
329 ";keys=dot,.,semi,%3B,comma,%2C",
330 ";keys=semi,%3B,comma,%2C,dot,.",
331 ";keys=semi,%3B,dot,.,comma,%2C"
334 ";comma=%2C;dot=.;semi=%3B",
335 ";comma=%2C;semi=%3B;dot=.",
336 ";dot=.;comma=%2C;semi=%3B",
337 ";dot=.;semi=%3B;comma=%2C",
338 ";semi=%3B;comma=%2C;dot=.",
339 ";semi=%3B;dot=.;comma=%2C"
343 "3.2.8 Form-Style Query Expansion" :
346 "count" : ["one", "two", "three"],
347 "dom" : ["example", "com"],
349 "hello" : "Hello World!",
353 "base" : "http://example.com/home/",
355 "list" : ["red", "green", "blue"],
356 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
365 ["{?who}", "?who=fred"],
366 ["{?half}", "?half=50%25"],
367 ["{?x,y}", "?x=1024&y=768"],
368 ["{?x,y,empty}", "?x=1024&y=768&empty="],
369 ["{?x,y,undef}", "?x=1024&y=768"],
370 ["{?var:3}", "?var=val"],
371 ["{?list}", "?list=red,green,blue"],
372 ["{?list*}", "?list=red&list=green&list=blue"],
374 "?keys=comma,%2C,dot,.,semi,%3B",
375 "?keys=comma,%2C,semi,%3B,dot,.",
376 "?keys=dot,.,comma,%2C,semi,%3B",
377 "?keys=dot,.,semi,%3B,comma,%2C",
378 "?keys=semi,%3B,comma,%2C,dot,.",
379 "?keys=semi,%3B,dot,.,comma,%2C"
382 "?comma=%2C&dot=.&semi=%3B",
383 "?comma=%2C&semi=%3B&dot=.",
384 "?dot=.&comma=%2C&semi=%3B",
385 "?dot=.&semi=%3B&comma=%2C",
386 "?semi=%3B&comma=%2C&dot=.",
387 "?semi=%3B&dot=.&comma=%2C"
391 "3.2.9 Form-Style Query Continuation" :
394 "count" : ["one", "two", "three"],
395 "dom" : ["example", "com"],
397 "hello" : "Hello World!",
401 "base" : "http://example.com/home/",
403 "list" : ["red", "green", "blue"],
404 "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
413 ["{&who}", "&who=fred"],
414 ["{&half}", "&half=50%25"],
415 ["?fixed=yes{&x}", "?fixed=yes&x=1024"],
416 ["{&var:3}", "&var=val"],
417 ["{&x,y,empty}", "&x=1024&y=768&empty="],
418 ["{&x,y,undef}", "&x=1024&y=768"],
419 ["{&list}", "&list=red,green,blue"],
420 ["{&list*}", "&list=red&list=green&list=blue"],
422 "&keys=comma,%2C,dot,.,semi,%3B",
423 "&keys=comma,%2C,semi,%3B,dot,.",
424 "&keys=dot,.,comma,%2C,semi,%3B",
425 "&keys=dot,.,semi,%3B,comma,%2C",
426 "&keys=semi,%3B,comma,%2C,dot,.",
427 "&keys=semi,%3B,dot,.,comma,%2C"
430 "&comma=%2C&dot=.&semi=%3B",
431 "&comma=%2C&semi=%3B&dot=.",
432 "&dot=.&comma=%2C&semi=%3B",
433 "&dot=.&semi=%3B&comma=%2C",
434 "&semi=%3B&comma=%2C&dot=.",
435 "&semi=%3B&dot=.&comma=%2C"