aboutsummaryrefslogtreecommitdiff
path: root/Foundation/TestData/GTMURITemplateRFCTests.json
blob: 03fa22d0033a40cac0e3f6a7e2e80d457396f07e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
{
  "Test Suite 1" :
  {
    "variables": {
       "var"   : "value",
       "hello" : "Hello World!",
       "empty" : "",
       "list"  : [ "val1", "val2", "val3" ],
       "keys"  : {"key1": "val1", "key2": "val2"},
       "path"  : "/foo/bar",
       "x"     : "1024",
       "y"     : "768"
     },
     "testcases" : [
        ["{var}", "value"],
        ["{hello}", "Hello%20World%21"],
        ["{path}/here", "%2Ffoo%2Fbar/here"],
        ["{x,y}", "1024,768"],
        ["{var=default}", "value"],
        ["{undef=default}", "default"],
        ["{list}", "val1,val2,val3"],
        ["{list*}", "val1,val2,val3"],
        ["{list+}", "list.val1,list.val2,list.val3"],
        ["{keys}", "key1,val1,key2,val2"],
        ["{keys*}", "key1,val1,key2,val2"],
        ["{keys+}", "keys.key1,val1,keys.key2,val2"],
        ["{+var}", "value"],
        ["{+hello}", "Hello%20World!"],
        ["{+path}/here", "/foo/bar/here"],
        ["{+path,x}/here", "/foo/bar,1024/here"],
        ["{+path}{x}/here", "/foo/bar1024/here"],
        ["{+empty}/here", "/here"],
        ["{+undef}/here", "/here"],
        ["{+list}", "val1,val2,val3"],
        ["{+list*}", "val1,val2,val3"],
        ["{+list+}", "list.val1,list.val2,list.val3"],
        ["{+keys}", "key1,val1,key2,val2"],
        ["{+keys*}", "key1,val1,key2,val2"],
        ["{+keys+}", "keys.key1,val1,keys.key2,val2"],
        ["{;x,y}", ";x=1024;y=768"],
        ["{;x,y,empty}", ";x=1024;y=768;empty"],
        ["{;x,y,undef}", ";x=1024;y=768"],
        ["{;list}", ";val1,val2,val3"],
        ["{;list*}", ";val1;val2;val3"],
        ["{;list+}", ";list=val1;list=val2;list=val3"],
        ["{;keys}", ";key1,val1,key2,val2"],
        ["{;keys*}", ";key1=val1;key2=val2"],
        ["{;keys+}", ";keys.key1=val1;keys.key2=val2"],
        ["{?x,y}", "?x=1024&y=768"],
        ["{?x,y,empty}", "?x=1024&y=768&empty"],
        ["{?x,y,undef}", "?x=1024&y=768"],
        ["{?list}", "?list=val1,val2,val3"],
        ["{?list*}", "?val1&val2&val3"],
        ["{?list+}", "?list=val1&list=val2&list=val3"],
        ["{?keys}", "?keys=key1,val1,key2,val2"],
        ["{?keys*}", "?key1=val1&key2=val2"],
        ["{?keys+}", "?keys.key1=val1&keys.key2=val2"],
        ["{/var}", "/value"],
        ["{/var,empty}", "/value/"],
        ["{/var,undef}", "/value"],
        ["{/list}", "/val1,val2,val3"],
        ["{/list*}", "/val1/val2/val3"],
        ["{/list*,x}", "/val1/val2/val3/1024"],
        ["{/list+}", "/list.val1/list.val2/list.val3"],
        ["{/keys}", "/key1,val1,key2,val2"],
        ["{/keys*}", "/key1/val1/key2/val2"],
        ["{/keys+}", "/keys.key1/val1/keys.key2/val2"],
        ["X{.var}", "X.value"],
        ["X{.empty}", "X"],
        ["X{.undef}", "X"],
        ["X{.list}", "X.val1,val2,val3"],
        ["X{.list*}", "X.val1.val2.val3"],
        ["X{.list*,x}", "X.val1.val2.val3.1024"],
        ["X{.list+}", "X.list.val1.list.val2.list.val3"],
        ["X{.keys}", "X.key1,val1,key2,val2"],
        ["X{.keys*}", "X.key1.val1.key2.val2"],
        ["X{.keys+}", "X.keys.key1.val1.keys.key2.val2"]
     ]
  },
  "Test Suite 2" :
  {
    "variables": {
       "var"        : "value",
       "empty"      : "",
       "name"       : [ "Fred", "Wilma", "Pebbles" ],
       "favs"       : {"color":"red", "volume": "high"},
       "empty_list" : [],
       "empty_keys" : {} 
     },
     "testcases" : [
        ["{var=default}", "value"],
        ["{undef=default}", "default"],
        ["x{empty}y", "xy"],
        ["x{empty=_}y", "xy"],
        ["x{undef}y", "xy"],
        ["x{undef=_}y", "x_y"],
        ["x{empty_list}y", "xy"],
        ["x{empty_list=_}y", "x_y"],
        ["x{empty_list*}y", "xy"],
        ["x{empty_list*=_}y", "x_y"],
        ["x{empty_list+}y", "xy"],
        ["x{empty_list+=_}y", "x_y"],
        ["x{empty_keys}y", "xy"],
        ["x{empty_keys=_}y", "x_y"],
        ["x{empty_keys*}y", "xy"],
        ["x{empty_keys*=_}y", "x_y"],
        ["x{empty_keys+}y", "xy"],
        ["x{empty_keys+=_}y", "x_y"],
        ["x{?name=none}", "x?name=Fred,Wilma,Pebbles"],
        ["x{?favs=none}", "x?favs=color,red,volume,high"],
        ["x{?favs*=none}", "x?color=red&volume=high"],
        ["x{?favs+=none}", "x?favs.color=red&favs.volume=high"],
        ["x{?undef}", "x"],
        ["x{?undef=none}", "x?undef=none"],
        ["x{?empty}", "x?empty"],
        ["x{?empty=none}", "x?empty"],
        ["x{?empty_list}", "x"],
        ["x{?empty_list=none}", "x?empty_list=none"],
        ["x{?empty_list*}", "x"],
        ["x{?empty_list*=none}", "x?empty_list=none"],
        ["x{?empty_list+}", "x"],
        ["x{?empty_list+=none}", "x?empty_list=none"],
        ["x{?empty_keys}", "x"],
        ["x{?empty_keys=none}", "x?empty_keys=none"],
        ["x{?empty_keys*}", "x"],
        ["x{?empty_keys*=none}", "x?empty_keys=none"],
        ["x{?empty_keys+}", "x"],
        ["x{?empty_keys+=none}", "x?empty_keys=none"]
     ]
  }
}