OLD | NEW |
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 // VMOptions= | 5 // VMOptions= |
6 // VMOptions=--short_socket_read | 6 // VMOptions=--short_socket_read |
7 // VMOptions=--short_socket_write | 7 // VMOptions=--short_socket_write |
8 // VMOptions=--short_socket_read --short_socket_write | 8 // VMOptions=--short_socket_read --short_socket_write |
| 9 // OtherResources=http_server_response_test.dart |
9 | 10 |
10 import "package:expect/expect.dart"; | 11 import "package:expect/expect.dart"; |
11 import "dart:async"; | 12 import "dart:async"; |
12 import "dart:io"; | 13 import "dart:io"; |
13 import "dart:typed_data"; | 14 import "dart:typed_data"; |
14 | 15 |
| 16 // Platform.script may refer to a AOT or JIT snapshot, which are significantly |
| 17 // larger. |
| 18 File scriptSource = new File( |
| 19 Platform.script.resolve("http_server_response_test.dart").toFilePath()); |
| 20 |
15 void testServerRequest(void handler(server, request), | 21 void testServerRequest(void handler(server, request), |
16 {int bytes, | 22 {int bytes, |
17 bool closeClient}) { | 23 bool closeClient}) { |
18 HttpServer.bind("127.0.0.1", 0).then((server) { | 24 HttpServer.bind("127.0.0.1", 0).then((server) { |
19 server.defaultResponseHeaders.clear(); | 25 server.defaultResponseHeaders.clear(); |
20 server.listen((request) { | 26 server.listen((request) { |
21 handler(server, request); | 27 handler(server, request); |
22 }); | 28 }); |
23 | 29 |
24 var client = new HttpClient(); | 30 var client = new HttpClient(); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 request.response.done.then((_) { | 80 request.response.done.then((_) { |
75 server.close(); | 81 server.close(); |
76 }); | 82 }); |
77 request.response.contentLength = 0; | 83 request.response.contentLength = 0; |
78 request.response.close(); | 84 request.response.close(); |
79 }); | 85 }); |
80 } | 86 } |
81 | 87 |
82 | 88 |
83 void testResponseAddStream() { | 89 void testResponseAddStream() { |
84 File file = new File(Platform.script.toFilePath()); | 90 File file = scriptSource; |
85 int bytes = file.lengthSync(); | 91 int bytes = file.lengthSync(); |
86 | 92 |
87 testServerRequest((server, request) { | 93 testServerRequest((server, request) { |
88 request.response.addStream(file.openRead()) | 94 request.response.addStream(file.openRead()) |
89 .then((response) { | 95 .then((response) { |
90 response.close(); | 96 response.close(); |
91 response.done.then((_) => server.close()); | 97 response.done.then((_) => server.close()); |
92 }); | 98 }); |
93 }, bytes: bytes); | 99 }, bytes: bytes); |
94 | 100 |
(...skipping 28 matching lines...) Expand all Loading... |
123 testServerRequest((server, request) { | 129 testServerRequest((server, request) { |
124 new File("__nonexistent_file_").openRead().pipe(request.response) | 130 new File("__nonexistent_file_").openRead().pipe(request.response) |
125 .catchError((e) { | 131 .catchError((e) { |
126 server.close(); | 132 server.close(); |
127 }); | 133 }); |
128 }); | 134 }); |
129 } | 135 } |
130 | 136 |
131 | 137 |
132 void testResponseAddStreamClosed() { | 138 void testResponseAddStreamClosed() { |
133 File file = new File(Platform.script.toFilePath()); | 139 File file = scriptSource; |
134 testServerRequest((server, request) { | 140 testServerRequest((server, request) { |
135 request.response.addStream(file.openRead()) | 141 request.response.addStream(file.openRead()) |
136 .then((response) { | 142 .then((response) { |
137 response.close(); | 143 response.close(); |
138 response.done.then((_) => server.close()); | 144 response.done.then((_) => server.close()); |
139 }); | 145 }); |
140 }, closeClient: true); | 146 }, closeClient: true); |
141 | 147 |
142 testServerRequest((server, request) { | 148 testServerRequest((server, request) { |
143 int count = 0; | 149 int count = 0; |
144 write() { | 150 write() { |
145 request.response.addStream(file.openRead()) | 151 request.response.addStream(file.openRead()) |
146 .then((response) { | 152 .then((response) { |
147 request.response.write("sync data"); | 153 request.response.write("sync data"); |
148 count++; | 154 count++; |
149 if (count < 1000) { | 155 if (count < 1000) { |
150 write(); | 156 write(); |
151 } else { | 157 } else { |
152 response.close(); | 158 response.close(); |
153 response.done.then((_) => server.close()); | 159 response.done.then((_) => server.close()); |
154 } | 160 } |
155 }); | 161 }); |
156 } | 162 } |
157 write(); | 163 write(); |
158 }, closeClient: true); | 164 }, closeClient: true); |
159 } | 165 } |
160 | 166 |
161 | 167 |
162 void testResponseAddClosed() { | 168 void testResponseAddClosed() { |
163 File file = new File(Platform.script.toFilePath()); | 169 File file = scriptSource; |
164 testServerRequest((server, request) { | 170 testServerRequest((server, request) { |
165 request.response.add(file.readAsBytesSync()); | 171 request.response.add(file.readAsBytesSync()); |
166 request.response.close(); | 172 request.response.close(); |
167 request.response.done.then((_) => server.close()); | 173 request.response.done.then((_) => server.close()); |
168 }, closeClient: true); | 174 }, closeClient: true); |
169 | 175 |
170 testServerRequest((server, request) { | 176 testServerRequest((server, request) { |
171 for (int i = 0; i < 1000; i++) { | 177 for (int i = 0; i < 1000; i++) { |
172 request.response.add(file.readAsBytesSync()); | 178 request.response.add(file.readAsBytesSync()); |
173 } | 179 } |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 testResponseDone(); | 311 testResponseDone(); |
306 testResponseAddStream(); | 312 testResponseAddStream(); |
307 testResponseAddStreamClosed(); | 313 testResponseAddStreamClosed(); |
308 testResponseAddClosed(); | 314 testResponseAddClosed(); |
309 testBadResponseAdd(); | 315 testBadResponseAdd(); |
310 testBadResponseClose(); | 316 testBadResponseClose(); |
311 testIgnoreRequestData(); | 317 testIgnoreRequestData(); |
312 testBadHeaders(); | 318 testBadHeaders(); |
313 testWriteCharCode(); | 319 testWriteCharCode(); |
314 } | 320 } |
OLD | NEW |