@@ -61,10 +61,11 @@ public function tearDown()
61
61
*/
62
62
public function testSettingCookie ()
63
63
{
64
- $ _SERVER ['REQUEST_METHOD ' ] = 'GET ' ;
65
-
66
64
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
67
- $ controller ->request = new Request (['webroot ' => '/dir/ ' ]);
65
+ $ controller ->request = new Request ([
66
+ 'environment ' => ['REQUEST_METHOD ' => 'GET ' ],
67
+ 'webroot ' => '/dir/ ' ,
68
+ ]);
68
69
$ controller ->response = new Response ();
69
70
70
71
$ event = new Event ('Controller.startup ' , $ controller );
@@ -87,7 +88,7 @@ public function testSettingCookie()
87
88
public static function httpMethodProvider ()
88
89
{
89
90
return [
90
- ['PATCH ' ], ['PUT ' ], ['POST ' ], ['DELETE ' ]
91
+ ['PATCH ' ], ['PUT ' ], ['POST ' ], ['DELETE ' ], [ ' PURGE ' ], [ ' INVALIDMETHOD ' ]
91
92
];
92
93
}
93
94
@@ -100,11 +101,14 @@ public static function httpMethodProvider()
100
101
*/
101
102
public function testValidTokenInHeader ($ method )
102
103
{
103
- $ _SERVER ['REQUEST_METHOD ' ] = $ method ;
104
- $ _SERVER ['HTTP_X_CSRF_TOKEN ' ] = 'testing123 ' ;
105
-
106
104
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
107
- $ controller ->request = new Request (['cookies ' => ['csrfToken ' => 'testing123 ' ]]);
105
+ $ controller ->request = new Request ([
106
+ 'environment ' => [
107
+ 'REQUEST_METHOD ' => $ method ,
108
+ 'HTTP_X_CSRF_TOKEN ' => 'testing123 ' ,
109
+ ],
110
+ 'cookies ' => ['csrfToken ' => 'testing123 ' ]
111
+ ]);
108
112
$ controller ->response = new Response ();
109
113
110
114
$ event = new Event ('Controller.startup ' , $ controller );
@@ -122,11 +126,12 @@ public function testValidTokenInHeader($method)
122
126
*/
123
127
public function testInvalidTokenInHeader ($ method )
124
128
{
125
- $ _SERVER ['REQUEST_METHOD ' ] = $ method ;
126
- $ _SERVER ['HTTP_X_CSRF_TOKEN ' ] = 'nope ' ;
127
-
128
129
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
129
130
$ controller ->request = new Request ([
131
+ 'environment ' => [
132
+ 'REQUEST_METHOD ' => $ method ,
133
+ 'HTTP_X_CSRF_TOKEN ' => 'nope ' ,
134
+ ],
130
135
'cookies ' => ['csrfToken ' => 'testing123 ' ]
131
136
]);
132
137
$ controller ->response = new Response ();
@@ -144,10 +149,11 @@ public function testInvalidTokenInHeader($method)
144
149
*/
145
150
public function testValidTokenRequestData ($ method )
146
151
{
147
- $ _SERVER ['REQUEST_METHOD ' ] = $ method ;
148
-
149
152
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
150
153
$ controller ->request = new Request ([
154
+ 'environment ' => [
155
+ 'REQUEST_METHOD ' => $ method ,
156
+ ],
151
157
'post ' => ['_csrfToken ' => 'testing123 ' ],
152
158
'cookies ' => ['csrfToken ' => 'testing123 ' ]
153
159
]);
@@ -168,10 +174,11 @@ public function testValidTokenRequestData($method)
168
174
*/
169
175
public function testInvalidTokenRequestData ($ method )
170
176
{
171
- $ _SERVER ['REQUEST_METHOD ' ] = $ method ;
172
-
173
177
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
174
178
$ controller ->request = new Request ([
179
+ 'environment ' => [
180
+ 'REQUEST_METHOD ' => $ method ,
181
+ ],
175
182
'post ' => ['_csrfToken ' => 'nope ' ],
176
183
'cookies ' => ['csrfToken ' => 'testing123 ' ]
177
184
]);
@@ -189,10 +196,11 @@ public function testInvalidTokenRequestData($method)
189
196
*/
190
197
public function testInvalidTokenRequestDataMissing ()
191
198
{
192
- $ _SERVER ['REQUEST_METHOD ' ] = 'POST ' ;
193
-
194
199
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
195
200
$ controller ->request = new Request ([
201
+ 'environment ' => [
202
+ 'REQUEST_METHOD ' => 'POST ' ,
203
+ ],
196
204
'post ' => [],
197
205
'cookies ' => ['csrfToken ' => 'testing123 ' ]
198
206
]);
@@ -211,10 +219,11 @@ public function testInvalidTokenRequestDataMissing()
211
219
*/
212
220
public function testInvalidTokenMissingCookie ($ method )
213
221
{
214
- $ _SERVER ['REQUEST_METHOD ' ] = $ method ;
215
-
216
222
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
217
223
$ controller ->request = new Request ([
224
+ 'environment ' => [
225
+ 'REQUEST_METHOD ' => $ method
226
+ ],
218
227
'post ' => ['_csrfToken ' => 'could-be-valid ' ],
219
228
'cookies ' => []
220
229
]);
@@ -232,10 +241,9 @@ public function testInvalidTokenMissingCookie($method)
232
241
*/
233
242
public function testCsrfValidationSkipsRequestAction ()
234
243
{
235
- $ _SERVER ['REQUEST_METHOD ' ] = 'POST ' ;
236
-
237
244
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
238
245
$ controller ->request = new Request ([
246
+ 'environment ' => ['REQUEST_METHOD ' => 'POST ' ],
239
247
'params ' => ['requested ' => 1 ],
240
248
'post ' => ['_csrfToken ' => 'nope ' ],
241
249
'cookies ' => ['csrfToken ' => 'testing123 ' ]
@@ -256,10 +264,11 @@ public function testCsrfValidationSkipsRequestAction()
256
264
*/
257
265
public function testConfigurationCookieCreate ()
258
266
{
259
- $ _SERVER ['REQUEST_METHOD ' ] = 'GET ' ;
260
-
261
267
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
262
- $ controller ->request = new Request (['webroot ' => '/dir/ ' ]);
268
+ $ controller ->request = new Request ([
269
+ 'environment ' => ['REQUEST_METHOD ' => 'GET ' ],
270
+ 'webroot ' => '/dir/ '
271
+ ]);
263
272
$ controller ->response = new Response ();
264
273
265
274
$ component = new CsrfComponent ($ this ->registry , [
@@ -290,10 +299,9 @@ public function testConfigurationCookieCreate()
290
299
*/
291
300
public function testConfigurationValidate ()
292
301
{
293
- $ _SERVER ['REQUEST_METHOD ' ] = 'POST ' ;
294
-
295
302
$ controller = $ this ->getMock ('Cake\Controller\Controller ' , ['redirect ' ]);
296
303
$ controller ->request = new Request ([
304
+ 'environment ' => ['REQUEST_METHOD ' => 'POST ' ],
297
305
'cookies ' => ['csrfToken ' => 'nope ' , 'token ' => 'yes ' ],
298
306
'post ' => ['_csrfToken ' => 'no match ' , 'token ' => 'yes ' ],
299
307
]);
0 commit comments