# HG changeset patch # User Valentin Bartenev # Date 1322817526 -10800 # Node ID 43fe964de06abe71fd9dd79dffdc56b080c1c8bc # Parent f432f11a3b12889cc163a4b3321fc6ceb7d6ce9f Tests: added tests for the $sent_http_cache_control variable. diff --git a/http_variables.t b/http_variables.t new file mode 100644 --- /dev/null +++ b/http_variables.t @@ -0,0 +1,97 @@ +#!/usr/bin/perl + +# (C) Maxim Dounin +# (C) Valentin Bartenev + +# Tests for http variables. + +############################################################################### + +use warnings; +use strict; + +use Test::More; + +BEGIN { use FindBin; chdir($FindBin::Bin); } + +use lib 'lib'; +use Test::Nginx; + +############################################################################### + +select STDERR; $| = 1; +select STDOUT; $| = 1; + +my $t = Test::Nginx->new()->has(qw/http rewrite proxy/)->plan(3); + +$t->write_file_expand('nginx.conf', <<'EOF'); + +%%TEST_GLOBALS%% + +daemon off; + +events { +} + +http { + %%TEST_GLOBALS_HTTP%% + + log_format cc "CC: $sent_http_cache_control"; + + server { + listen 127.0.0.1:8080; + server_name localhost; + + access_log %%TESTDIR%%/cc.log cc; + + location / { + return 200 OK; + } + + location /set { + add_header Cache-Control max-age=3600; + add_header Cache-Control private; + add_header Cache-Control must-revalidate; + return 200 OK; + } + + location /redefine { + expires epoch; + proxy_pass http://127.0.0.1:8080/set; + } + } +} + +EOF + +$t->run(); + +############################################################################### + +http_get('/'); +http_get('/redefine'); + +$t->stop(); + +my @log; + +open LOG, $t->testdir() . '/cc.log' + or die("Can't open nginx access log file.\n"); + +foreach my $line () { + chomp $line; + push @log, $line; +} + +close LOG; + +is(shift @log, 'CC: -', 'no header'); +is(shift @log, 'CC: max-age=3600; private; must-revalidate', 'multi headers'); + +TODO:{ +local $TODO = 'add hash checks'; + +is(shift @log, 'CC: no-cache', 'ignoring headers with (hash == 0)'); +} + +###############################################################################