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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:math'; | 6 import 'dart:math'; |
7 import 'dart:scalarlist'; | 7 import 'dart:scalarlist'; |
8 import 'dart:isolate'; | 8 import 'dart:isolate'; |
9 import 'dart:uri'; | 9 import 'dart:uri'; |
10 | 10 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 118 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
119 int remaining = requestData.length - pos; | 119 int remaining = requestData.length - pos; |
120 int writeLength = min(chunkSize, remaining); | 120 int writeLength = min(chunkSize, remaining); |
121 controller.add(requestData.getRange(pos, writeLength)); | 121 controller.add(requestData.getRange(pos, writeLength)); |
122 } | 122 } |
123 controller.close(); | 123 controller.close(); |
124 } | 124 } |
125 | 125 |
126 // Test parsing the request three times delivering the data in | 126 // Test parsing the request three times delivering the data in |
127 // different chunks. | 127 // different chunks. |
128 List<int> requestData = request.charCodes; | 128 List<int> requestData = request.codeUnits; |
129 testWrite(requestData); | 129 testWrite(requestData); |
130 testWrite(requestData, 10); | 130 testWrite(requestData, 10); |
131 testWrite(requestData, 1); | 131 testWrite(requestData, 1); |
132 } | 132 } |
133 | 133 |
134 static void _testParseInvalidRequest(String request) { | 134 static void _testParseInvalidRequest(String request) { |
135 _HttpParser httpParser; | 135 _HttpParser httpParser; |
136 bool errorCalled; | 136 bool errorCalled; |
137 StreamController controller; | 137 StreamController controller; |
138 | 138 |
(...skipping 23 matching lines...) Expand all Loading... |
162 pos += chunkSize) { | 162 pos += chunkSize) { |
163 int remaining = requestData.length - pos; | 163 int remaining = requestData.length - pos; |
164 int writeLength = min(chunkSize, remaining); | 164 int writeLength = min(chunkSize, remaining); |
165 controller.add(requestData.getRange(pos, writeLength)); | 165 controller.add(requestData.getRange(pos, writeLength)); |
166 } | 166 } |
167 controller.close(); | 167 controller.close(); |
168 } | 168 } |
169 | 169 |
170 // Test parsing the request three times delivering the data in | 170 // Test parsing the request three times delivering the data in |
171 // different chunks. | 171 // different chunks. |
172 List<int> requestData = request.charCodes; | 172 List<int> requestData = request.codeUnits; |
173 testWrite(requestData); | 173 testWrite(requestData); |
174 testWrite(requestData, 10); | 174 testWrite(requestData, 10); |
175 testWrite(requestData, 1); | 175 testWrite(requestData, 1); |
176 } | 176 } |
177 | 177 |
178 static void _testParseResponse(String response, | 178 static void _testParseResponse(String response, |
179 int expectedStatusCode, | 179 int expectedStatusCode, |
180 String expectedReasonPhrase, | 180 String expectedReasonPhrase, |
181 {int expectedTransferLength: 0, | 181 {int expectedTransferLength: 0, |
182 int expectedBytesReceived: 0, | 182 int expectedBytesReceived: 0, |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 int remaining = requestData.length - pos; | 263 int remaining = requestData.length - pos; |
264 int writeLength = min(chunkSize, remaining); | 264 int writeLength = min(chunkSize, remaining); |
265 controller.add(requestData.getRange(pos, writeLength)); | 265 controller.add(requestData.getRange(pos, writeLength)); |
266 | 266 |
267 } | 267 } |
268 if (close) controller.close(); | 268 if (close) controller.close(); |
269 } | 269 } |
270 | 270 |
271 // Test parsing the request three times delivering the data in | 271 // Test parsing the request three times delivering the data in |
272 // different chunks. | 272 // different chunks. |
273 List<int> responseData = response.charCodes; | 273 List<int> responseData = response.codeUnits; |
274 testWrite(responseData); | 274 testWrite(responseData); |
275 testWrite(responseData, 10); | 275 testWrite(responseData, 10); |
276 testWrite(responseData, 1); | 276 testWrite(responseData, 1); |
277 } | 277 } |
278 | 278 |
279 static void _testParseInvalidResponse(String response, [bool close = false]) { | 279 static void _testParseInvalidResponse(String response, [bool close = false]) { |
280 _HttpParser httpParser; | 280 _HttpParser httpParser; |
281 bool errorCalled; | 281 bool errorCalled; |
282 StreamController controller; | 282 StreamController controller; |
283 | 283 |
(...skipping 29 matching lines...) Expand all Loading... |
313 pos += chunkSize) { | 313 pos += chunkSize) { |
314 int remaining = requestData.length - pos; | 314 int remaining = requestData.length - pos; |
315 int writeLength = min(chunkSize, remaining); | 315 int writeLength = min(chunkSize, remaining); |
316 controller.add(requestData.getRange(pos, writeLength)); | 316 controller.add(requestData.getRange(pos, writeLength)); |
317 } | 317 } |
318 controller.close(); | 318 controller.close(); |
319 } | 319 } |
320 | 320 |
321 // Test parsing the request three times delivering the data in | 321 // Test parsing the request three times delivering the data in |
322 // different chunks. | 322 // different chunks. |
323 List<int> responseData = response.charCodes; | 323 List<int> responseData = response.codeUnits; |
324 testWrite(responseData); | 324 testWrite(responseData); |
325 testWrite(responseData, 10); | 325 testWrite(responseData, 10); |
326 testWrite(responseData, 1); | 326 testWrite(responseData, 1); |
327 } | 327 } |
328 | 328 |
329 static void testParseRequest() { | 329 static void testParseRequest() { |
330 String request; | 330 String request; |
331 Map headers; | 331 Map headers; |
332 var methods = [ | 332 var methods = [ |
333 // RFC 2616 methods. | 333 // RFC 2616 methods. |
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
874 0123456789012345678901234567890\r | 874 0123456789012345678901234567890\r |
875 0\r\n\r\n"""; | 875 0\r\n\r\n"""; |
876 _testParseInvalidResponse(response); | 876 _testParseInvalidResponse(response); |
877 } | 877 } |
878 } | 878 } |
879 | 879 |
880 | 880 |
881 void main() { | 881 void main() { |
882 HttpParserTest.runAllTests(); | 882 HttpParserTest.runAllTests(); |
883 } | 883 } |
OLD | NEW |