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

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

Issue 23591061: Make package:scheduled_test throw ScheduledServerErrors, not strings. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix formatting and stray code. Created 7 years, 3 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 19 matching lines...) Expand all
30 errors = currentSchedule.errors; 30 errors = currentSchedule.errors;
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 expect(errors.length, 2);
41 // HttpException is reported without a stack trace, and so when it's 41 expect(errors[0].error, new isInstanceOf<ScheduledServerError>());
42 // wrapped twice it registers as a different exception each time (because 42 expect(errors[0].error.message, equals("'scheduled server 0' received "
43 // it's given an ad-hoc stack trace). Always expect two exceptions when 43 "GET /hello when no more requests were expected."));
44 // issue 9151 is fixed.
45 expect(errors.length, inInclusiveRange(2, 3));
46 expect(errors[0].error, equals("'scheduled server 0' received GET /hello "
47 "when no more requests were expected."));
48 expect(errors[1].error, new isInstanceOf<HttpException>()); 44 expect(errors[1].error, new isInstanceOf<HttpException>());
49 if (errors.length > 2) {
50 expect(errors[2].error, new isInstanceOf<HttpException>());
51 }
52 }); 45 });
53 }, passing: ['test 2']); 46 }, passing: ['test 2']);
54 47
55 expectTestsPass("a handler runs when it's hit", () { 48 expectTestsPass("a handler runs when it's hit", () {
56 test('test', () { 49 test('test', () {
57 var server = new ScheduledServer(); 50 var server = new ScheduledServer();
58 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 51 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
59 completion(equals('Hello, test!'))); 52 completion(equals('Hello, test!')));
60 53
61 server.handle('GET', '/hello', (request) { 54 server.handle('GET', '/hello', (request) {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 }); 101 });
109 }); 102 });
110 103
111 test('test 2', () { 104 test('test 2', () {
112 // TODO(nweiz): There can be three errors due to issue 9151. The 105 // TODO(nweiz): There can be three errors due to issue 9151. The
113 // HttpException is reported without a stack trace, and so when it's 106 // HttpException is reported without a stack trace, and so when it's
114 // wrapped twice it registers as a different exception each time (because 107 // 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 108 // it's given an ad-hoc stack trace). Always expect two exceptions when
116 // issue 9151 is fixed. 109 // issue 9151 is fixed.
117 expect(errors.length, inInclusiveRange(2, 3)); 110 expect(errors.length, inInclusiveRange(2, 3));
118 expect(errors[0].error, equals("'scheduled server 0' received GET /hello " 111 expect(errors[0].error, new isInstanceOf<ScheduledServerError>());
119 "earlier than expected.")); 112 expect(errors[0].error.message, equals(
113 "'scheduled server 0' received GET /hello earlier than expected."));
120 expect(errors[1].error, new isInstanceOf<HttpException>()); 114 expect(errors[1].error, new isInstanceOf<HttpException>());
121 if (errors.length > 2) { 115 if (errors.length > 2) {
122 expect(errors[2].error, new isInstanceOf<HttpException>()); 116 expect(errors[2].error, new isInstanceOf<HttpException>());
123 } 117 }
124 expect(errors, everyElement(new isInstanceOf<ScheduleError>())); 118 expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
125 }); 119 });
126 }, passing: ['test 2']); 120 }, passing: ['test 2']);
127 121
128 expectTestsPass("a handler waits for the immediately prior task to complete " 122 expectTestsPass("a handler waits for the immediately prior task to complete "
129 "before checking if it's too early", () { 123 "before checking if it's too early", () {
(...skipping 28 matching lines...) Expand all
158 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 152 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
159 completion(equals('Hello, test!'))); 153 completion(equals('Hello, test!')));
160 154
161 server.handle('GET', '/goodbye', (request) { 155 server.handle('GET', '/goodbye', (request) {
162 request.response.write('Goodbye, test!'); 156 request.response.write('Goodbye, test!');
163 request.response.close(); 157 request.response.close();
164 }); 158 });
165 }); 159 });
166 160
167 test('test 2', () { 161 test('test 2', () {
168 // TODO(nweiz): There can be three errors due to issue 9151. The 162 expect(errors.length, 2);
169 // HttpException is reported without a stack trace, and so when it's 163 expect(errors[0].error, new isInstanceOf<ScheduledServerError>());
170 // wrapped twice it registers as a different exception each time (because 164 expect(errors[0].error.message, equals(
171 // it's given an ad-hoc stack trace). Always expect two exceptions when 165 "'scheduled server 0' expected GET /goodbye, but got GET /hello."));
172 // issue 9151 is fixed.
173 expect(errors.length, inInclusiveRange(2, 3));
174 expect(errors[0].error, equals("'scheduled server 0' expected GET "
175 "/goodbye, but got GET /hello."));
176 expect(errors[1].error, new isInstanceOf<HttpException>()); 166 expect(errors[1].error, new isInstanceOf<HttpException>());
177 if (errors.length > 2) {
178 expect(errors[2].error, new isInstanceOf<HttpException>());
179 }
180 }); 167 });
181 }, passing: ['test 2']); 168 }, passing: ['test 2']);
182 169
183 expectTestsPass("a handler fails if the method is wrong", () { 170 expectTestsPass("a handler fails if the method is wrong", () {
184 var errors; 171 var errors;
185 test('test 1', () { 172 test('test 1', () {
186 currentSchedule.onException.schedule(() { 173 currentSchedule.onException.schedule(() {
187 errors = currentSchedule.errors; 174 errors = currentSchedule.errors;
188 }); 175 });
189 176
190 var server = new ScheduledServer(); 177 var server = new ScheduledServer();
191 expect(server.url.then((url) => http.head(url.resolve('/hello'))), 178 expect(server.url.then((url) => http.head(url.resolve('/hello'))),
192 completes); 179 completes);
193 180
194 server.handle('GET', '/hello', (request) { 181 server.handle('GET', '/hello', (request) {
195 request.response.write('Hello, test!'); 182 request.response.write('Hello, test!');
196 request.response.close(); 183 request.response.close();
197 }); 184 });
198 }); 185 });
199 186
200 test('test 2', () { 187 test('test 2', () {
201 // TODO(nweiz): There can be three errors due to issue 9151. The 188 expect(errors.length, 2);
202 // HttpException is reported without a stack trace, and so when it's 189 expect(errors[0].error, new isInstanceOf<ScheduledServerError>());
203 // wrapped twice it registers as a different exception each time (because 190 expect(errors[0].error.message, equals(
204 // it's given an ad-hoc stack trace). Always expect two exceptions when 191 "'scheduled server 0' expected GET /hello, but got HEAD /hello."));
205 // issue 9151 is fixed.
206 expect(errors.length, inInclusiveRange(2, 3));
207 expect(errors[0].error, equals("'scheduled server 0' expected GET "
208 "/hello, but got HEAD /hello."));
209 expect(errors[1].error, new isInstanceOf<HttpException>()); 192 expect(errors[1].error, new isInstanceOf<HttpException>());
210 if (errors.length > 2) {
211 expect(errors[2].error, new isInstanceOf<HttpException>());
212 }
213 }); 193 });
214 }, passing: ['test 2']); 194 }, passing: ['test 2']);
215 195
216 expectTestsPass("a handler times out waiting to be hit", () { 196 expectTestsPass("a handler times out waiting to be hit", () {
217 var clock = mock_clock.mock()..run(); 197 var clock = mock_clock.mock()..run();
218 var timeOfException; 198 var timeOfException;
219 var errors; 199 var errors;
220 test('test 1', () { 200 test('test 1', () {
221 currentSchedule.timeout = new Duration(milliseconds: 2); 201 currentSchedule.timeout = new Duration(milliseconds: 2);
222 currentSchedule.onException.schedule(() { 202 currentSchedule.onException.schedule(() {
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 request.response.close(); 276 request.response.close();
297 }); 277 });
298 278
299 server.handle('GET', '/hello/2', (request) { 279 server.handle('GET', '/hello/2', (request) {
300 request.response.write('Hello, request 2!'); 280 request.response.write('Hello, request 2!');
301 request.response.close(); 281 request.response.close();
302 }); 282 });
303 }); 283 });
304 284
305 test('test 2', () { 285 test('test 2', () {
306 // TODO(nweiz): There can be three errors due to issue 9151. The 286 expect(errors.length, 2);
307 // HttpException is reported without a stack trace, and so when it's 287 expect(errors[0].error, new isInstanceOf<ScheduledServerError>());
308 // wrapped twice it registers as a different exception each time (because 288 expect(errors[0].error.message, equals("'scheduled server 0' received "
309 // it's given an ad-hoc stack trace). Always expect two exceptions when 289 "GET /hello/3 when no more requests were expected."));
310 // issue 9151 is fixed.
311 expect(errors.length, inInclusiveRange(2, 3));
312 expect(errors[0].error, equals("'scheduled server 0' received GET "
313 "/hello/3 when no more requests were expected."));
314 expect(errors[1].error, new isInstanceOf<HttpException>()); 290 expect(errors[1].error, new isInstanceOf<HttpException>());
315 if (errors.length > 2) {
316 expect(errors[2].error, new isInstanceOf<HttpException>());
317 }
318 }); 291 });
319 }, passing: ['test 2']); 292 }, passing: ['test 2']);
320 293
321 expectTestsPass("an error in a handler doesn't cause a timeout", () { 294 expectTestsPass("an error in a handler doesn't cause a timeout", () {
322 var errors; 295 var errors;
323 test('test 1', () { 296 test('test 1', () {
324 currentSchedule.onException.schedule(() { 297 currentSchedule.onException.schedule(() {
325 errors = currentSchedule.errors; 298 errors = currentSchedule.errors;
326 }); 299 });
327 300
328 var server = new ScheduledServer(); 301 var server = new ScheduledServer();
329 expect(server.url.then((url) => http.read(url.resolve('/hello'))), 302 expect(server.url.then((url) => http.read(url.resolve('/hello'))),
330 completion(equals('Hello, test!'))); 303 completion(equals('Hello, test!')));
331 304
332 server.handle('GET', '/hello', (request) { 305 server.handle('GET', '/hello', (request) {
333 throw 'oh no'; 306 throw new TestFailure('oh no');
334 }); 307 });
335 }); 308 });
336 309
337 test('test 2', () { 310 test('test 2', () {
338 // TODO(nweiz): There can be three errors due to issue 9151. The 311 expect(errors.length, 2);
339 // HttpException is reported without a stack trace, and so when it's 312 expect(errors[0].error, new isInstanceOf<TestFailure>());
340 // wrapped twice it registers as a different exception each time (because 313 expect(errors[0].error.message, equals('oh no'));
341 // it's given an ad-hoc stack trace). Always expect two exceptions when
342 // issue 9151 is fixed.
343 expect(errors.length, inInclusiveRange(2, 3));
344 expect(errors[0].error, equals('oh no'));
345 expect(errors[1].error, new isInstanceOf<HttpException>()); 314 expect(errors[1].error, new isInstanceOf<HttpException>());
346 if (errors.length > 2) {
347 expect(errors[2].error, new isInstanceOf<HttpException>());
348 }
349 }); 315 });
350 }, passing: ['test 2']); 316 }, passing: ['test 2']);
351 } 317 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698