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

Side by Side Diff: pkg/scheduled_test/test/scheduled_server_test.dart

Issue 16123036: Clean up dart:io exceptions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
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 library scheduled_server_test; 5 library scheduled_server_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:http/http.dart' as http; 10 import 'package:http/http.dart' as http;
(...skipping 20 matching lines...) Expand all
31 }); 31 });
32 32
33 var server = new ScheduledServer(); 33 var server = new ScheduledServer();
34 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 34 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
35 completion(equals('Hello, test!'))); 35 completion(equals('Hello, test!')));
36 }); 36 });
37 37
38 test('test 2', () { 38 test('test 2', () {
39 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 39 expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
40 // TODO(nweiz): There can be three errors due to issue 9151. The 40 // TODO(nweiz): There can be three errors due to issue 9151. The
41 // HttpParserException is reported without a stack trace, and so when it's 41 // HttpException is reported without a stack trace, and so when it's
42 // wrapped twice it registers as a different exception each time (because 42 // wrapped twice it registers as a different exception each time (because
43 // it's given an ad-hoc stack trace). Always expect two exceptions when 43 // it's given an ad-hoc stack trace). Always expect two exceptions when
44 // issue 9151 is fixed. 44 // issue 9151 is fixed.
45 expect(errors.length, inInclusiveRange(2, 3)); 45 expect(errors.length, inInclusiveRange(2, 3));
46 expect(errors[0].error, equals("'scheduled server 0' received GET /hello " 46 expect(errors[0].error, equals("'scheduled server 0' received GET /hello "
47 "when no more requests were expected.")); 47 "when no more requests were expected."));
48 expect(errors[1].error, new isInstanceOf<HttpParserException>()); 48 expect(errors[1].error, new isInstanceOf<HttpException>());
49 if (errors.length > 2) { 49 if (errors.length > 2) {
50 expect(errors[2].error, new isInstanceOf<HttpParserException>()); 50 expect(errors[2].error, new isInstanceOf<HttpException>());
51 } 51 }
52 }); 52 });
53 }, passing: ['test 2']); 53 }, passing: ['test 2']);
54 54
55 expectTestsPass("a handler runs when it's hit", () { 55 expectTestsPass("a handler runs when it's hit", () {
56 test('test', () { 56 test('test', () {
57 var server = new ScheduledServer(); 57 var server = new ScheduledServer();
58 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 58 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
59 completion(equals('Hello, test!'))); 59 completion(equals('Hello, test!')));
60 60
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 schedule(() => null); 103 schedule(() => null);
104 104
105 server.handle('GET', '/hello', (request) { 105 server.handle('GET', '/hello', (request) {
106 request.response.write('Hello, test!'); 106 request.response.write('Hello, test!');
107 request.response.close(); 107 request.response.close();
108 }); 108 });
109 }); 109 });
110 110
111 test('test 2', () { 111 test('test 2', () {
112 // TODO(nweiz): There can be three errors due to issue 9151. The 112 // TODO(nweiz): There can be three errors due to issue 9151. The
113 // HttpParserException is reported without a stack trace, and so when it's 113 // HttpException is reported without a stack trace, and so when it's
114 // wrapped twice it registers as a different exception each time (because 114 // wrapped twice it registers as a different exception each time (because
115 // it's given an ad-hoc stack trace). Always expect two exceptions when 115 // it's given an ad-hoc stack trace). Always expect two exceptions when
116 // issue 9151 is fixed. 116 // issue 9151 is fixed.
117 expect(errors.length, inInclusiveRange(2, 3)); 117 expect(errors.length, inInclusiveRange(2, 3));
118 expect(errors[0].error, equals("'scheduled server 0' received GET /hello " 118 expect(errors[0].error, equals("'scheduled server 0' received GET /hello "
119 "earlier than expected.")); 119 "earlier than expected."));
120 expect(errors[1].error, new isInstanceOf<HttpParserException>()); 120 expect(errors[1].error, new isInstanceOf<HttpException>());
121 if (errors.length > 2) { 121 if (errors.length > 2) {
122 expect(errors[2].error, new isInstanceOf<HttpParserException>()); 122 expect(errors[2].error, new isInstanceOf<HttpException>());
123 } 123 }
124 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 124 expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
125 }); 125 });
126 }, passing: ['test 2']); 126 }, passing: ['test 2']);
127 127
128 expectTestsPass("a handler waits for the immediately prior task to complete " 128 expectTestsPass("a handler waits for the immediately prior task to complete "
129 "before checking if it's too early", () { 129 "before checking if it's too early", () {
130 test('test', () { 130 test('test', () {
131 var server = new ScheduledServer(); 131 var server = new ScheduledServer();
132 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 132 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
(...skipping 26 matching lines...) Expand all
159 completion(equals('Hello, test!'))); 159 completion(equals('Hello, test!')));
160 160
161 server.handle('GET', '/goodbye', (request) { 161 server.handle('GET', '/goodbye', (request) {
162 request.response.write('Goodbye, test!'); 162 request.response.write('Goodbye, test!');
163 request.response.close(); 163 request.response.close();
164 }); 164 });
165 }); 165 });
166 166
167 test('test 2', () { 167 test('test 2', () {
168 // TODO(nweiz): There can be three errors due to issue 9151. The 168 // TODO(nweiz): There can be three errors due to issue 9151. The
169 // HttpParserException is reported without a stack trace, and so when it's 169 // HttpException is reported without a stack trace, and so when it's
170 // wrapped twice it registers as a different exception each time (because 170 // wrapped twice it registers as a different exception each time (because
171 // it's given an ad-hoc stack trace). Always expect two exceptions when 171 // it's given an ad-hoc stack trace). Always expect two exceptions when
172 // issue 9151 is fixed. 172 // issue 9151 is fixed.
173 expect(errors.length, inInclusiveRange(2, 3)); 173 expect(errors.length, inInclusiveRange(2, 3));
174 expect(errors[0].error, equals("'scheduled server 0' expected GET " 174 expect(errors[0].error, equals("'scheduled server 0' expected GET "
175 "/goodbye, but got GET /hello.")); 175 "/goodbye, but got GET /hello."));
176 expect(errors[1].error, new isInstanceOf<HttpParserException>()); 176 expect(errors[1].error, new isInstanceOf<HttpException>());
177 if (errors.length > 2) { 177 if (errors.length > 2) {
178 expect(errors[2].error, new isInstanceOf<HttpParserException>()); 178 expect(errors[2].error, new isInstanceOf<HttpException>());
179 } 179 }
180 }); 180 });
181 }, passing: ['test 2']); 181 }, passing: ['test 2']);
182 182
183 expectTestsPass("a handler fails if the method is wrong", () { 183 expectTestsPass("a handler fails if the method is wrong", () {
184 var errors; 184 var errors;
185 test('test 1', () { 185 test('test 1', () {
186 currentSchedule.onException.schedule(() { 186 currentSchedule.onException.schedule(() {
187 errors = currentSchedule.errors; 187 errors = currentSchedule.errors;
188 }); 188 });
189 189
190 var server = new ScheduledServer(); 190 var server = new ScheduledServer();
191 expect(server.url.then((url) => http.head(url.resolve('/hello'))), 191 expect(server.url.then((url) => http.head(url.resolve('/hello'))),
192 completes); 192 completes);
193 193
194 server.handle('GET', '/hello', (request) { 194 server.handle('GET', '/hello', (request) {
195 request.response.write('Hello, test!'); 195 request.response.write('Hello, test!');
196 request.response.close(); 196 request.response.close();
197 }); 197 });
198 }); 198 });
199 199
200 test('test 2', () { 200 test('test 2', () {
201 // TODO(nweiz): There can be three errors due to issue 9151. The 201 // TODO(nweiz): There can be three errors due to issue 9151. The
202 // HttpParserException is reported without a stack trace, and so when it's 202 // HttpException is reported without a stack trace, and so when it's
203 // wrapped twice it registers as a different exception each time (because 203 // wrapped twice it registers as a different exception each time (because
204 // it's given an ad-hoc stack trace). Always expect two exceptions when 204 // it's given an ad-hoc stack trace). Always expect two exceptions when
205 // issue 9151 is fixed. 205 // issue 9151 is fixed.
206 expect(errors.length, inInclusiveRange(2, 3)); 206 expect(errors.length, inInclusiveRange(2, 3));
207 expect(errors[0].error, equals("'scheduled server 0' expected GET " 207 expect(errors[0].error, equals("'scheduled server 0' expected GET "
208 "/hello, but got HEAD /hello.")); 208 "/hello, but got HEAD /hello."));
209 expect(errors[1].error, new isInstanceOf<HttpParserException>()); 209 expect(errors[1].error, new isInstanceOf<HttpException>());
210 if (errors.length > 2) { 210 if (errors.length > 2) {
211 expect(errors[2].error, new isInstanceOf<HttpParserException>()); 211 expect(errors[2].error, new isInstanceOf<HttpException>());
212 } 212 }
213 }); 213 });
214 }, passing: ['test 2']); 214 }, passing: ['test 2']);
215 215
216 expectTestsPass("a handler times out waiting to be hit", () { 216 expectTestsPass("a handler times out waiting to be hit", () {
217 var clock = mock_clock.mock()..run(); 217 var clock = mock_clock.mock()..run();
218 var timeOfException; 218 var timeOfException;
219 var errors; 219 var errors;
220 test('test 1', () { 220 test('test 1', () {
221 currentSchedule.timeout = new Duration(milliseconds: 2); 221 currentSchedule.timeout = new Duration(milliseconds: 2);
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 }); 297 });
298 298
299 server.handle('GET', '/hello/2', (request) { 299 server.handle('GET', '/hello/2', (request) {
300 request.response.write('Hello, request 2!'); 300 request.response.write('Hello, request 2!');
301 request.response.close(); 301 request.response.close();
302 }); 302 });
303 }); 303 });
304 304
305 test('test 2', () { 305 test('test 2', () {
306 // TODO(nweiz): There can be three errors due to issue 9151. The 306 // TODO(nweiz): There can be three errors due to issue 9151. The
307 // HttpParserException is reported without a stack trace, and so when it's 307 // HttpException is reported without a stack trace, and so when it's
308 // wrapped twice it registers as a different exception each time (because 308 // wrapped twice it registers as a different exception each time (because
309 // it's given an ad-hoc stack trace). Always expect two exceptions when 309 // it's given an ad-hoc stack trace). Always expect two exceptions when
310 // issue 9151 is fixed. 310 // issue 9151 is fixed.
311 expect(errors.length, inInclusiveRange(2, 3)); 311 expect(errors.length, inInclusiveRange(2, 3));
312 expect(errors[0].error, equals("'scheduled server 0' received GET " 312 expect(errors[0].error, equals("'scheduled server 0' received GET "
313 "/hello/3 when no more requests were expected.")); 313 "/hello/3 when no more requests were expected."));
314 expect(errors[1].error, new isInstanceOf<HttpParserException>()); 314 expect(errors[1].error, new isInstanceOf<HttpException>());
315 if (errors.length > 2) { 315 if (errors.length > 2) {
316 expect(errors[2].error, new isInstanceOf<HttpParserException>()); 316 expect(errors[2].error, new isInstanceOf<HttpException>());
317 } 317 }
318 }); 318 });
319 }, passing: ['test 2']); 319 }, passing: ['test 2']);
320 320
321 expectTestsPass("an error in a handler doesn't cause a timeout", () { 321 expectTestsPass("an error in a handler doesn't cause a timeout", () {
322 var errors; 322 var errors;
323 test('test 1', () { 323 test('test 1', () {
324 currentSchedule.onException.schedule(() { 324 currentSchedule.onException.schedule(() {
325 errors = currentSchedule.errors; 325 errors = currentSchedule.errors;
326 }); 326 });
327 327
328 var server = new ScheduledServer(); 328 var server = new ScheduledServer();
329 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 329 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
330 completion(equals('Hello, test!'))); 330 completion(equals('Hello, test!')));
331 331
332 server.handle('GET', '/hello', (request) { 332 server.handle('GET', '/hello', (request) {
333 throw 'oh no'; 333 throw 'oh no';
334 }); 334 });
335 }); 335 });
336 336
337 test('test 2', () { 337 test('test 2', () {
338 // TODO(nweiz): There can be three errors due to issue 9151. The 338 // TODO(nweiz): There can be three errors due to issue 9151. The
339 // HttpParserException is reported without a stack trace, and so when it's 339 // HttpException is reported without a stack trace, and so when it's
340 // wrapped twice it registers as a different exception each time (because 340 // wrapped twice it registers as a different exception each time (because
341 // it's given an ad-hoc stack trace). Always expect two exceptions when 341 // it's given an ad-hoc stack trace). Always expect two exceptions when
342 // issue 9151 is fixed. 342 // issue 9151 is fixed.
343 expect(errors.length, inInclusiveRange(2, 3)); 343 expect(errors.length, inInclusiveRange(2, 3));
344 expect(errors[0].error, equals('oh no')); 344 expect(errors[0].error, equals('oh no'));
345 expect(errors[1].error, new isInstanceOf<HttpParserException>()); 345 expect(errors[1].error, new isInstanceOf<HttpException>());
346 if (errors.length > 2) { 346 if (errors.length > 2) {
347 expect(errors[2].error, new isInstanceOf<HttpParserException>()); 347 expect(errors[2].error, new isInstanceOf<HttpException>());
348 } 348 }
349 }); 349 });
350 }, passing: ['test 2']); 350 }, passing: ['test 2']);
351 } 351 }
OLDNEW
« no previous file with comments | « pkg/scheduled_test/lib/src/scheduled_server/safe_http_server.dart ('k') | runtime/bin/dartutils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698