| 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 "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
| 6 import 'dart:async'; | 6 import 'dart:async'; |
| 7 import 'dart:math'; | 7 import 'dart:math'; |
| 8 import 'dart:typed_data'; | 8 import 'dart:typed_data'; |
| 9 import 'dart:isolate'; | 9 import 'dart:isolate'; |
| 10 import 'dart:collection'; | 10 import 'dart:collection'; |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 reset(); | 117 reset(); |
| 118 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 118 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
| 119 int end = min(requestData.length, pos + chunkSize); | 119 int end = min(requestData.length, pos + chunkSize); |
| 120 controller.add(requestData.sublist(pos, end)); | 120 controller.add(requestData.sublist(pos, end)); |
| 121 } | 121 } |
| 122 controller.close(); | 122 controller.close(); |
| 123 } | 123 } |
| 124 | 124 |
| 125 // Test parsing the request three times delivering the data in | 125 // Test parsing the request three times delivering the data in |
| 126 // different chunks. | 126 // different chunks. |
| 127 List<int> requestData = request.codeUnits; | 127 List<int> requestData = new Uint8List.fromList(request.codeUnits); |
| 128 testWrite(requestData); | 128 testWrite(requestData); |
| 129 testWrite(requestData, 10); | 129 testWrite(requestData, 10); |
| 130 testWrite(requestData, 1); | 130 testWrite(requestData, 1); |
| 131 } | 131 } |
| 132 | 132 |
| 133 static void _testParseInvalidRequest(String request) { | 133 static void _testParseInvalidRequest(String request) { |
| 134 _HttpParser httpParser; | 134 _HttpParser httpParser; |
| 135 bool errorCalled; | 135 bool errorCalled; |
| 136 StreamController controller; | 136 StreamController controller; |
| 137 | 137 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 160 pos < requestData.length && !errorCalled; | 160 pos < requestData.length && !errorCalled; |
| 161 pos += chunkSize) { | 161 pos += chunkSize) { |
| 162 int end = min(requestData.length, pos + chunkSize); | 162 int end = min(requestData.length, pos + chunkSize); |
| 163 controller.add(requestData.sublist(pos, end)); | 163 controller.add(requestData.sublist(pos, end)); |
| 164 } | 164 } |
| 165 controller.close(); | 165 controller.close(); |
| 166 } | 166 } |
| 167 | 167 |
| 168 // Test parsing the request three times delivering the data in | 168 // Test parsing the request three times delivering the data in |
| 169 // different chunks. | 169 // different chunks. |
| 170 List<int> requestData = request.codeUnits; | 170 List<int> requestData = new Uint8List.fromList(request.codeUnits); |
| 171 testWrite(requestData); | 171 testWrite(requestData); |
| 172 testWrite(requestData, 10); | 172 testWrite(requestData, 10); |
| 173 testWrite(requestData, 1); | 173 testWrite(requestData, 1); |
| 174 } | 174 } |
| 175 | 175 |
| 176 static void _testParseResponse(String response, | 176 static void _testParseResponse(String response, |
| 177 int expectedStatusCode, | 177 int expectedStatusCode, |
| 178 String expectedReasonPhrase, | 178 String expectedReasonPhrase, |
| 179 {int expectedTransferLength: 0, | 179 {int expectedTransferLength: 0, |
| 180 int expectedBytesReceived: 0, | 180 int expectedBytesReceived: 0, |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 266 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
| 267 int end = min(requestData.length, pos + chunkSize); | 267 int end = min(requestData.length, pos + chunkSize); |
| 268 controller.add(requestData.sublist(pos, end)); | 268 controller.add(requestData.sublist(pos, end)); |
| 269 | 269 |
| 270 } | 270 } |
| 271 if (close) controller.close(); | 271 if (close) controller.close(); |
| 272 } | 272 } |
| 273 | 273 |
| 274 // Test parsing the request three times delivering the data in | 274 // Test parsing the request three times delivering the data in |
| 275 // different chunks. | 275 // different chunks. |
| 276 List<int> responseData = response.codeUnits; | 276 List<int> responseData = new Uint8List.fromList(response.codeUnits); |
| 277 testWrite(responseData); | 277 testWrite(responseData); |
| 278 testWrite(responseData, 10); | 278 testWrite(responseData, 10); |
| 279 testWrite(responseData, 1); | 279 testWrite(responseData, 1); |
| 280 } | 280 } |
| 281 | 281 |
| 282 static void _testParseInvalidResponse(String response, [bool close = false]) { | 282 static void _testParseInvalidResponse(String response, [bool close = false]) { |
| 283 void testWrite(List<int> requestData, [int chunkSize = -1]) { | 283 void testWrite(List<int> requestData, [int chunkSize = -1]) { |
| 284 _HttpParser httpParser = new _HttpParser.responseParser(); | 284 _HttpParser httpParser = new _HttpParser.responseParser(); |
| 285 StreamController controller = new StreamController(sync: true); | 285 StreamController controller = new StreamController(sync: true); |
| 286 bool errorCalled = false;; | 286 bool errorCalled = false;; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 311 pos < requestData.length && !errorCalled; | 311 pos < requestData.length && !errorCalled; |
| 312 pos += chunkSize) { | 312 pos += chunkSize) { |
| 313 int end = min(requestData.length, pos + chunkSize); | 313 int end = min(requestData.length, pos + chunkSize); |
| 314 controller.add(requestData.sublist(pos, end)); | 314 controller.add(requestData.sublist(pos, end)); |
| 315 } | 315 } |
| 316 controller.close(); | 316 controller.close(); |
| 317 } | 317 } |
| 318 | 318 |
| 319 // Test parsing the request three times delivering the data in | 319 // Test parsing the request three times delivering the data in |
| 320 // different chunks. | 320 // different chunks. |
| 321 List<int> responseData = response.codeUnits; | 321 List<int> responseData = new Uint8List.fromList(response.codeUnits); |
| 322 testWrite(responseData); | 322 testWrite(responseData); |
| 323 testWrite(responseData, 10); | 323 testWrite(responseData, 10); |
| 324 testWrite(responseData, 1); | 324 testWrite(responseData, 1); |
| 325 } | 325 } |
| 326 | 326 |
| 327 static void testParseRequest() { | 327 static void testParseRequest() { |
| 328 String request; | 328 String request; |
| 329 Map headers; | 329 Map headers; |
| 330 var methods = [ | 330 var methods = [ |
| 331 // RFC 2616 methods. | 331 // RFC 2616 methods. |
| (...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 872 0123456789012345678901234567890\r | 872 0123456789012345678901234567890\r |
| 873 0\r\n\r\n"""; | 873 0\r\n\r\n"""; |
| 874 _testParseInvalidResponse(response); | 874 _testParseInvalidResponse(response); |
| 875 } | 875 } |
| 876 } | 876 } |
| 877 | 877 |
| 878 | 878 |
| 879 void main() { | 879 void main() { |
| 880 HttpParserTest.runAllTests(); | 880 HttpParserTest.runAllTests(); |
| 881 } | 881 } |
| OLD | NEW |