@@ -291,10 +291,79 @@ void main() {
291
291
expect (response.body, equals ('hello' ));
292
292
});
293
293
294
+ test ('request exposes captured params (empty)' , () async {
295
+ final context = _MockRequestContext ();
296
+ final app = Router ()
297
+ ..get ('/hello' , (RequestContext context) {
298
+ expect (context.request.params, isEmpty);
299
+ return Response (body: 'hello world' );
300
+ });
301
+
302
+ server.mount ((request) async {
303
+ when (() => context.request).thenReturn (
304
+ Request (request.method, request.requestedUri),
305
+ );
306
+ final response = await app (context);
307
+ final body = await response.body ();
308
+ return shelf.Response (response.statusCode, body: body);
309
+ });
310
+
311
+ final response = await http.get (Uri .parse ('${server .url }/hello' ));
312
+ expect (response.statusCode, equals (HttpStatus .ok));
313
+ expect (response.body, equals ('hello world' ));
314
+ });
315
+
316
+ test ('request exposes captured params (single)' , () async {
317
+ final context = _MockRequestContext ();
318
+ final app = Router ()
319
+ ..get ('/users/<id>/greet' , (RequestContext context, String id) {
320
+ expect (context.request.params['id' ], equals (id));
321
+ return Response (body: 'hello $id ' );
322
+ });
323
+
324
+ server.mount ((request) async {
325
+ when (() => context.request).thenReturn (
326
+ Request (request.method, request.requestedUri),
327
+ );
328
+ final response = await app (context);
329
+ final body = await response.body ();
330
+ return shelf.Response (response.statusCode, body: body);
331
+ });
332
+
333
+ final response = await http.get (Uri .parse ('${server .url }/users/42/greet' ));
334
+ expect (response.statusCode, equals (HttpStatus .ok));
335
+ expect (response.body, equals ('hello 42' ));
336
+ });
337
+
338
+ test ('request exposes captured params (multiple)' , () async {
339
+ final context = _MockRequestContext ();
340
+ final app = Router ()
341
+ ..get ('/users/<id>/greet/<name>' ,
342
+ (RequestContext context, String id, String name) {
343
+ expect (context.request.params['id' ], equals (id));
344
+ expect (context.request.params['name' ], equals (name));
345
+ return Response (body: 'hello $name ($id )' );
346
+ });
347
+
348
+ server.mount ((request) async {
349
+ when (() => context.request).thenReturn (
350
+ Request (request.method, request.requestedUri),
351
+ );
352
+ final response = await app (context);
353
+ final body = await response.body ();
354
+ return shelf.Response (response.statusCode, body: body);
355
+ });
356
+
357
+ final response =
358
+ await http.get (Uri .parse ('${server .url }/users/42/greet/felangel' ));
359
+ expect (response.statusCode, equals (HttpStatus .ok));
360
+ expect (response.body, equals ('hello felangel (42)' ));
361
+ });
362
+
294
363
test ('mount(Router)' , () async {
295
364
final context = _MockRequestContext ();
296
365
final api = Router ()
297
- ..all ('/user/<user>/info' , (RequestContext request , String user) {
366
+ ..all ('/user/<user>/info' , (RequestContext context , String user) {
298
367
return Response (body: 'Hello $user ' );
299
368
});
300
369
0 commit comments