annotate ssi.t @ 102:9f723d3ba52d

Tests: tests for empty static subrequests.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 02 Oct 2009 18:19:43 +0400
parents b8b901f86518
children bb5b5e69b45e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
73
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for nginx ssi module.
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
102
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
24 my $t = Test::Nginx->new()->plan(13);
73
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26 $t->write_file_expand('nginx.conf', <<'EOF');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 master_process off;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 daemon off;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 access_log off;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 root %%TESTDIR%%;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 client_body_temp_path %%TESTDIR%%/client_body_temp;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 fastcgi_temp_path %%TESTDIR%%/fastcgi_temp;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 proxy_temp_path %%TESTDIR%%/proxy_temp;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 server {
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 listen 127.0.0.1:8080;
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 server_name localhost;
91
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
45 location / {
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
46 ssi on;
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
47 }
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
48 location /proxy/ {
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
49 ssi on;
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
50 proxy_pass http://127.0.0.1:8080/local/;
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
51 }
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
52 location /local/ {
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
53 ssi off;
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
54 alias %%TESTDIR%%/;
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
55 }
73
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 }
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 }
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 EOF
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 $t->write_file('test1.html', 'X<!--#echo var="arg_test" -->X');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 $t->write_file('test2.html',
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 'X<!--#include virtual="/test1.html?test=test" -->X');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 $t->write_file('test3.html',
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 'X<!--#set var="blah" value="test" --><!--#echo var="blah" -->X');
102
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
66 $t->write_file('test-empty1.html', 'X<!--#include virtual="/empty.html" -->X');
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
67 $t->write_file('test-empty2.html',
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
68 'X<!--#include virtual="/local/empty.html" -->X');
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
69 $t->write_file('empty.html', '');
73
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 $t->run();
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 ###############################################################################
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 like(http_get('/test1.html'), qr/^X\(none\)X$/m, 'echo no argument');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 like(http_get('/test1.html?test='), qr/^XX$/m, 'empty argument');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77 like(http_get('/test1.html?test=test'), qr/^XtestX$/m, 'argument');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 like(http_get('/test1.html?test=test&a=b'), qr/^XtestX$/m, 'argument 2');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 like(http_get('/test1.html?a=b&test=test'), qr/^XtestX$/m, 'argument 3');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 like(http_get('/test1.html?a=b&test=test&d=c'), qr/^XtestX$/m, 'argument 4');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 like(http_get('/test1.html?atest=a&testb=b&ctestc=c&test=test'), qr/^XtestX$/m,
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 'argument 5');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 like(http_get('/test2.html'), qr/^XXtestXX$/m, 'argument via include');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 like(http_get('/test3.html'), qr/^XtestX$/m, 'set');
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87
91
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
88 # Last-Modified and Accept-Ranges headers should be cleared
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
89
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
90 unlike(http_get('/test1.html'), qr/Last-Modified|Accept-Ranges/im,
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
91 'cleared headers');
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
92 unlike(http_get('/proxy/test1.html'), qr/Last-Modified|Accept-Ranges/im,
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
93 'cleared headers from proxy');
ec89d4d65bef Tests: Last-Modified and Accept-Ranges should be cleared on ssi.
Maxim Dounin <mdounin@mdounin.ru>
parents: 73
diff changeset
94
102
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
95 like(http_get('/test-empty1.html'), qr/HTTP/, 'empty with ssi');
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
96 like(http_get('/test-empty2.html'), qr/HTTP/, 'empty without ssi');
9f723d3ba52d Tests: tests for empty static subrequests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 98
diff changeset
97
73
c8ba98ad0570 Tests: some very basic ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98 ###############################################################################