@@ -173,89 +173,89 @@ |
||
173 | 173 | |
174 | 174 | $templateAndExpansionData = [ |
175 | 175 | 'level 1' => [ |
176 | - ['foo', 'foo'], |
|
177 | - ['{var}', 'value'], |
|
178 | - ['{hello}', 'Hello%20World%21'], |
|
179 | - ['{bool}', '1'], |
|
176 | + ['foo', 'foo'], |
|
177 | + ['{var}', 'value'], |
|
178 | + ['{hello}', 'Hello%20World%21'], |
|
179 | + ['{bool}', '1'], |
|
180 | 180 | ], |
181 | 181 | 'level 2' => [ |
182 | - ['{+var}', 'value'], |
|
183 | - ['{+hello}', 'Hello%20World!'], |
|
184 | - ['{+path}/here', '/foo/bar/here'], |
|
185 | - ['here?ref={+path}', 'here?ref=/foo/bar'], |
|
182 | + ['{+var}', 'value'], |
|
183 | + ['{+hello}', 'Hello%20World!'], |
|
184 | + ['{+path}/here', '/foo/bar/here'], |
|
185 | + ['here?ref={+path}', 'here?ref=/foo/bar'], |
|
186 | 186 | ], |
187 | 187 | 'level 3' => [ |
188 | - ['X{#var}', 'X#value'], |
|
189 | - ['X{#hello}', 'X#Hello%20World!'], |
|
190 | - ['map?{x,y}', 'map?1024,768'], |
|
191 | - ['{x,hello,y}', '1024,Hello%20World%21,768'], |
|
192 | - ['{+x,hello,y}', '1024,Hello%20World!,768'], |
|
193 | - ['{+path,x}/here', '/foo/bar,1024/here'], |
|
194 | - ['{#x,hello,y}', '#1024,Hello%20World!,768'], |
|
195 | - ['{#path,x}/here', '#/foo/bar,1024/here'], |
|
196 | - ['X{.var}', 'X.value'], |
|
197 | - ['X{.x,y}', 'X.1024.768'], |
|
198 | - ['{/var}', '/value'], |
|
199 | - ['{/var,x}/here', '/value/1024/here'], |
|
200 | - ['{;x,y}', ';x=1024;y=768'], |
|
201 | - ['{;x,y,empty}', ';x=1024;y=768;empty'], |
|
202 | - ['{?x,y}', '?x=1024&y=768'], |
|
203 | - ['{?x,y,empty}', '?x=1024&y=768&empty='], |
|
204 | - ['{?x,y,undef}', '?x=1024&y=768'], |
|
205 | - ['?fixed=yes{&x}', '?fixed=yes&x=1024'], |
|
206 | - ['{&x,y,empty}', '&x=1024&y=768&empty='], |
|
188 | + ['X{#var}', 'X#value'], |
|
189 | + ['X{#hello}', 'X#Hello%20World!'], |
|
190 | + ['map?{x,y}', 'map?1024,768'], |
|
191 | + ['{x,hello,y}', '1024,Hello%20World%21,768'], |
|
192 | + ['{+x,hello,y}', '1024,Hello%20World!,768'], |
|
193 | + ['{+path,x}/here', '/foo/bar,1024/here'], |
|
194 | + ['{#x,hello,y}', '#1024,Hello%20World!,768'], |
|
195 | + ['{#path,x}/here', '#/foo/bar,1024/here'], |
|
196 | + ['X{.var}', 'X.value'], |
|
197 | + ['X{.x,y}', 'X.1024.768'], |
|
198 | + ['{/var}', '/value'], |
|
199 | + ['{/var,x}/here', '/value/1024/here'], |
|
200 | + ['{;x,y}', ';x=1024;y=768'], |
|
201 | + ['{;x,y,empty}', ';x=1024;y=768;empty'], |
|
202 | + ['{?x,y}', '?x=1024&y=768'], |
|
203 | + ['{?x,y,empty}', '?x=1024&y=768&empty='], |
|
204 | + ['{?x,y,undef}', '?x=1024&y=768'], |
|
205 | + ['?fixed=yes{&x}', '?fixed=yes&x=1024'], |
|
206 | + ['{&x,y,empty}', '&x=1024&y=768&empty='], |
|
207 | 207 | ], |
208 | 208 | 'level 4' => [ |
209 | - ['{var:3}', 'val'], |
|
210 | - ['{var:30}', 'value'], |
|
211 | - ['{list}', 'red,green,blue'], |
|
212 | - ['{list*}', 'red,green,blue'], |
|
213 | - ['{keys}', 'semi,%3B,dot,.,comma,%2C'], |
|
214 | - ['{keys*}', 'semi=%3B,dot=.,comma=%2C'], |
|
215 | - ['{+path:6}/here', '/foo/b/here'], |
|
216 | - ['{+list}', 'red,green,blue'], |
|
217 | - ['{+list*}', 'red,green,blue'], |
|
218 | - ['{+keys}', 'semi,;,dot,.,comma,,'], |
|
219 | - ['{+keys*}', 'semi=;,dot=.,comma=,'], |
|
220 | - ['{#path:6}/here', '#/foo/b/here'], |
|
221 | - ['{#list}', '#red,green,blue'], |
|
222 | - ['{#list*}', '#red,green,blue'], |
|
223 | - ['{#keys}', '#semi,;,dot,.,comma,,'], |
|
224 | - ['{#keys*}', '#semi=;,dot=.,comma=,'], |
|
225 | - ['X{.var:3}', 'X.val'], |
|
226 | - ['X{.list}', 'X.red,green,blue'], |
|
227 | - ['X{.list*}', 'X.red.green.blue'], |
|
228 | - ['X{.keys}', 'X.semi,%3B,dot,.,comma,%2C'], |
|
229 | - ['X{.keys*}', 'X.semi=%3B.dot=..comma=%2C'], |
|
230 | - ['{/var:1,var}', '/v/value'], |
|
231 | - ['{/list}', '/red,green,blue'], |
|
232 | - ['{/list*}', '/red/green/blue'], |
|
233 | - ['{/list*,path:4}', '/red/green/blue/%2Ffoo'], |
|
234 | - ['{/keys}', '/semi,%3B,dot,.,comma,%2C'], |
|
235 | - ['{/keys*}', '/semi=%3B/dot=./comma=%2C'], |
|
236 | - ['{;hello:5}', ';hello=Hello'], |
|
237 | - ['{;list}', ';list=red,green,blue'], |
|
238 | - ['{;list*}', ';list=red;list=green;list=blue'], |
|
239 | - ['{;keys}', ';keys=semi,%3B,dot,.,comma,%2C'], |
|
240 | - ['{;keys*}', ';semi=%3B;dot=.;comma=%2C'], |
|
241 | - ['{?var:3}', '?var=val'], |
|
242 | - ['{?list}', '?list=red,green,blue'], |
|
243 | - ['{?list*}', '?list=red&list=green&list=blue'], |
|
244 | - ['{?keys}', '?keys=semi,%3B,dot,.,comma,%2C'], |
|
245 | - ['{?keys*}', '?semi=%3B&dot=.&comma=%2C'], |
|
246 | - ['{&var:3}', '&var=val'], |
|
247 | - ['{&list}', '&list=red,green,blue'], |
|
248 | - ['{&list*}', '&list=red&list=green&list=blue'], |
|
249 | - ['{&keys}', '&keys=semi,%3B,dot,.,comma,%2C'], |
|
250 | - ['{&keys*}', '&semi=%3B&dot=.&comma=%2C'], |
|
251 | - ['{.null}', ''], |
|
252 | - ['{.null,var}', '.value'], |
|
253 | - ['X{.empty_keys*}', 'X'], |
|
254 | - ['X{.empty_keys}', 'X'], |
|
209 | + ['{var:3}', 'val'], |
|
210 | + ['{var:30}', 'value'], |
|
211 | + ['{list}', 'red,green,blue'], |
|
212 | + ['{list*}', 'red,green,blue'], |
|
213 | + ['{keys}', 'semi,%3B,dot,.,comma,%2C'], |
|
214 | + ['{keys*}', 'semi=%3B,dot=.,comma=%2C'], |
|
215 | + ['{+path:6}/here', '/foo/b/here'], |
|
216 | + ['{+list}', 'red,green,blue'], |
|
217 | + ['{+list*}', 'red,green,blue'], |
|
218 | + ['{+keys}', 'semi,;,dot,.,comma,,'], |
|
219 | + ['{+keys*}', 'semi=;,dot=.,comma=,'], |
|
220 | + ['{#path:6}/here', '#/foo/b/here'], |
|
221 | + ['{#list}', '#red,green,blue'], |
|
222 | + ['{#list*}', '#red,green,blue'], |
|
223 | + ['{#keys}', '#semi,;,dot,.,comma,,'], |
|
224 | + ['{#keys*}', '#semi=;,dot=.,comma=,'], |
|
225 | + ['X{.var:3}', 'X.val'], |
|
226 | + ['X{.list}', 'X.red,green,blue'], |
|
227 | + ['X{.list*}', 'X.red.green.blue'], |
|
228 | + ['X{.keys}', 'X.semi,%3B,dot,.,comma,%2C'], |
|
229 | + ['X{.keys*}', 'X.semi=%3B.dot=..comma=%2C'], |
|
230 | + ['{/var:1,var}', '/v/value'], |
|
231 | + ['{/list}', '/red,green,blue'], |
|
232 | + ['{/list*}', '/red/green/blue'], |
|
233 | + ['{/list*,path:4}', '/red/green/blue/%2Ffoo'], |
|
234 | + ['{/keys}', '/semi,%3B,dot,.,comma,%2C'], |
|
235 | + ['{/keys*}', '/semi=%3B/dot=./comma=%2C'], |
|
236 | + ['{;hello:5}', ';hello=Hello'], |
|
237 | + ['{;list}', ';list=red,green,blue'], |
|
238 | + ['{;list*}', ';list=red;list=green;list=blue'], |
|
239 | + ['{;keys}', ';keys=semi,%3B,dot,.,comma,%2C'], |
|
240 | + ['{;keys*}', ';semi=%3B;dot=.;comma=%2C'], |
|
241 | + ['{?var:3}', '?var=val'], |
|
242 | + ['{?list}', '?list=red,green,blue'], |
|
243 | + ['{?list*}', '?list=red&list=green&list=blue'], |
|
244 | + ['{?keys}', '?keys=semi,%3B,dot,.,comma,%2C'], |
|
245 | + ['{?keys*}', '?semi=%3B&dot=.&comma=%2C'], |
|
246 | + ['{&var:3}', '&var=val'], |
|
247 | + ['{&list}', '&list=red,green,blue'], |
|
248 | + ['{&list*}', '&list=red&list=green&list=blue'], |
|
249 | + ['{&keys}', '&keys=semi,%3B,dot,.,comma,%2C'], |
|
250 | + ['{&keys*}', '&semi=%3B&dot=.&comma=%2C'], |
|
251 | + ['{.null}', ''], |
|
252 | + ['{.null,var}', '.value'], |
|
253 | + ['X{.empty_keys*}', 'X'], |
|
254 | + ['X{.empty_keys}', 'X'], |
|
255 | 255 | ], |
256 | 256 | 'extra' => [ |
257 | 257 | // Test that missing expansions are skipped |
258 | - ['test{&missing*}', 'test'], |
|
258 | + ['test{&missing*}', 'test'], |
|
259 | 259 | // Test that multiple expansions can be set |
260 | 260 | ['http://{var}/{var:2}{?keys*}', 'http://value/va?semi=%3B&dot=.&comma=%2C'], |
261 | 261 | // Test more complex query string stuff |