Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Side by Side Diff: test/server_test.dart

Issue 14267030: Added support for http methods when mounting routes. (Closed) Base URL: git@github.com:dart-lang/route.git@master
Patch Set: responding to review comments Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/server.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 5
6 import 'package:unittest/unittest.dart'; 6 import 'package:unittest/unittest.dart';
7 import 'package:unittest/mock.dart'; 7 import 'package:unittest/mock.dart';
8 import 'package:route/server.dart'; 8 import 'package:route/server.dart';
9 import 'dart:async'; 9 import 'dart:async';
10 import 'dart:collection'; 10 import 'dart:collection';
11 import 'dart:io'; 11 import 'dart:io';
12 import 'dart:uri'; 12 import 'dart:uri';
13 13
14 class HttpRequestMock extends Mock implements HttpRequest { 14 class HttpRequestMock extends Mock implements HttpRequest {
15 Uri uri; 15 Uri uri;
16 String method;
16 HttpResponseMock response = new HttpResponseMock(); 17 HttpResponseMock response = new HttpResponseMock();
17 HttpRequestMock(this.uri); 18 HttpRequestMock(this.uri, {this.method});
18 } 19 }
19 20
20 class HttpResponseMock extends Mock implements HttpResponse { 21 class HttpResponseMock extends Mock implements HttpResponse {
21 int statusCode; 22 int statusCode;
22 var _onClose; 23 var _onClose;
23 void close() { 24 void close() {
24 if (_onClose != null) { 25 if (_onClose != null) {
25 _onClose(); 26 _onClose();
26 } 27 }
27 } 28 }
28 } 29 }
29 30
30 main() { 31 main() {
32 test ('http method can be used to distinguish route', (){
33 var controller = new StreamController<HttpRequest>();
34 var router = new Router(controller.stream);
35 var testReq = new HttpRequestMock(new Uri('/foo'),method:'GET');
36 router.serve('/foo', method:'GET').listen(expectAsync1((req) {
37 expect(req, testReq);
38 }));
39 router.serve('/foo', method:'POST').listen(expectAsync1((_) {}, count:0));
40 controller.add(testReq);
41 });
42
43 test ('if no http method provided, all methods match', (){
44 var controller = new StreamController<HttpRequest>();
45 var router = new Router(controller.stream);
46 var testGetReq = new HttpRequestMock(new Uri('/foo'), method:'GET');
47 var testPostReq = new HttpRequestMock(new Uri('/foo'), method:'POST');
48 var requests = <HttpRequest>[];
49 router.serve('/foo').listen(expectAsync1((request) {
50 requests.add(request);
51 if (requests.length == 2){
52 expect(requests, [testGetReq, testPostReq]);
53 }
54 }, count: 2));
55 controller.add(testGetReq);
56 controller.add(testPostReq);
57
58 });
59
31 test('serve 1', () { 60 test('serve 1', () {
32 var controller = new StreamController<HttpRequest>(); 61 var controller = new StreamController<HttpRequest>();
33 var router = new Router(controller.stream); 62 var router = new Router(controller.stream);
34 var testReq = new HttpRequestMock(new Uri('/foo')); 63 var testReq = new HttpRequestMock(new Uri('/foo'));
35 router.serve('/foo').listen(expectAsync1((req) { 64 router.serve('/foo').listen(expectAsync1((req) {
36 expect(req, testReq); 65 expect(req, testReq);
37 })); 66 }));
38 router.serve('/bar').listen(expectAsync1((req) {}, count: 0)); 67 router.serve('/bar').listen(expectAsync1((req) {}, count: 0));
39 controller.add(testReq); 68 controller.add(testReq);
40 }); 69 });
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 var testReq = new HttpRequestMock(new Uri('/foo')); 124 var testReq = new HttpRequestMock(new Uri('/foo'));
96 router.filter('/foo', expectAsync1((req) { 125 router.filter('/foo', expectAsync1((req) {
97 expect(req, testReq); 126 expect(req, testReq);
98 return new Future.value(false); 127 return new Future.value(false);
99 })); 128 }));
100 router.serve('/foo').listen(expectAsync1((req) {}, count: 0)); 129 router.serve('/foo').listen(expectAsync1((req) {}, count: 0));
101 controller.add(testReq); 130 controller.add(testReq);
102 }); 131 });
103 132
104 } 133 }
OLDNEW
« no previous file with comments | « lib/server.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698