Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: tests/standalone/io/http_parser_test.dart

Issue 1078683002: Be more lean when parsing HTTP headers (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comments Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/io/http_parser.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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";
« no previous file with comments | « sdk/lib/io/http_parser.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698