summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2021-07-05 08:08:46 -0400
committerGlenn Strauss <gstrauss@gluelogic.com>2021-08-27 02:16:54 -0400
commita0a8cf821d2292e6662119e158e73c175452f1c3 (patch)
tree5004f9e26779aef636774b04091a7422e873fcb4
parentd4f43f7e1b817c15ecc63327acbca0e70d23f362 (diff)
downloadlighttpd-git-a0a8cf821d2292e6662119e158e73c175452f1c3.tar.gz
[tests] mv tests from request.t to test_request.c
move some tests from tests/*.t to src/t/test_request.c
-rw-r--r--src/t/test_request.c42
-rwxr-xr-xtests/core-request.t9
-rwxr-xr-xtests/core-response.t9
-rwxr-xr-xtests/request.t28
4 files changed, 45 insertions, 43 deletions
diff --git a/src/t/test_request.c b/src/t/test_request.c
index 9dfbcaa4..b232a2aa 100644
--- a/src/t/test_request.c
+++ b/src/t/test_request.c
@@ -312,6 +312,12 @@ static void test_request_http_request_parse(request_st * const r)
"\r\n"));
run_http_request_parse(r, __LINE__, 0,
+ "URL-decode request-URI",
+ CONST_STR_LEN("GET /index%2ehtml HTTP/1.0\r\n"
+ "\r\n"));
+ assert(buffer_eq_slen(&r->uri.path, CONST_STR_LEN("/index.html")));
+
+ run_http_request_parse(r, __LINE__, 0,
"#1232 - duplicate headers with line-wrapping",
CONST_STR_LEN("GET / HTTP/1.0\r\n"
"Location: foo\r\n"
@@ -544,6 +550,42 @@ static void test_request_http_request_parse(request_st * const r)
"Connection: close\r\n"
"\r\n"));
+ run_http_request_parse(r, __LINE__, 0,
+ "ignore duplicated If-Modified-Since if matching",
+ CONST_STR_LEN("GET / HTTP/1.1\r\n"
+ "Host: zzz.example.org\r\n"
+ "If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT\r\n"
+ "If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT\r\n"
+ "Connection: close\r\n"
+ "\r\n"));
+ b = http_header_request_get(r, HTTP_HEADER_IF_MODIFIED_SINCE,
+ CONST_STR_LEN("If-Modified-Since"));
+ assert(b && buffer_eq_slen(b,
+ CONST_STR_LEN("Sun, 01 Jan 2036 00:00:02 GMT")));
+
+ run_http_request_parse(r, __LINE__, 400,
+ "reject duplicated If-Modified-Since if not matching",
+ CONST_STR_LEN("GET / HTTP/1.1\r\n"
+ "Host: zzz.example.org\r\n"
+ "If-Modified-Since: Sun, 01 Jan 2036 00:00:02 GMT\r\n"
+ "If-Modified-Since: Sun, 01 Jan 2036 00:00:03 GMT\r\n"
+ "Connection: close\r\n"
+ "\r\n"));
+
+ run_http_request_parse(r, __LINE__, 0,
+ "large headers", /*(copied from tests/request.t)*/
+ CONST_STR_LEN("GET / HTTP/1.0\r\n"
+ "Hsgfsdjf: asdfhdf\r\n"
+ "hdhd: shdfhfdasd\r\n"
+ "hfhr: jfghsdfg\r\n"
+ "jfuuehdmn: sfdgjfdg\r\n"
+ "jvcbzufdg: sgfdfg\r\n"
+ "hrnvcnd: jfjdfg\r\n"
+ "jfusfdngmd: gfjgfdusdfg\r\n"
+ "nfj: jgfdjdfg\r\n"
+ "jfue: jfdfdg\r\n"
+ "\r\n"));
+
/* (quick check that none of above tests were left in a state
* which resulted in subsequent tests returning 400 for other
* reasons) */
diff --git a/tests/core-request.t b/tests/core-request.t
index 1418fb25..8d982fc8 100755
--- a/tests/core-request.t
+++ b/tests/core-request.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use IO::Socket;
-use Test::More tests => 12;
+use Test::More tests => 11;
use LightyTest;
my $tf = LightyTest->new();
@@ -44,13 +44,6 @@ ok($tf->handle_http($t) == 0, 'OPTIONS');
## Low-Level Request-Header Parsing - URI
$t->{REQUEST} = ( <<EOF
-GET /index%2ehtml HTTP/1.0
-EOF
- );
-$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ];
-ok($tf->handle_http($t) == 0, 'URL-encoding');
-
-$t->{REQUEST} = ( <<EOF
GET /index.html%00 HTTP/1.0
EOF
);
diff --git a/tests/core-response.t b/tests/core-response.t
index 93d17ade..d9ea023e 100755
--- a/tests/core-response.t
+++ b/tests/core-response.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use IO::Socket;
-use Test::More tests => 14;
+use Test::More tests => 13;
use LightyTest;
my $tf = LightyTest->new();
@@ -28,13 +28,6 @@ $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, '+Date
ok($tf->handle_http($t) == 0, 'Date header');
$t->{REQUEST} = ( <<EOF
-GET / HTTP/1.1
-EOF
- );
-$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 400, 'Connection' => 'close' } ];
-ok($tf->handle_http($t) == 0, 'Host missing');
-
-$t->{REQUEST} = ( <<EOF
GET / HTTP/1.0
EOF
);
diff --git a/tests/request.t b/tests/request.t
index ea4b1fb7..ea8852d6 100755
--- a/tests/request.t
+++ b/tests/request.t
@@ -8,7 +8,7 @@ BEGIN {
use strict;
use IO::Socket;
-use Test::More tests => 54;
+use Test::More tests => 52;
use LightyTest;
my $tf = LightyTest->new();
@@ -394,23 +394,6 @@ ok($tf->handle_http($t) == 0, 'GET, Range start out of range');
$t->{REQUEST} = ( <<EOF
-GET / HTTP/1.0
-Hsgfsdjf: asdfhdf
-hdhd: shdfhfdasd
-hfhr: jfghsdfg
-jfuuehdmn: sfdgjfdg
-jvcbzufdg: sgfdfg
-hrnvcnd: jfjdfg
-jfusfdngmd: gfjgfdusdfg
-nfj: jgfdjdfg
-jfue: jfdfdg
-EOF
- );
-$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ];
-ok($tf->handle_http($t) == 0, 'larger headers');
-
-
-$t->{REQUEST} = ( <<EOF
GET /range.pdf HTTP/1.1
Host: 123.example.org
Range: bytes=0-
@@ -462,15 +445,6 @@ ok($tf->handle_http($t) == 0, 'OPTIONS for RTSP');
my $nextyr = (gmtime(time()))[5] + 1900 + 1;
-$t->{REQUEST} = ( <<EOF
-GET /index.html HTTP/1.0
-If-Modified-Since: Sun, 01 Jan $nextyr 00:00:02 GMT
-If-Modified-Since: Sun, 01 Jan $nextyr 00:00:02 GMT
-EOF
- );
-$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 304 } ];
-ok($tf->handle_http($t) == 0, 'Duplicate If-Mod-Since, with equal timestamps');
-
$t->{REQUEST} = ( "GET / HTTP/1.0\r\nIf-Modified-Since: \r\n\r\n" );
$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200 } ];
ok($tf->handle_http($t) == 0, 'empty If-Modified-Since');