| { |
| "Level 1 Examples" : |
| { |
| "level": 1, |
| "variables": { |
| "var" : "value", |
| "hello" : "Hello World!" |
| }, |
| "testcases" : [ |
| ["{var}", "value"], |
| ["{hello}", "Hello%20World%21"] |
| ] |
| }, |
| "Level 2 Examples" : |
| { |
| "level": 2, |
| "variables": { |
| "var" : "value", |
| "hello" : "Hello World!", |
| "path" : "/foo/bar" |
| }, |
| "testcases" : [ |
| ["{+var}", "value"], |
| ["{+hello}", "Hello%20World!"], |
| ["{+path}/here", "/foo/bar/here"], |
| ["here?ref={+path}", "here?ref=/foo/bar"] |
| ] |
| }, |
| "Level 3 Examples" : |
| { |
| "level": 3, |
| "variables": { |
| "var" : "value", |
| "hello" : "Hello World!", |
| "empty" : "", |
| "path" : "/foo/bar", |
| "x" : "1024", |
| "y" : "768" |
| }, |
| "testcases" : [ |
| ["map?{x,y}", "map?1024,768"], |
| ["{x,hello,y}", "1024,Hello%20World%21,768"], |
| ["{+x,hello,y}", "1024,Hello%20World!,768"], |
| ["{+path,x}/here", "/foo/bar,1024/here"], |
| ["{#x,hello,y}", "#1024,Hello%20World!,768"], |
| ["{#path,x}/here", "#/foo/bar,1024/here"], |
| ["X{.var}", "X.value"], |
| ["X{.x,y}", "X.1024.768"], |
| ["{/var}", "/value"], |
| ["{/var,x}/here", "/value/1024/here"], |
| ["{;x,y}", ";x=1024;y=768"], |
| ["{;x,y,empty}", ";x=1024;y=768;empty"], |
| ["{?x,y}", "?x=1024&y=768"], |
| ["{?x,y,empty}", "?x=1024&y=768&empty="], |
| ["?fixed=yes{&x}", "?fixed=yes&x=1024"], |
| ["{&x,y,empty}", "&x=1024&y=768&empty="] |
| ] |
| }, |
| "Level 4 Examples" : |
| { |
| "level": 4, |
| "variables": { |
| "var": "value", |
| "hello": "Hello World!", |
| "path": "/foo/bar", |
| "list": ["red", "green", "blue"], |
| "keys": {"semi": ";", "dot": ".", "comma":","} |
| }, |
| "testcases": [ |
| ["{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" |
| ]], |
| ["{+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,," |
| ]], |
| ["{+keys*}", [ |
| "comma=,,dot=.,semi=;", |
| "comma=,,semi=;,dot=.", |
| "dot=.,comma=,,semi=;", |
| "dot=.,semi=;,comma=,", |
| "semi=;,comma=,,dot=.", |
| "semi=;,dot=.,comma=," |
| ]], |
| ["{#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,," |
| ]], |
| ["{#keys*}", [ |
| "#comma=,,dot=.,semi=;", |
| "#comma=,,semi=;,dot=.", |
| "#dot=.,comma=,,semi=;", |
| "#dot=.,semi=;,comma=,", |
| "#semi=;,comma=,,dot=.", |
| "#semi=;,dot=.,comma=," |
| ]], |
| ["X{.var:3}", "X.val"], |
| ["X{.list}", "X.red,green,blue"], |
| ["X{.list*}", "X.red.green.blue"], |
| ["X{.keys}", [ |
| "X.comma,%2C,dot,.,semi,%3B", |
| "X.comma,%2C,semi,%3B,dot,.", |
| "X.dot,.,comma,%2C,semi,%3B", |
| "X.dot,.,semi,%3B,comma,%2C", |
| "X.semi,%3B,comma,%2C,dot,.", |
| "X.semi,%3B,dot,.,comma,%2C" |
| ]], |
| ["{/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" |
| ]], |
| ["{;hello:5}", ";hello=Hello"], |
| ["{;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" |
| ]], |
| ["{?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" |
| ]], |
| ["{&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" |
| ]] |
| ] |
| } |
| } |