annotate rewrite.t @ 91:ec89d4d65bef

Tests: Last-Modified and Accept-Ranges should be cleared on ssi. As of 0.7.44 (cache support) they are no longer cleared when got from upstream. Probably other filters (e.g. xslt) are affected as well.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 26 May 2009 17:21:59 +0400
parents b9bf423929cc
children 1c0ec30614c6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
65
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for rewrite module.
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has('rewrite')->plan(5)
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 master_process off;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 daemon off;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 events {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 http {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 access_log off;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 client_body_temp_path %%TESTDIR%%/client_body_temp;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 fastcgi_temp_path %%TESTDIR%%/fastcgi_temp;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 proxy_temp_path %%TESTDIR%%/proxy_temp;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 server {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 listen 127.0.0.1:8080;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 server_name localhost;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 location / {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 rewrite ^ http://example.com/ redirect;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 location /add {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 rewrite ^ http://example.com/?c=d redirect;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 location /no {
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 rewrite ^ http://example.com/?c=d? redirect;
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 }
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58 EOF
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 $t->run();
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 ###############################################################################
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 like(http_get('/'), qr!^Location: http://example.com/\x0d?$!ms, 'simple');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 like(http_get('/?a=b'), qr!^Location: http://example.com/\?a=b\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 'simple with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 like(http_get('/add'), qr!^Location: http://example.com/\?c=d\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 'add args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 like(http_get('/add?a=b'), qr!^Location: http://example.com/\?c=d&a=b\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 'add args with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 like(http_get('/no?a=b'), qr!^Location: http://example.com/\?c=d\x0d?$!ms,
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 'no args with args');
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75
02b82337a3ec Tests: some rewrite tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 ###############################################################################