OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library shelf.create_middleware_test; | 5 library shelf.create_middleware_test; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:shelf/shelf.dart'; | 9 import 'package:shelf/shelf.dart'; |
10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 }); | 196 }); |
197 | 197 |
198 var handler = const Pipeline().addMiddleware(middleware) | 198 var handler = const Pipeline().addMiddleware(middleware) |
199 .addHandler((request) { | 199 .addHandler((request) { |
200 throw 'bad handler'; | 200 throw 'bad handler'; |
201 }); | 201 }); |
202 | 202 |
203 expect(makeSimpleRequest(handler), throwsA('bad handler')); | 203 expect(makeSimpleRequest(handler), throwsA('bad handler')); |
204 }); | 204 }); |
205 | 205 |
| 206 test('error thrown by inner handler without a middleware errorHandler is ' |
| 207 'rethrown', () { |
| 208 var middleware = createMiddleware(); |
| 209 |
| 210 var handler = const Pipeline().addMiddleware(middleware) |
| 211 .addHandler((request) { |
| 212 throw 'bad handler'; |
| 213 }); |
| 214 |
| 215 expect(makeSimpleRequest(handler), throwsA('bad handler')); |
| 216 }); |
| 217 |
206 test("doesn't handle HijackException", () { | 218 test("doesn't handle HijackException", () { |
207 var middleware = createMiddleware(errorHandler: (error, stack) { | 219 var middleware = createMiddleware(errorHandler: (error, stack) { |
208 expect(false, "error handler shouldn't be called"); | 220 fail("error handler shouldn't be called"); |
209 }); | 221 }); |
210 | 222 |
211 var handler = const Pipeline().addMiddleware(middleware) | 223 var handler = const Pipeline().addMiddleware(middleware) |
212 .addHandler((request) => throw const HijackException()); | 224 .addHandler((request) => throw const HijackException()); |
213 | 225 |
214 expect(makeSimpleRequest(handler), | 226 expect(makeSimpleRequest(handler), |
215 throwsA(new isInstanceOf<HijackException>())); | 227 throwsA(new isInstanceOf<HijackException>())); |
216 }); | 228 }); |
217 }); | 229 }); |
218 } | 230 } |
219 | 231 |
220 _failHandler(Request request) => fail('should never get here'); | 232 _failHandler(Request request) => fail('should never get here'); |
221 | 233 |
222 final Response _middlewareResponse = | 234 final Response _middlewareResponse = |
223 new Response.ok('middleware content', headers: {'from': 'middleware'}); | 235 new Response.ok('middleware content', headers: {'from': 'middleware'}); |
OLD | NEW |