summaryrefslogtreecommitdiff
path: root/test/simple/test-http-parser.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/simple/test-http-parser.js')
-rw-r--r--test/simple/test-http-parser.js250
1 files changed, 120 insertions, 130 deletions
diff --git a/test/simple/test-http-parser.js b/test/simple/test-http-parser.js
index e93b846c70..e8c8095131 100644
--- a/test/simple/test-http-parser.js
+++ b/test/simple/test-http-parser.js
@@ -24,7 +24,7 @@ var assert = require('assert');
var HTTPParser = process.binding('http_parser').HTTPParser;
-var CRLF = "\r\n";
+var CRLF = '\r\n';
var REQUEST = HTTPParser.REQUEST;
var RESPONSE = HTTPParser.RESPONSE;
@@ -87,9 +87,8 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'GET /hello HTTP/1.1' + CRLF +
- CRLF
- );
+ 'GET /hello HTTP/1.1' + CRLF +
+ CRLF);
var parser = newParser(REQUEST);
@@ -124,12 +123,11 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'HTTP/1.1 200 OK' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Content-Length: 4' + CRLF +
- CRLF +
- 'pong'
- );
+ 'HTTP/1.1 200 OK' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Content-Length: 4' + CRLF +
+ CRLF +
+ 'pong');
var parser = newParser(RESPONSE);
@@ -154,9 +152,8 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'HTTP/1.0 200 Connection established' + CRLF +
- CRLF
- );
+ 'HTTP/1.0 200 Connection established' + CRLF +
+ CRLF);
var parser = newParser(RESPONSE);
@@ -177,23 +174,22 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'POST /it HTTP/1.1' + CRLF +
- 'Transfer-Encoding: chunked' + CRLF +
- CRLF +
- '4' + CRLF +
- 'ping' + CRLF +
- '0' + CRLF +
- 'Vary: *' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- CRLF
- );
+ 'POST /it HTTP/1.1' + CRLF +
+ 'Transfer-Encoding: chunked' + CRLF +
+ CRLF +
+ '4' + CRLF +
+ 'ping' + CRLF +
+ '0' + CRLF +
+ 'Vary: *' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ CRLF);
var seen_body = false;
function onHeaders(headers, url) {
assert.ok(seen_body); // trailers should come after the body
assert.deepEqual(headers,
- ['Vary', '*', 'Content-Type', 'text/plain']);
+ ['Vary', '*', 'Content-Type', 'text/plain']);
}
var parser = newParser(REQUEST);
@@ -222,12 +218,11 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'GET / HTTP/1.0' + CRLF +
- 'X-Filler: 1337' + CRLF +
- 'X-Filler: 42' + CRLF +
- 'X-Filler2: 42' + CRLF +
- CRLF
- );
+ 'GET / HTTP/1.0' + CRLF +
+ 'X-Filler: 1337' + CRLF +
+ 'X-Filler: 42' + CRLF +
+ 'X-Filler2: 42' + CRLF +
+ CRLF);
var parser = newParser(REQUEST);
@@ -236,9 +231,9 @@ function expectBody(expected) {
assert.equal(info.versionMajor, 1);
assert.equal(info.versionMinor, 0);
assert.deepEqual(info.headers || parser.headers,
- ['X-Filler', '1337',
- 'X-Filler', '42',
- 'X-Filler2', '42']);
+ ['X-Filler', '1337',
+ 'X-Filler', '42',
+ 'X-Filler2', '42']);
});
parser.execute(request, 0, request.length);
@@ -254,10 +249,9 @@ function expectBody(expected) {
for (var i = 0; i < 8; ++i) lots_of_headers += lots_of_headers;
var request = Buffer(
- 'GET /foo/bar/baz?quux=42#1337 HTTP/1.0' + CRLF +
- lots_of_headers +
- CRLF
- );
+ 'GET /foo/bar/baz?quux=42#1337 HTTP/1.0' + CRLF +
+ lots_of_headers +
+ CRLF);
var parser = newParser(REQUEST);
@@ -285,12 +279,11 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'POST /it HTTP/1.1' + CRLF +
- 'Content-Type: application/x-www-form-urlencoded' + CRLF +
- 'Content-Length: 15' + CRLF +
- CRLF +
- 'foo=42&bar=1337'
- );
+ 'POST /it HTTP/1.1' + CRLF +
+ 'Content-Type: application/x-www-form-urlencoded' + CRLF +
+ 'Content-Length: 15' + CRLF +
+ CRLF +
+ 'foo=42&bar=1337');
var parser = newParser(REQUEST);
@@ -315,18 +308,17 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'POST /it HTTP/1.1' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Transfer-Encoding: chunked' + CRLF +
- CRLF +
- '3' + CRLF +
- '123' + CRLF +
- '6' + CRLF +
- '123456' + CRLF +
- 'A' + CRLF +
- '1234567890' + CRLF +
- '0' + CRLF
- );
+ 'POST /it HTTP/1.1' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Transfer-Encoding: chunked' + CRLF +
+ CRLF +
+ '3' + CRLF +
+ '123' + CRLF +
+ '6' + CRLF +
+ '123456' + CRLF +
+ 'A' + CRLF +
+ '1234567890' + CRLF +
+ '0' + CRLF);
var parser = newParser(REQUEST);
@@ -337,7 +329,8 @@ function expectBody(expected) {
assert.equal(info.versionMinor, 1);
});
- var body_part = 0, body_parts = ['123', '123456', '1234567890'];
+ var body_part = 0,
+ body_parts = ['123', '123456', '1234567890'];
function onBody(buf, start, len) {
var body = '' + buf.slice(start, start + len);
@@ -354,15 +347,14 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'POST /it HTTP/1.1' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Transfer-Encoding: chunked' + CRLF +
- CRLF +
- '3' + CRLF +
- '123' + CRLF +
- '6' + CRLF +
- '123456' + CRLF
- );
+ 'POST /it HTTP/1.1' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Transfer-Encoding: chunked' + CRLF +
+ CRLF +
+ '3' + CRLF +
+ '123' + CRLF +
+ '6' + CRLF +
+ '123456' + CRLF);
var parser = newParser(REQUEST);
@@ -373,9 +365,10 @@ function expectBody(expected) {
assert.equal(info.versionMinor, 1);
});
- var body_part = 0, body_parts = [
- '123', '123456', '123456789',
- '123456789ABC', '123456789ABCDEF' ];
+ var body_part = 0,
+ body_parts = [
+ '123', '123456', '123456789',
+ '123456789ABC', '123456789ABCDEF'];
function onBody(buf, start, len) {
var body = '' + buf.slice(start, start + len);
@@ -386,14 +379,13 @@ function expectBody(expected) {
parser.execute(request, 0, request.length);
request = Buffer(
- '9' + CRLF +
- '123456789' + CRLF +
- 'C' + CRLF +
- '123456789ABC' + CRLF +
- 'F' + CRLF +
- '123456789ABCDEF' + CRLF +
- '0' + CRLF
- );
+ '9' + CRLF +
+ '123456789' + CRLF +
+ 'C' + CRLF +
+ '123456789ABC' + CRLF +
+ 'F' + CRLF +
+ '123456789ABCDEF' + CRLF +
+ '0' + CRLF);
parser.execute(request, 0, request.length);
})();
@@ -404,22 +396,21 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'POST /helpme HTTP/1.1' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Transfer-Encoding: chunked' + CRLF +
- CRLF +
- '3' + CRLF +
- '123' + CRLF +
- '6' + CRLF +
- '123456' + CRLF +
- '9' + CRLF +
- '123456789' + CRLF +
- 'C' + CRLF +
- '123456789ABC' + CRLF +
- 'F' + CRLF +
- '123456789ABCDEF' + CRLF +
- '0' + CRLF
- );
+ 'POST /helpme HTTP/1.1' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Transfer-Encoding: chunked' + CRLF +
+ CRLF +
+ '3' + CRLF +
+ '123' + CRLF +
+ '6' + CRLF +
+ '123456' + CRLF +
+ '9' + CRLF +
+ '123456789' + CRLF +
+ 'C' + CRLF +
+ '123456789ABC' + CRLF +
+ 'F' + CRLF +
+ '123456789ABCDEF' + CRLF +
+ '0' + CRLF);
function test(a, b) {
var parser = newParser(REQUEST);
@@ -447,9 +438,11 @@ function expectBody(expected) {
for (var i = 1; i < request.length - 1; ++i) {
var a = request.slice(0, i);
- console.error("request.slice(0, " + i + ") = ", JSON.stringify(a.toString()));
+ console.error('request.slice(0, ' + i + ') = ',
+ JSON.stringify(a.toString()));
var b = request.slice(i);
- console.error("request.slice(" + i + ") = ", JSON.stringify(b.toString()));
+ console.error('request.slice(' + i + ') = ',
+ JSON.stringify(b.toString()));
test(a, b);
}
})();
@@ -460,22 +453,21 @@ function expectBody(expected) {
//
(function() {
var request = Buffer(
- 'POST /it HTTP/1.1' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Transfer-Encoding: chunked' + CRLF +
- CRLF +
- '3' + CRLF +
- '123' + CRLF +
- '6' + CRLF +
- '123456' + CRLF +
- '9' + CRLF +
- '123456789' + CRLF +
- 'C' + CRLF +
- '123456789ABC' + CRLF +
- 'F' + CRLF +
- '123456789ABCDEF' + CRLF +
- '0' + CRLF
- );
+ 'POST /it HTTP/1.1' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Transfer-Encoding: chunked' + CRLF +
+ CRLF +
+ '3' + CRLF +
+ '123' + CRLF +
+ '6' + CRLF +
+ '123456' + CRLF +
+ '9' + CRLF +
+ '123456789' + CRLF +
+ 'C' + CRLF +
+ '123456789ABC' + CRLF +
+ 'F' + CRLF +
+ '123456789ABCDEF' + CRLF +
+ '0' + CRLF);
var parser = newParser(REQUEST);
@@ -485,8 +477,8 @@ function expectBody(expected) {
assert.equal(info.versionMajor, 1);
assert.equal(info.versionMinor, 1);
assert.deepEqual(info.headers || parser.headers,
- ['Content-Type', 'text/plain',
- 'Transfer-Encoding','chunked']);
+ ['Content-Type', 'text/plain',
+ 'Transfer-Encoding', 'chunked']);
});
var expected_body = '123123456123456789123456789ABC123456789ABCDEF';
@@ -510,22 +502,20 @@ function expectBody(expected) {
//
(function() {
var req1 = Buffer(
- 'PUT /this HTTP/1.1' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Transfer-Encoding: chunked' + CRLF +
- CRLF +
- '4' + CRLF +
- 'ping' + CRLF +
- '0' + CRLF
- );
+ 'PUT /this HTTP/1.1' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Transfer-Encoding: chunked' + CRLF +
+ CRLF +
+ '4' + CRLF +
+ 'ping' + CRLF +
+ '0' + CRLF);
var req2 = Buffer(
- 'POST /that HTTP/1.0' + CRLF +
- 'Content-Type: text/plain' + CRLF +
- 'Content-Length: 4' + CRLF +
- CRLF +
- 'pong'
- );
+ 'POST /that HTTP/1.0' + CRLF +
+ 'Content-Type: text/plain' + CRLF +
+ 'Content-Length: 4' + CRLF +
+ CRLF +
+ 'pong');
function onHeadersComplete1(info) {
assert.equal(info.method, 'PUT');
@@ -533,8 +523,8 @@ function expectBody(expected) {
assert.equal(info.versionMajor, 1);
assert.equal(info.versionMinor, 1);
assert.deepEqual(info.headers,
- ['Content-Type', 'text/plain',
- 'Transfer-Encoding', 'chunked']);
+ ['Content-Type', 'text/plain',
+ 'Transfer-Encoding', 'chunked']);
};
function onHeadersComplete2(info) {
@@ -543,8 +533,8 @@ function expectBody(expected) {
assert.equal(info.versionMajor, 1);
assert.equal(info.versionMinor, 0);
assert.deepEqual(info.headers,
- ['Content-Type', 'text/plain',
- 'Content-Length', '4']);
+ ['Content-Type', 'text/plain',
+ 'Content-Length', '4']);
};
var parser = newParser(REQUEST);