Mercurial > hg > nginx-tests
changeset 226:e7a01be387ad
Tests: added some etag tests.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 27 Jun 2012 22:35:11 +0400 |
parents | d9c5b8b9d48e |
children | 16371849bd07 |
files | not_modified.t |
diffstat | 1 files changed, 46 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/not_modified.t Mon Jun 25 22:47:56 2012 +0400 +++ b/not_modified.t Wed Jun 27 22:35:11 2012 +0400 @@ -21,7 +21,7 @@ select STDERR; $| = 1; select STDOUT; $| = 1; -my $t = Test::Nginx->new()->has('http')->plan(4) +my $t = Test::Nginx->new()->has('http')->plan(12) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% @@ -66,11 +66,34 @@ '0x17FFFFFFF'); } +# If-Match, If-None-Match tests + +my ($t1, $etag); + +$t1 = http_get('/t'); + +SKIP: { + skip "no etag support", 8 if $t1 !~ /ETag: (".*")/; + $etag = $1; + + like(http_get_inm('/t', $etag), qr/304/, 'if-none-match'); + like(http_get_inm('/t', '"foo"'), qr/200/, 'if-none-match fail'); + like(http_get_inm('/t', '"foo", "bar", ' . $etag . ' , "baz"'), qr/304/, + 'if-none-match with complex list'); + like(http_get_inm('/t', '*'), qr/304/, 'if-none-match all'); + + like(http_get_im('/t', $etag), qr/200/, 'if-match'); + like(http_get_im('/t', '"foo"'), qr/412/, 'if-match fail'); + like(http_get_im('/t', '"foo", "bar", ' . "\t" . $etag . ' , "baz"'), + qr/200/, 'if-match with complex list'); + like(http_get_im('/t', '*'), qr/200/, 'if-match all'); +} + ############################################################################### sub http_get_ims { - my ($url, $ims) = @_; - return http(<<EOF); + my ($url, $ims) = @_; + return http(<<EOF); GET $url HTTP/1.0 Host: localhost If-Modified-Since: $ims @@ -78,4 +101,24 @@ EOF } +sub http_get_inm { + my ($url, $inm) = @_; + return http(<<EOF); +GET $url HTTP/1.0 +Host: localhost +If-None-Match: $inm + +EOF +} + +sub http_get_im { + my ($url, $inm) = @_; + return http(<<EOF); +GET $url HTTP/1.0 +Host: localhost +If-Match: $inm + +EOF +} + ###############################################################################