Home | History | Annotate | Download | only in fixtures
      1 {
      2   "3.2.1 Variable Expansion" :
      3   {
      4     "variables": {
      5        "count"      : ["one", "two", "three"],
      6        "dom"        : ["example", "com"],
      7        "dub"        : "me/too",
      8        "hello"      : "Hello World!",
      9        "half"       : "50%",
     10        "var"        : "value",
     11        "who"        : "fred",
     12        "base"       : "http://example.com/home/",
     13        "path"       : "/foo/bar",
     14        "list"       : ["red", "green", "blue"],
     15        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
     16        "v"          : "6",
     17        "x"          : "1024",
     18        "y"          : "768",
     19        "empty"      : "",
     20        "empty_keys" : [],
     21        "undef"      : null
     22      },
     23      "testcases" : [
     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"]
     33       ]
     34   },
     35   "3.2.2 Simple String Expansion" :
     36   {
     37     "variables": {
     38        "count"      : ["one", "two", "three"],
     39        "dom"        : ["example", "com"],
     40        "dub"        : "me/too",
     41        "hello"      : "Hello World!",
     42        "half"       : "50%",
     43        "var"        : "value",
     44        "who"        : "fred",
     45        "base"       : "http://example.com/home/",
     46        "path"       : "/foo/bar",
     47        "list"       : ["red", "green", "blue"],
     48        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
     49        "v"          : "6",
     50        "x"          : "1024",
     51        "y"          : "768",
     52        "empty"      : "",
     53        "empty_keys" : [],
     54        "undef"      : null
     55      },
     56      "testcases" : [
     57         ["{var}", "value"],
     58         ["{hello}", "Hello%20World%21"],
     59         ["{half}", "50%25"],
     60         ["O{empty}X", "OX"],
     61         ["O{undef}X", "OX"],
     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"],
     67         ["{var:3}", "val"],
     68         ["{var:30}", "value"],
     69         ["{list}", "red,green,blue"],
     70         ["{list*}", "red,green,blue"],
     71         ["{keys}", [
     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"
     78         ]],
     79         ["{keys*}", [
     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"
     86         ]]
     87      ]
     88   },
     89   "3.2.3 Reserved Expansion" :
     90   {
     91     "variables": {
     92        "count"      : ["one", "two", "three"],
     93        "dom"        : ["example", "com"],
     94        "dub"        : "me/too",
     95        "hello"      : "Hello World!",
     96        "half"       : "50%",
     97        "var"        : "value",
     98        "who"        : "fred",
     99        "base"       : "http://example.com/home/",
    100        "path"       : "/foo/bar",
    101        "list"       : ["red", "green", "blue"],
    102        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    103        "v"          : "6",
    104        "x"          : "1024",
    105        "y"          : "768",
    106        "empty"      : "",
    107        "empty_keys" : [],
    108        "undef"      : null
    109      },
    110      "testcases" : [
    111         ["{+var}", "value"],
    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"],
    128         ["{+keys}", [
    129           "comma,,,dot,.,semi,;",
    130           "comma,,,semi,;,dot,.",
    131           "dot,.,comma,,,semi,;",
    132           "dot,.,semi,;,comma,,",
    133           "semi,;,comma,,,dot,.",
    134           "semi,;,dot,.,comma,,"
    135         ]],
    136         ["{+keys*}", [
    137           "comma=,,dot=.,semi=;",
    138           "comma=,,semi=;,dot=.",
    139           "dot=.,comma=,,semi=;",
    140           "dot=.,semi=;,comma=,",
    141           "semi=;,comma=,,dot=.",
    142           "semi=;,dot=.,comma=,"
    143         ]]
    144      ]
    145   },
    146   "3.2.4 Fragment Expansion" :
    147   {
    148     "variables": {
    149        "count"      : ["one", "two", "three"],
    150        "dom"        : ["example", "com"],
    151        "dub"        : "me/too",
    152        "hello"      : "Hello World!",
    153        "half"       : "50%",
    154        "var"        : "value",
    155        "who"        : "fred",
    156        "base"       : "http://example.com/home/",
    157        "path"       : "/foo/bar",
    158        "list"       : ["red", "green", "blue"],
    159        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    160        "v"          : "6",
    161        "x"          : "1024",
    162        "y"          : "768",
    163        "empty"      : "",
    164        "empty_keys" : [],
    165        "undef"      : null
    166      },
    167      "testcases" : [
    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"],
    178         ["{#keys}", [
    179           "#comma,,,dot,.,semi,;",
    180           "#comma,,,semi,;,dot,.",
    181           "#dot,.,comma,,,semi,;",
    182           "#dot,.,semi,;,comma,,",
    183           "#semi,;,comma,,,dot,.",
    184           "#semi,;,dot,.,comma,,"
    185         ]]
    186     ]
    187   },
    188   "3.2.5 Label Expansion with Dot-Prefix" :
    189   {
    190     "variables": {
    191        "count"      : ["one", "two", "three"],
    192        "dom"        : ["example", "com"],
    193        "dub"        : "me/too",
    194        "hello"      : "Hello World!",
    195        "half"       : "50%",
    196        "var"        : "value",
    197        "who"        : "fred",
    198        "base"       : "http://example.com/home/",
    199        "path"       : "/foo/bar",
    200        "list"       : ["red", "green", "blue"],
    201        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    202        "v"          : "6",
    203        "x"          : "1024",
    204        "y"          : "768",
    205        "empty"      : "",
    206        "empty_keys" : [],
    207        "undef"      : null
    208     },
    209     "testcases" : [
    210        ["{.who}", ".fred"],
    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"],
    216        ["X{.empty}", "X."],
    217        ["X{.undef}", "X"],
    218        ["X{.list}", "X.red,green,blue"],
    219        ["X{.list*}", "X.red.green.blue"],
    220        ["{#keys}", [
    221         "#comma,,,dot,.,semi,;",
    222         "#comma,,,semi,;,dot,.",
    223         "#dot,.,comma,,,semi,;",
    224         "#dot,.,semi,;,comma,,",
    225         "#semi,;,comma,,,dot,.",
    226         "#semi,;,dot,.,comma,,"
    227        ]],
    228        ["{#keys*}", [
    229         "#comma=,,dot=.,semi=;",
    230         "#comma=,,semi=;,dot=.",
    231         "#dot=.,comma=,,semi=;",
    232         "#dot=.,semi=;,comma=,",
    233         "#semi=;,comma=,,dot=.",
    234         "#semi=;,dot=.,comma=,"
    235        ]],
    236        ["X{.empty_keys}", "X"],
    237        ["X{.empty_keys*}", "X"]
    238     ]
    239   },
    240   "3.2.6 Path Segment Expansion" :
    241   {
    242     "variables": {
    243        "count"      : ["one", "two", "three"],
    244        "dom"        : ["example", "com"],
    245        "dub"        : "me/too",
    246        "hello"      : "Hello World!",
    247        "half"       : "50%",
    248        "var"        : "value",
    249        "who"        : "fred",
    250        "base"       : "http://example.com/home/",
    251        "path"       : "/foo/bar",
    252        "list"       : ["red", "green", "blue"],
    253        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    254        "v"          : "6",
    255        "x"          : "1024",
    256        "y"          : "768",
    257        "empty"      : "",
    258        "empty_keys" : [],
    259        "undef"      : null
    260      },
    261      "testcases" : [
    262        ["{/who}", "/fred"],
    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"],
    274        ["{/keys}", [
    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"
    281        ]],
    282        ["{/keys*}", [ 
    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"
    289        ]]
    290      ]
    291   },
    292   "3.2.7 Path-Style Parameter Expansion" :
    293   {
    294     "variables": {
    295        "count"      : ["one", "two", "three"],
    296        "dom"        : ["example", "com"],
    297        "dub"        : "me/too",
    298        "hello"      : "Hello World!",
    299        "half"       : "50%",
    300        "var"        : "value",
    301        "who"        : "fred",
    302        "base"       : "http://example.com/home/",
    303        "path"       : "/foo/bar",
    304        "list"       : ["red", "green", "blue"],
    305        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    306        "v"          : "6",
    307        "x"          : "1024",
    308        "y"          : "768",
    309        "empty"      : "",
    310        "empty_keys" : [],
    311        "undef"      : null
    312      },
    313      "testcases" : [
    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"],
    325         ["{;keys}", [ 
    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"
    332         ]],
    333         ["{;keys*}", [ 
    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"
    340         ]]
    341      ]
    342   },
    343   "3.2.8 Form-Style Query Expansion" :
    344   {
    345     "variables": {
    346        "count"      : ["one", "two", "three"],
    347        "dom"        : ["example", "com"],
    348        "dub"        : "me/too",
    349        "hello"      : "Hello World!",
    350        "half"       : "50%",
    351        "var"        : "value",
    352        "who"        : "fred",
    353        "base"       : "http://example.com/home/",
    354        "path"       : "/foo/bar",
    355        "list"       : ["red", "green", "blue"],
    356        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    357        "v"          : "6",
    358        "x"          : "1024",
    359        "y"          : "768",
    360        "empty"      : "",
    361        "empty_keys" : [],
    362        "undef"      : null
    363      },
    364      "testcases" : [
    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"],
    373         ["{?keys}", [ 
    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"
    380         ]],
    381         ["{?keys*}", [ 
    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"
    388         ]]
    389      ]
    390   },
    391   "3.2.9 Form-Style Query Continuation" :
    392   {
    393     "variables": {
    394        "count"      : ["one", "two", "three"],
    395        "dom"        : ["example", "com"],
    396        "dub"        : "me/too",
    397        "hello"      : "Hello World!",
    398        "half"       : "50%",
    399        "var"        : "value",
    400        "who"        : "fred",
    401        "base"       : "http://example.com/home/",
    402        "path"       : "/foo/bar",
    403        "list"       : ["red", "green", "blue"],
    404        "keys"       : { "semi" : ";", "dot" : ".", "comma" : ","},
    405        "v"          : "6",
    406        "x"          : "1024",
    407        "y"          : "768",
    408        "empty"      : "",
    409        "empty_keys" : [],
    410        "undef"      : null
    411      },
    412      "testcases" : [
    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"],
    421           ["{&keys}", [ 
    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"
    428           ]],
    429           ["{&keys*}", [ 
    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"
    436           ]]
    437      ]
    438   }
    439 }
    440