|
|
- {
- "3.2.1 Variable Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{count}", "one,two,three"],
- ["{count*}", "one,two,three"],
- ["{/count}", "/one,two,three"],
- ["{/count*}", "/one/two/three"],
- ["{;count}", ";count=one,two,three"],
- ["{;count*}", ";count=one;count=two;count=three"],
- ["{?count}", "?count=one,two,three"],
- ["{?count*}", "?count=one&count=two&count=three"],
- ["{&count*}", "&count=one&count=two&count=three"]
- ]
- },
- "3.2.2 Simple String Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{var}", "value"],
- ["{hello}", "Hello%20World%21"],
- ["{half}", "50%25"],
- ["O{empty}X", "OX"],
- ["O{undef}X", "OX"],
- ["{x,y}", "1024,768"],
- ["{x,hello,y}", "1024,Hello%20World%21,768"],
- ["?{x,empty}", "?1024,"],
- ["?{x,undef}", "?1024"],
- ["?{undef,y}", "?768"],
- ["{var:3}", "val"],
- ["{var:30}", "value"],
- ["{list}", "red,green,blue"],
- ["{list*}", "red,green,blue"],
- ["{keys}", [
- "comma,%2C,dot,.,semi,%3B",
- "comma,%2C,semi,%3B,dot,.",
- "dot,.,comma,%2C,semi,%3B",
- "dot,.,semi,%3B,comma,%2C",
- "semi,%3B,comma,%2C,dot,.",
- "semi,%3B,dot,.,comma,%2C"
- ]],
- ["{keys*}", [
- "comma=%2C,dot=.,semi=%3B",
- "comma=%2C,semi=%3B,dot=.",
- "dot=.,comma=%2C,semi=%3B",
- "dot=.,semi=%3B,comma=%2C",
- "semi=%3B,comma=%2C,dot=.",
- "semi=%3B,dot=.,comma=%2C"
- ]]
- ]
- },
- "3.2.3 Reserved Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{+var}", "value"],
- ["{/var,empty}", "/value/"],
- ["{/var,undef}", "/value"],
- ["{+hello}", "Hello%20World!"],
- ["{+half}", "50%25"],
- ["{base}index", "http%3A%2F%2Fexample.com%2Fhome%2Findex"],
- ["{+base}index", "http://example.com/home/index"],
- ["O{+empty}X", "OX"],
- ["O{+undef}X", "OX"],
- ["{+path}/here", "/foo/bar/here"],
- ["{+path:6}/here", "/foo/b/here"],
- ["here?ref={+path}", "here?ref=/foo/bar"],
- ["up{+path}{var}/here", "up/foo/barvalue/here"],
- ["{+x,hello,y}", "1024,Hello%20World!,768"],
- ["{+path,x}/here", "/foo/bar,1024/here"],
- ["{+list}", "red,green,blue"],
- ["{+list*}", "red,green,blue"],
- ["{+keys}", [
- "comma,,,dot,.,semi,;",
- "comma,,,semi,;,dot,.",
- "dot,.,comma,,,semi,;",
- "dot,.,semi,;,comma,,",
- "semi,;,comma,,,dot,.",
- "semi,;,dot,.,comma,,"
- ]],
- ["{+keys*}", [
- "comma=,,dot=.,semi=;",
- "comma=,,semi=;,dot=.",
- "dot=.,comma=,,semi=;",
- "dot=.,semi=;,comma=,",
- "semi=;,comma=,,dot=.",
- "semi=;,dot=.,comma=,"
- ]]
- ]
- },
- "3.2.4 Fragment Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{#var}", "#value"],
- ["{#hello}", "#Hello%20World!"],
- ["{#half}", "#50%25"],
- ["foo{#empty}", "foo#"],
- ["foo{#undef}", "foo"],
- ["{#x,hello,y}", "#1024,Hello%20World!,768"],
- ["{#path,x}/here", "#/foo/bar,1024/here"],
- ["{#path:6}/here", "#/foo/b/here"],
- ["{#list}", "#red,green,blue"],
- ["{#list*}", "#red,green,blue"],
- ["{#keys}", [
- "#comma,,,dot,.,semi,;",
- "#comma,,,semi,;,dot,.",
- "#dot,.,comma,,,semi,;",
- "#dot,.,semi,;,comma,,",
- "#semi,;,comma,,,dot,.",
- "#semi,;,dot,.,comma,,"
- ]]
- ]
- },
- "3.2.5 Label Expansion with Dot-Prefix" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{.who}", ".fred"],
- ["{.who,who}", ".fred.fred"],
- ["{.half,who}", ".50%25.fred"],
- ["www{.dom*}", "www.example.com"],
- ["X{.var}", "X.value"],
- ["X{.var:3}", "X.val"],
- ["X{.empty}", "X."],
- ["X{.undef}", "X"],
- ["X{.list}", "X.red,green,blue"],
- ["X{.list*}", "X.red.green.blue"],
- ["{#keys}", [
- "#comma,,,dot,.,semi,;",
- "#comma,,,semi,;,dot,.",
- "#dot,.,comma,,,semi,;",
- "#dot,.,semi,;,comma,,",
- "#semi,;,comma,,,dot,.",
- "#semi,;,dot,.,comma,,"
- ]],
- ["{#keys*}", [
- "#comma=,,dot=.,semi=;",
- "#comma=,,semi=;,dot=.",
- "#dot=.,comma=,,semi=;",
- "#dot=.,semi=;,comma=,",
- "#semi=;,comma=,,dot=.",
- "#semi=;,dot=.,comma=,"
- ]],
- ["X{.empty_keys}", "X"],
- ["X{.empty_keys*}", "X"]
- ]
- },
- "3.2.6 Path Segment Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{/who}", "/fred"],
- ["{/who,who}", "/fred/fred"],
- ["{/half,who}", "/50%25/fred"],
- ["{/who,dub}", "/fred/me%2Ftoo"],
- ["{/var}", "/value"],
- ["{/var,empty}", "/value/"],
- ["{/var,undef}", "/value"],
- ["{/var,x}/here", "/value/1024/here"],
- ["{/var:1,var}", "/v/value"],
- ["{/list}", "/red,green,blue"],
- ["{/list*}", "/red/green/blue"],
- ["{/list*,path:4}", "/red/green/blue/%2Ffoo"],
- ["{/keys}", [
- "/comma,%2C,dot,.,semi,%3B",
- "/comma,%2C,semi,%3B,dot,.",
- "/dot,.,comma,%2C,semi,%3B",
- "/dot,.,semi,%3B,comma,%2C",
- "/semi,%3B,comma,%2C,dot,.",
- "/semi,%3B,dot,.,comma,%2C"
- ]],
- ["{/keys*}", [
- "/comma=%2C/dot=./semi=%3B",
- "/comma=%2C/semi=%3B/dot=.",
- "/dot=./comma=%2C/semi=%3B",
- "/dot=./semi=%3B/comma=%2C",
- "/semi=%3B/comma=%2C/dot=.",
- "/semi=%3B/dot=./comma=%2C"
- ]]
- ]
- },
- "3.2.7 Path-Style Parameter Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{;who}", ";who=fred"],
- ["{;half}", ";half=50%25"],
- ["{;empty}", ";empty"],
- ["{;hello:5}", ";hello=Hello"],
- ["{;v,empty,who}", ";v=6;empty;who=fred"],
- ["{;v,bar,who}", ";v=6;who=fred"],
- ["{;x,y}", ";x=1024;y=768"],
- ["{;x,y,empty}", ";x=1024;y=768;empty"],
- ["{;x,y,undef}", ";x=1024;y=768"],
- ["{;list}", ";list=red,green,blue"],
- ["{;list*}", ";list=red;list=green;list=blue"],
- ["{;keys}", [
- ";keys=comma,%2C,dot,.,semi,%3B",
- ";keys=comma,%2C,semi,%3B,dot,.",
- ";keys=dot,.,comma,%2C,semi,%3B",
- ";keys=dot,.,semi,%3B,comma,%2C",
- ";keys=semi,%3B,comma,%2C,dot,.",
- ";keys=semi,%3B,dot,.,comma,%2C"
- ]],
- ["{;keys*}", [
- ";comma=%2C;dot=.;semi=%3B",
- ";comma=%2C;semi=%3B;dot=.",
- ";dot=.;comma=%2C;semi=%3B",
- ";dot=.;semi=%3B;comma=%2C",
- ";semi=%3B;comma=%2C;dot=.",
- ";semi=%3B;dot=.;comma=%2C"
- ]]
- ]
- },
- "3.2.8 Form-Style Query Expansion" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{?who}", "?who=fred"],
- ["{?half}", "?half=50%25"],
- ["{?x,y}", "?x=1024&y=768"],
- ["{?x,y,empty}", "?x=1024&y=768&empty="],
- ["{?x,y,undef}", "?x=1024&y=768"],
- ["{?var:3}", "?var=val"],
- ["{?list}", "?list=red,green,blue"],
- ["{?list*}", "?list=red&list=green&list=blue"],
- ["{?keys}", [
- "?keys=comma,%2C,dot,.,semi,%3B",
- "?keys=comma,%2C,semi,%3B,dot,.",
- "?keys=dot,.,comma,%2C,semi,%3B",
- "?keys=dot,.,semi,%3B,comma,%2C",
- "?keys=semi,%3B,comma,%2C,dot,.",
- "?keys=semi,%3B,dot,.,comma,%2C"
- ]],
- ["{?keys*}", [
- "?comma=%2C&dot=.&semi=%3B",
- "?comma=%2C&semi=%3B&dot=.",
- "?dot=.&comma=%2C&semi=%3B",
- "?dot=.&semi=%3B&comma=%2C",
- "?semi=%3B&comma=%2C&dot=.",
- "?semi=%3B&dot=.&comma=%2C"
- ]]
- ]
- },
- "3.2.9 Form-Style Query Continuation" :
- {
- "variables": {
- "count" : ["one", "two", "three"],
- "dom" : ["example", "com"],
- "dub" : "me/too",
- "hello" : "Hello World!",
- "half" : "50%",
- "var" : "value",
- "who" : "fred",
- "base" : "http://example.com/home/",
- "path" : "/foo/bar",
- "list" : ["red", "green", "blue"],
- "keys" : { "semi" : ";", "dot" : ".", "comma" : ","},
- "v" : "6",
- "x" : "1024",
- "y" : "768",
- "empty" : "",
- "empty_keys" : [],
- "undef" : null
- },
- "testcases" : [
- ["{&who}", "&who=fred"],
- ["{&half}", "&half=50%25"],
- ["?fixed=yes{&x}", "?fixed=yes&x=1024"],
- ["{&var:3}", "&var=val"],
- ["{&x,y,empty}", "&x=1024&y=768&empty="],
- ["{&x,y,undef}", "&x=1024&y=768"],
- ["{&list}", "&list=red,green,blue"],
- ["{&list*}", "&list=red&list=green&list=blue"],
- ["{&keys}", [
- "&keys=comma,%2C,dot,.,semi,%3B",
- "&keys=comma,%2C,semi,%3B,dot,.",
- "&keys=dot,.,comma,%2C,semi,%3B",
- "&keys=dot,.,semi,%3B,comma,%2C",
- "&keys=semi,%3B,comma,%2C,dot,.",
- "&keys=semi,%3B,dot,.,comma,%2C"
- ]],
- ["{&keys*}", [
- "&comma=%2C&dot=.&semi=%3B",
- "&comma=%2C&semi=%3B&dot=.",
- "&dot=.&comma=%2C&semi=%3B",
- "&dot=.&semi=%3B&comma=%2C",
- "&semi=%3B&comma=%2C&dot=.",
- "&semi=%3B&dot=.&comma=%2C"
- ]]
- ]
- }
- }
|