OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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:math'); |
| 6 |
5 #source("../../../runtime/bin/http_parser.dart"); | 7 #source("../../../runtime/bin/http_parser.dart"); |
6 | 8 |
7 class HttpParserTest { | 9 class HttpParserTest { |
8 static void runAllTests() { | 10 static void runAllTests() { |
9 testParseRequest(); | 11 testParseRequest(); |
10 testParseResponse(); | 12 testParseResponse(); |
11 testParseInvalidRequest(); | 13 testParseInvalidRequest(); |
12 testParseInvalidResponse(); | 14 testParseInvalidResponse(); |
13 } | 15 } |
14 | 16 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 bytesReceived = 0; | 76 bytesReceived = 0; |
75 } | 77 } |
76 | 78 |
77 void testWrite(List<int> requestData, [int chunkSize = -1]) { | 79 void testWrite(List<int> requestData, [int chunkSize = -1]) { |
78 if (chunkSize == -1) chunkSize = requestData.length; | 80 if (chunkSize == -1) chunkSize = requestData.length; |
79 reset(); | 81 reset(); |
80 int written = 0; | 82 int written = 0; |
81 int unparsed; | 83 int unparsed; |
82 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 84 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
83 int remaining = requestData.length - pos; | 85 int remaining = requestData.length - pos; |
84 int writeLength = Math.min(chunkSize, remaining); | 86 int writeLength = min(chunkSize, remaining); |
85 written += writeLength; | 87 written += writeLength; |
86 int parsed = httpParser.writeList(requestData, pos, writeLength); | 88 int parsed = httpParser.writeList(requestData, pos, writeLength); |
87 unparsed = writeLength - parsed; | 89 unparsed = writeLength - parsed; |
88 if (httpParser.upgrade) { | 90 if (httpParser.upgrade) { |
89 unparsed += requestData.length - written; | 91 unparsed += requestData.length - written; |
90 break; | 92 break; |
91 } else { | 93 } else { |
92 Expect.equals(0, unparsed); | 94 Expect.equals(0, unparsed); |
93 } | 95 } |
94 } | 96 } |
(...skipping 30 matching lines...) Expand all Loading... |
125 }; | 127 }; |
126 | 128 |
127 errorCalled = false; | 129 errorCalled = false; |
128 } | 130 } |
129 | 131 |
130 void testWrite(List<int> requestData, [int chunkSize = -1]) { | 132 void testWrite(List<int> requestData, [int chunkSize = -1]) { |
131 if (chunkSize == -1) chunkSize = requestData.length; | 133 if (chunkSize == -1) chunkSize = requestData.length; |
132 reset(); | 134 reset(); |
133 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 135 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
134 int remaining = requestData.length - pos; | 136 int remaining = requestData.length - pos; |
135 int writeLength = Math.min(chunkSize, remaining); | 137 int writeLength = min(chunkSize, remaining); |
136 httpParser.writeList(requestData, pos, writeLength); | 138 httpParser.writeList(requestData, pos, writeLength); |
137 } | 139 } |
138 Expect.isTrue(errorCalled); | 140 Expect.isTrue(errorCalled); |
139 } | 141 } |
140 | 142 |
141 // Test parsing the request three times delivering the data in | 143 // Test parsing the request three times delivering the data in |
142 // different chunks. | 144 // different chunks. |
143 List<int> requestData = request.charCodes(); | 145 List<int> requestData = request.charCodes(); |
144 testWrite(requestData); | 146 testWrite(requestData); |
145 testWrite(requestData, 10); | 147 testWrite(requestData, 10); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 bytesReceived = 0; | 220 bytesReceived = 0; |
219 } | 221 } |
220 | 222 |
221 void testWrite(List<int> requestData, [int chunkSize = -1]) { | 223 void testWrite(List<int> requestData, [int chunkSize = -1]) { |
222 if (chunkSize == -1) chunkSize = requestData.length; | 224 if (chunkSize == -1) chunkSize = requestData.length; |
223 reset(); | 225 reset(); |
224 int written = 0; | 226 int written = 0; |
225 int unparsed; | 227 int unparsed; |
226 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 228 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
227 int remaining = requestData.length - pos; | 229 int remaining = requestData.length - pos; |
228 int writeLength = Math.min(chunkSize, remaining); | 230 int writeLength = min(chunkSize, remaining); |
229 written += writeLength; | 231 written += writeLength; |
230 int parsed = httpParser.writeList(requestData, pos, writeLength); | 232 int parsed = httpParser.writeList(requestData, pos, writeLength); |
231 unparsed = writeLength - parsed; | 233 unparsed = writeLength - parsed; |
232 if (httpParser.upgrade) { | 234 if (httpParser.upgrade) { |
233 unparsed += requestData.length - written; | 235 unparsed += requestData.length - written; |
234 break; | 236 break; |
235 } else { | 237 } else { |
236 Expect.equals(0, unparsed); | 238 Expect.equals(0, unparsed); |
237 } | 239 } |
238 } | 240 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 httpParser.error = (e) => errorCalled = true; | 274 httpParser.error = (e) => errorCalled = true; |
273 | 275 |
274 errorCalled = false; | 276 errorCalled = false; |
275 } | 277 } |
276 | 278 |
277 void testWrite(List<int> requestData, [int chunkSize = -1]) { | 279 void testWrite(List<int> requestData, [int chunkSize = -1]) { |
278 if (chunkSize == -1) chunkSize = requestData.length; | 280 if (chunkSize == -1) chunkSize = requestData.length; |
279 reset(); | 281 reset(); |
280 for (int pos = 0; pos < requestData.length; pos += chunkSize) { | 282 for (int pos = 0; pos < requestData.length; pos += chunkSize) { |
281 int remaining = requestData.length - pos; | 283 int remaining = requestData.length - pos; |
282 int writeLength = Math.min(chunkSize, remaining); | 284 int writeLength = min(chunkSize, remaining); |
283 httpParser.writeList(requestData, pos, writeLength); | 285 httpParser.writeList(requestData, pos, writeLength); |
284 } | 286 } |
285 if (close) httpParser.connectionClosed(); | 287 if (close) httpParser.connectionClosed(); |
286 Expect.isTrue(errorCalled); | 288 Expect.isTrue(errorCalled); |
287 } | 289 } |
288 | 290 |
289 // Test parsing the request three times delivering the data in | 291 // Test parsing the request three times delivering the data in |
290 // different chunks. | 292 // different chunks. |
291 List<int> responseData = response.charCodes(); | 293 List<int> responseData = response.charCodes(); |
292 testWrite(responseData); | 294 testWrite(responseData); |
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
834 0123456789012345678901234567890\r | 836 0123456789012345678901234567890\r |
835 0\r\n\r\n"""; | 837 0\r\n\r\n"""; |
836 _testParseInvalidResponse(response); | 838 _testParseInvalidResponse(response); |
837 } | 839 } |
838 } | 840 } |
839 | 841 |
840 | 842 |
841 void main() { | 843 void main() { |
842 HttpParserTest.runAllTests(); | 844 HttpParserTest.runAllTests(); |
843 } | 845 } |
OLD | NEW |