Annotation of embedaddon/lighttpd/tests/core-response.t, revision 1.1.1.1

1.1       misho       1: #!/usr/bin/env perl
                      2: BEGIN {
                      3:        # add current source dir to the include-path
                      4:        # we need this for make distcheck
                      5:        (my $srcdir = $0) =~ s,/[^/]+$,/,;
                      6:        unshift @INC, $srcdir;
                      7: }
                      8: 
                      9: use strict;
                     10: use IO::Socket;
                     11: use Test::More tests => 12;
                     12: use LightyTest;
                     13: 
                     14: my $tf = LightyTest->new();
                     15: my $t;
                     16: 
                     17: ok($tf->start_proc == 0, "Starting lighttpd") or die();
                     18: 
                     19: ## Low-Level Response-Header Parsing - HTTP/1.1
                     20: 
                     21: $t->{REQUEST}  = ( <<EOF
                     22: GET / HTTP/1.1
                     23: Host: www.example.org
                     24: Connection: close
                     25: EOF
                     26:  );
                     27: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 200, '+Date' => '' } ];
                     28: ok($tf->handle_http($t) == 0, 'Date header');
                     29: 
                     30: $t->{REQUEST}  = ( <<EOF
                     31: GET / HTTP/1.1
                     32: EOF
                     33:  );
                     34: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.1', 'HTTP-Status' => 400, 'Connection' => 'close' } ];
                     35: ok($tf->handle_http($t) == 0, 'Host missing');
                     36: 
                     37: $t->{REQUEST}  = ( <<EOF
                     38: GET / HTTP/1.0
                     39: EOF
                     40:  );
                     41: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, '+ETag' => '' } ];
                     42: ok($tf->handle_http($t) == 0, 'ETag is set');
                     43: 
                     44: $t->{REQUEST}  = ( <<EOF
                     45: GET / HTTP/1.0
                     46: EOF
                     47:  );
                     48: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'ETag' => '/^".+"$/' } ];
                     49: ok($tf->handle_http($t) == 0, 'ETag has quotes');
                     50: 
                     51: 
                     52: 
                     53: ## Low-Level Response-Header Parsing - Content-Length
                     54: 
                     55: 
                     56: $t->{REQUEST}  = ( <<EOF
                     57: GET /12345.html HTTP/1.0
                     58: Host: 123.example.org
                     59: EOF
                     60:  );
                     61: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Content-Length' => '6' } ];
                     62: ok($tf->handle_http($t) == 0, 'Content-Length for text/html');
                     63: 
                     64: $t->{REQUEST}  = ( <<EOF
                     65: GET /12345.txt HTTP/1.0
                     66: Host: 123.example.org
                     67: EOF
                     68:  );
                     69: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Content-Length' => '6' } ];
                     70: ok($tf->handle_http($t) == 0, 'Content-Length for text/plain');
                     71: 
                     72: 
                     73: ## Low-Level Response-Header Parsing - Location
                     74: 
                     75: $t->{REQUEST}  = ( <<EOF
                     76: GET /dummydir HTTP/1.0
                     77: EOF
                     78:  );
                     79: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => 'http://'.$tf->{HOSTNAME}.':'.$tf->{PORT}.'/dummydir/' } ];
                     80: ok($tf->handle_http($t) == 0, 'internal redirect in directory');
                     81: 
                     82: $t->{REQUEST}  = ( <<EOF
                     83: GET /dummydir?foo HTTP/1.0
                     84: EOF
                     85:  );
                     86: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => 'http://'.$tf->{HOSTNAME}.':'.$tf->{PORT}.'/dummydir/?foo' } ];
                     87: ok($tf->handle_http($t) == 0, 'internal redirect in directory + querystring');
                     88: 
                     89: ## simple-vhost
                     90: 
                     91: $t->{REQUEST}  = ( <<EOF
                     92: GET /12345.txt HTTP/1.0
                     93: Host: no-simple.example.org
                     94: EOF
                     95:  );
                     96: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'Content-Length' => '6' } ];
                     97: ok($tf->handle_http($t) == 0, 'disabling simple-vhost via conditionals');
                     98: 
                     99: $t->{REQUEST}  = ( <<EOF
                    100: GET /12345.txt HTTP/1.0
                    101: Host: simple.example.org
                    102: EOF
                    103:  );
                    104: $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404 } ];
                    105: ok($tf->handle_http($t) == 0, 'simple-vhost via conditionals');
                    106: 
                    107: ok($tf->stop_proc == 0, "Stopping lighttpd");
                    108: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>