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

Side by Side Diff: tests/standalone/io/http_server_response_test.dart

Issue 12328037: Add missing files from previous commit (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4 //
5 // VMOptions=
6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write
9
10 import "dart:io";
11 import "dart:scalarlist";
12
13 void testServerRequest(void handler(server, request)) {
14 HttpServer.bind().then((server) {
15 server.listen((request) {
16 handler(server, request);
17 });
18
19 var client = new HttpClient();
20 // We only close the client on either
21 // - Bad response headers
22 // - Response done (with optional errors in between).
23 client.get("127.0.0.1", server.port, "/")
24 .then((request) => request.close())
25 .then((response) {
26 response.listen((_) {}, onDone: () {
27 client.close();
28 }, onError: (error) {
29 Expect.isTrue(error.error is HttpParserException);
30 });
31 })
32 .catchError((error) {
33 client.close();
34 }, test: (e) => e is HttpParserException);
35 });
36 }
37
38 void testResponseDone() {
39 testServerRequest((server, request) {
40 request.response.close();
41 request.response.done.then((response) {
42 Expect.equals(request.response, response);
43 server.close();
44 });
45 });
46 }
47
48 void testBadResponseAdd() {
49 testServerRequest((server, request) {
50 request.response.contentLength = 0;
51 request.response.add([0]);
52 request.response.done.catchError((error) {
53 server.close();
54 }, test: (e) => e is HttpException);
55 });
56
57 testServerRequest((server, request) {
58 request.response.contentLength = 5;
59 request.response.add([0, 0, 0]);
60 request.response.add([0, 0, 0]);
61 request.response.done.catchError((error) {
62 server.close();
63 }, test: (e) => e is HttpException);
64 });
65
66 testServerRequest((server, request) {
67 request.response.contentLength = 0;
68 request.response.add(new Uint8List(64 * 1024));
69 request.response.add(new Uint8List(64 * 1024));
70 request.response.add(new Uint8List(64 * 1024));
71 request.response.done.catchError((error) {
72 server.close();
73 }, test: (e) => e is HttpException);
74 });
75 }
76
77 void testBadResponseClose() {
78 testServerRequest((server, request) {
79 request.response.contentLength = 5;
80 request.response.close();
81 request.response.done.catchError((error) {
82 server.close();
83 }, test: (e) => e is HttpException);
84 });
85
86 testServerRequest((server, request) {
87 request.response.contentLength = 5;
88 request.response.add([0]);
89 request.response.close();
90 request.response.done.catchError((error) {
91 server.close();
92 }, test: (e) => e is HttpException);
93 });
94 }
95
96 void main() {
97 testResponseDone();
98 testBadResponseAdd();
99 testBadResponseClose();
100 }
OLDNEW
« no previous file with comments | « tests/standalone/io/http_detach_socket_test.dart ('k') | tests/standalone/io/https_client_socket_reuse_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698