Index: tests/standalone/io/http_parser_test.dart |
diff --git a/tests/standalone/io/http_parser_test.dart b/tests/standalone/io/http_parser_test.dart |
index c5da9917c6bad3f6d9c9f81043bbc583da6096b6..6302dc6638784bdd826e7157bc41f127ee5ef2fc 100644 |
--- a/tests/standalone/io/http_parser_test.dart |
+++ b/tests/standalone/io/http_parser_test.dart |
@@ -150,6 +150,42 @@ class HttpParserTest { |
testWrite(requestData, 1); |
} |
+ static void _testParseRequestLean(String request, |
+ String expectedMethod, |
+ String expectedUri, |
+ {int expectedTransferLength: 0, |
+ int expectedBytesReceived: 0, |
+ Map expectedHeaders: null, |
+ bool chunked: false, |
+ bool upgrade: false, |
+ int unparsedLength: 0, |
+ bool connectionClose: false, |
+ String expectedVersion: "1.1"}) { |
+ _testParseRequest(request, |
+ expectedMethod, |
+ expectedUri, |
+ expectedTransferLength: expectedTransferLength, |
+ expectedBytesReceived: expectedBytesReceived, |
+ expectedHeaders: expectedHeaders, |
+ chunked: chunked, |
+ upgrade: upgrade, |
+ unparsedLength: unparsedLength, |
+ connectionClose: connectionClose, |
+ expectedVersion: expectedVersion); |
+ // Same test but with only \n instead of \r\n terminating each header line. |
+ _testParseRequest(request.replaceAll('\r', ''), |
+ expectedMethod, |
+ expectedUri, |
+ expectedTransferLength: expectedTransferLength, |
+ expectedBytesReceived: expectedBytesReceived, |
+ expectedHeaders: expectedHeaders, |
+ chunked: chunked, |
+ upgrade: upgrade, |
+ unparsedLength: unparsedLength, |
+ connectionClose: connectionClose, |
+ expectedVersion: expectedVersion); |
+ } |
+ |
static void _testParseInvalidRequest(String request) { |
_HttpParser httpParser; |
bool errorCalled; |
@@ -356,33 +392,33 @@ class HttpParserTest { |
"SEARCH", |
// Methods with HTTP prefix. |
"H", "HT", "HTT", "HTTP", "HX", "HTX", "HTTX", "HTTPX"]; |
+ methods = ['GET']; |
methods.forEach((method) { |
request = "$method / HTTP/1.1\r\n\r\n"; |
- _testParseRequest(request, method, "/"); |
+ _testParseRequestLean(request, method, "/"); |
request = "$method /index.html HTTP/1.1\r\n\r\n"; |
- _testParseRequest(request, method, "/index.html"); |
+ _testParseRequestLean(request, method, "/index.html"); |
}); |
- |
request = "GET / HTTP/1.0\r\n\r\n"; |
- _testParseRequest(request, "GET", "/", |
- expectedVersion: "1.0", |
- connectionClose: true); |
+ _testParseRequestLean(request, "GET", "/", |
+ expectedVersion: "1.0", |
+ connectionClose: true); |
request = "GET / HTTP/1.0\r\nConnection: keep-alive\r\n\r\n"; |
- _testParseRequest(request, "GET", "/", expectedVersion: "1.0"); |
+ _testParseRequestLean(request, "GET", "/", expectedVersion: "1.0"); |
request = """ |
POST /test HTTP/1.1\r |
AAA: AAA\r |
\r |
"""; |
- _testParseRequest(request, "POST", "/test"); |
+ _testParseRequestLean(request, "POST", "/test"); |
request = """ |
POST /test HTTP/1.1\r |
\r |
"""; |
- _testParseRequest(request, "POST", "/test"); |
+ _testParseRequestLean(request, "POST", "/test"); |
request = """ |
POST /test HTTP/1.1\r |
@@ -393,7 +429,7 @@ X-Header-B: bbb\r |
headers = new Map(); |
headers["header-a"] = "AAA"; |
headers["x-header-b"] = "bbb"; |
- _testParseRequest(request, "POST", "/test", expectedHeaders: headers); |
+ _testParseRequestLean(request, "POST", "/test", expectedHeaders: headers); |
request = """ |
POST /test HTTP/1.1\r |
@@ -405,7 +441,7 @@ Empty-Header-2:\r |
headers = new Map(); |
headers["empty-header-1"] = ""; |
headers["empty-header-2"] = ""; |
- _testParseRequest(request, "POST", "/test", expectedHeaders: headers); |
+ _testParseRequestLean(request, "POST", "/test", expectedHeaders: headers); |
request = """ |
POST /test HTTP/1.1\r |
@@ -416,7 +452,7 @@ X-Header-B:\t \t bbb\r |
headers = new Map(); |
headers["header-a"] = "AAA"; |
headers["x-header-b"] = "bbb"; |
- _testParseRequest(request, "POST", "/test", expectedHeaders: headers); |
+ _testParseRequestLean(request, "POST", "/test", expectedHeaders: headers); |
request = """ |
POST /test HTTP/1.1\r |
@@ -431,18 +467,18 @@ X-Header-B: b\r |
headers = new Map(); |
headers["header-a"] = "AAA"; |
headers["x-header-b"] = "bbb"; |
- _testParseRequest(request, "POST", "/test", expectedHeaders: headers); |
+ _testParseRequestLean(request, "POST", "/test", expectedHeaders: headers); |
request = """ |
POST /test HTTP/1.1\r |
Content-Length: 10\r |
\r |
0123456789"""; |
- _testParseRequest(request, |
- "POST", |
- "/test", |
- expectedTransferLength: 10, |
- expectedBytesReceived: 10); |
+ _testParseRequestLean(request, |
+ "POST", |
+ "/test", |
+ expectedTransferLength: 10, |
+ expectedBytesReceived: 10); |
// Test connection close header. |
request = "GET /test HTTP/1.1\r\nConnection: close\r\n\r\n"; |