@@ -37,85 +37,85 @@ public function templateProvider(): array
37
37
38
38
return $ t ;
39
39
}, [
40
- ['foo ' , 'foo ' ],
41
- ['{var} ' , 'value ' ],
42
- ['{hello} ' , 'Hello%20World%21 ' ],
43
- ['{+var} ' , 'value ' ],
44
- ['{+hello} ' , 'Hello%20World! ' ],
45
- ['{+path}/here ' , '/foo/bar/here ' ],
46
- ['here?ref={+path} ' , 'here?ref=/foo/bar ' ],
47
- ['X{#var} ' , 'X#value ' ],
48
- ['X{#hello} ' , 'X#Hello%20World! ' ],
49
- ['map?{x,y} ' , 'map?1024,768 ' ],
50
- ['{x,hello,y} ' , '1024,Hello%20World%21,768 ' ],
51
- ['{+x,hello,y} ' , '1024,Hello%20World!,768 ' ],
52
- ['{+path,x}/here ' , '/foo/bar,1024/here ' ],
53
- ['{#x,hello,y} ' , '#1024,Hello%20World!,768 ' ],
54
- ['{#path,x}/here ' , '#/foo/bar,1024/here ' ],
55
- ['X{.var} ' , 'X.value ' ],
56
- ['X{.x,y} ' , 'X.1024.768 ' ],
57
- ['{/var} ' , '/value ' ],
58
- ['{/var,x}/here ' , '/value/1024/here ' ],
59
- ['{;x,y} ' , ';x=1024;y=768 ' ],
60
- ['{;zero} ' , ';zero=0 ' ],
61
- ['{;x,y,empty} ' , ';x=1024;y=768;empty ' ],
62
- ['{?x,y} ' , '?x=1024&y=768 ' ],
63
- ['{?x,y,empty} ' , '?x=1024&y=768&empty= ' ],
64
- ['?fixed=yes{&x} ' , '?fixed=yes&x=1024 ' ],
65
- ['{&x,y,empty} ' , '&x=1024&y=768&empty= ' ],
66
- ['{var:3} ' , 'val ' ],
67
- ['{var:30} ' , 'value ' ],
68
- ['{list} ' , 'red,green,blue ' ],
69
- ['{list*} ' , 'red,green,blue ' ],
70
- ['{keys} ' , 'semi,%3B,dot,.,comma,%2C ' ],
71
- ['{keys*} ' , 'semi=%3B,dot=.,comma=%2C ' ],
72
- ['{+path:6}/here ' , '/foo/b/here ' ],
73
- ['{+list} ' , 'red,green,blue ' ],
74
- ['{+list*} ' , 'red,green,blue ' ],
75
- ['{+keys} ' , 'semi,;,dot,.,comma,, ' ],
76
- ['{+keys*} ' , 'semi=;,dot=.,comma=, ' ],
77
- ['{#path:6}/here ' , '#/foo/b/here ' ],
78
- ['{#list} ' , '#red,green,blue ' ],
79
- ['{#list*} ' , '#red,green,blue ' ],
80
- ['{#keys} ' , '#semi,;,dot,.,comma,, ' ],
81
- ['{#keys*} ' , '#semi=;,dot=.,comma=, ' ],
82
- ['X{.var:3} ' , 'X.val ' ],
83
- ['X{.list} ' , 'X.red,green,blue ' ],
84
- ['X{.list*} ' , 'X.red.green.blue ' ],
85
- ['X{.keys} ' , 'X.semi,%3B,dot,.,comma,%2C ' ],
86
- ['X{.keys*} ' , 'X.semi=%3B.dot=..comma=%2C ' ],
87
- ['{/var:1,var} ' , '/v/value ' ],
88
- ['{/list} ' , '/red,green,blue ' ],
89
- ['{/list*} ' , '/red/green/blue ' ],
90
- ['{/list*,path:4} ' , '/red/green/blue/%2Ffoo ' ],
91
- ['{/keys} ' , '/semi,%3B,dot,.,comma,%2C ' ],
92
- ['{/keys*} ' , '/semi=%3B/dot=./comma=%2C ' ],
93
- ['{;hello:5} ' , ';hello=Hello ' ],
94
- ['{;list} ' , ';list=red,green,blue ' ],
95
- ['{;list*} ' , ';list=red;list=green;list=blue ' ],
96
- ['{;keys} ' , ';keys=semi,%3B,dot,.,comma,%2C ' ],
97
- ['{;keys*} ' , ';semi=%3B;dot=.;comma=%2C ' ],
98
- ['{?var:3} ' , '?var=val ' ],
99
- ['{?list} ' , '?list=red,green,blue ' ],
100
- ['{?list*} ' , '?list=red&list=green&list=blue ' ],
101
- ['{?keys} ' , '?keys=semi,%3B,dot,.,comma,%2C ' ],
102
- ['{?keys*} ' , '?semi=%3B&dot=.&comma=%2C ' ],
103
- ['{&var:3} ' , '&var=val ' ],
104
- ['{&list} ' , '&list=red,green,blue ' ],
105
- ['{&list*} ' , '&list=red&list=green&list=blue ' ],
106
- ['{&keys} ' , '&keys=semi,%3B,dot,.,comma,%2C ' ],
107
- ['{&keys*} ' , '&semi=%3B&dot=.&comma=%2C ' ],
108
- ['{.null} ' , '' ],
109
- ['{.null,var} ' , '.value ' ],
110
- ['X{.empty_keys*} ' , 'X ' ],
111
- ['X{.empty_keys} ' , 'X ' ],
112
- // Test that missing expansions are skipped
113
- ['test{&missing*} ' , 'test ' ],
114
- // Test that multiple expansions can be set
115
- ['http://{var}/{var:2}{?keys*} ' , 'http://value/va?semi=%3B&dot=.&comma=%2C ' ],
116
- // Test more complex query string stuff
117
- ['http://www.test.com{+path}{?var,keys*} ' , 'http://www.test.com/foo/bar?var=value&semi=%3B&dot=.&comma=%2C ' ],
118
- ]);
40
+ ['foo ' , 'foo ' ],
41
+ ['{var} ' , 'value ' ],
42
+ ['{hello} ' , 'Hello%20World%21 ' ],
43
+ ['{+var} ' , 'value ' ],
44
+ ['{+hello} ' , 'Hello%20World! ' ],
45
+ ['{+path}/here ' , '/foo/bar/here ' ],
46
+ ['here?ref={+path} ' , 'here?ref=/foo/bar ' ],
47
+ ['X{#var} ' , 'X#value ' ],
48
+ ['X{#hello} ' , 'X#Hello%20World! ' ],
49
+ ['map?{x,y} ' , 'map?1024,768 ' ],
50
+ ['{x,hello,y} ' , '1024,Hello%20World%21,768 ' ],
51
+ ['{+x,hello,y} ' , '1024,Hello%20World!,768 ' ],
52
+ ['{+path,x}/here ' , '/foo/bar,1024/here ' ],
53
+ ['{#x,hello,y} ' , '#1024,Hello%20World!,768 ' ],
54
+ ['{#path,x}/here ' , '#/foo/bar,1024/here ' ],
55
+ ['X{.var} ' , 'X.value ' ],
56
+ ['X{.x,y} ' , 'X.1024.768 ' ],
57
+ ['{/var} ' , '/value ' ],
58
+ ['{/var,x}/here ' , '/value/1024/here ' ],
59
+ ['{;x,y} ' , ';x=1024;y=768 ' ],
60
+ ['{;zero} ' , ';zero=0 ' ],
61
+ ['{;x,y,empty} ' , ';x=1024;y=768;empty ' ],
62
+ ['{?x,y} ' , '?x=1024&y=768 ' ],
63
+ ['{?x,y,empty} ' , '?x=1024&y=768&empty= ' ],
64
+ ['?fixed=yes{&x} ' , '?fixed=yes&x=1024 ' ],
65
+ ['{&x,y,empty} ' , '&x=1024&y=768&empty= ' ],
66
+ ['{var:3} ' , 'val ' ],
67
+ ['{var:30} ' , 'value ' ],
68
+ ['{list} ' , 'red,green,blue ' ],
69
+ ['{list*} ' , 'red,green,blue ' ],
70
+ ['{keys} ' , 'semi,%3B,dot,.,comma,%2C ' ],
71
+ ['{keys*} ' , 'semi=%3B,dot=.,comma=%2C ' ],
72
+ ['{+path:6}/here ' , '/foo/b/here ' ],
73
+ ['{+list} ' , 'red,green,blue ' ],
74
+ ['{+list*} ' , 'red,green,blue ' ],
75
+ ['{+keys} ' , 'semi,;,dot,.,comma,, ' ],
76
+ ['{+keys*} ' , 'semi=;,dot=.,comma=, ' ],
77
+ ['{#path:6}/here ' , '#/foo/b/here ' ],
78
+ ['{#list} ' , '#red,green,blue ' ],
79
+ ['{#list*} ' , '#red,green,blue ' ],
80
+ ['{#keys} ' , '#semi,;,dot,.,comma,, ' ],
81
+ ['{#keys*} ' , '#semi=;,dot=.,comma=, ' ],
82
+ ['X{.var:3} ' , 'X.val ' ],
83
+ ['X{.list} ' , 'X.red,green,blue ' ],
84
+ ['X{.list*} ' , 'X.red.green.blue ' ],
85
+ ['X{.keys} ' , 'X.semi,%3B,dot,.,comma,%2C ' ],
86
+ ['X{.keys*} ' , 'X.semi=%3B.dot=..comma=%2C ' ],
87
+ ['{/var:1,var} ' , '/v/value ' ],
88
+ ['{/list} ' , '/red,green,blue ' ],
89
+ ['{/list*} ' , '/red/green/blue ' ],
90
+ ['{/list*,path:4} ' , '/red/green/blue/%2Ffoo ' ],
91
+ ['{/keys} ' , '/semi,%3B,dot,.,comma,%2C ' ],
92
+ ['{/keys*} ' , '/semi=%3B/dot=./comma=%2C ' ],
93
+ ['{;hello:5} ' , ';hello=Hello ' ],
94
+ ['{;list} ' , ';list=red,green,blue ' ],
95
+ ['{;list*} ' , ';list=red;list=green;list=blue ' ],
96
+ ['{;keys} ' , ';keys=semi,%3B,dot,.,comma,%2C ' ],
97
+ ['{;keys*} ' , ';semi=%3B;dot=.;comma=%2C ' ],
98
+ ['{?var:3} ' , '?var=val ' ],
99
+ ['{?list} ' , '?list=red,green,blue ' ],
100
+ ['{?list*} ' , '?list=red&list=green&list=blue ' ],
101
+ ['{?keys} ' , '?keys=semi,%3B,dot,.,comma,%2C ' ],
102
+ ['{?keys*} ' , '?semi=%3B&dot=.&comma=%2C ' ],
103
+ ['{&var:3} ' , '&var=val ' ],
104
+ ['{&list} ' , '&list=red,green,blue ' ],
105
+ ['{&list*} ' , '&list=red&list=green&list=blue ' ],
106
+ ['{&keys} ' , '&keys=semi,%3B,dot,.,comma,%2C ' ],
107
+ ['{&keys*} ' , '&semi=%3B&dot=.&comma=%2C ' ],
108
+ ['{.null} ' , '' ],
109
+ ['{.null,var} ' , '.value ' ],
110
+ ['X{.empty_keys*} ' , 'X ' ],
111
+ ['X{.empty_keys} ' , 'X ' ],
112
+ // Test that missing expansions are skipped
113
+ ['test{&missing*} ' , 'test ' ],
114
+ // Test that multiple expansions can be set
115
+ ['http://{var}/{var:2}{?keys*} ' , 'http://value/va?semi=%3B&dot=.&comma=%2C ' ],
116
+ // Test more complex query string stuff
117
+ ['http://www.test.com{+path}{?var,keys*} ' , 'http://www.test.com/foo/bar?var=value&semi=%3B&dot=.&comma=%2C ' ],
118
+ ]);
119
119
}
120
120
121
121
/**
@@ -131,32 +131,32 @@ public function expressionProvider(): array
131
131
return [
132
132
[
133
133
'{+var*} ' , [
134
- 'operator ' => '+ ' ,
135
- 'values ' => [
136
- ['modifier ' => '* ' , 'value ' => 'var ' ],
134
+ 'operator ' => '+ ' ,
135
+ 'values ' => [
136
+ ['modifier ' => '* ' , 'value ' => 'var ' ],
137
+ ],
137
138
],
138
139
],
139
- ],
140
140
[
141
141
'{?keys,var,val} ' , [
142
- 'operator ' => '? ' ,
143
- 'values ' => [
144
- ['value ' => 'keys ' , 'modifier ' => '' ],
145
- ['value ' => 'var ' , 'modifier ' => '' ],
146
- ['value ' => 'val ' , 'modifier ' => '' ],
142
+ 'operator ' => '? ' ,
143
+ 'values ' => [
144
+ ['value ' => 'keys ' , 'modifier ' => '' ],
145
+ ['value ' => 'var ' , 'modifier ' => '' ],
146
+ ['value ' => 'val ' , 'modifier ' => '' ],
147
+ ],
147
148
],
148
149
],
149
- ],
150
150
[
151
151
'{+x,hello,y} ' , [
152
- 'operator ' => '+ ' ,
153
- 'values ' => [
154
- ['value ' => 'x ' , 'modifier ' => '' ],
155
- ['value ' => 'hello ' , 'modifier ' => '' ],
156
- ['value ' => 'y ' , 'modifier ' => '' ],
152
+ 'operator ' => '+ ' ,
153
+ 'values ' => [
154
+ ['value ' => 'x ' , 'modifier ' => '' ],
155
+ ['value ' => 'hello ' , 'modifier ' => '' ],
156
+ ['value ' => 'y ' , 'modifier ' => '' ],
157
+ ],
157
158
],
158
159
],
159
- ],
160
160
];
161
161
}
162
162
0 commit comments