Mercurial > hg > nginx-tests
annotate ssi_if.t @ 1571:1b4ceab9cb1c
Tests: fixed ssl_certificate.t with LibreSSL client.
Net::SSLeay::connect() that manages TLS handshake could return unexpected
error when receiving server alert, as seen in server certificate tests if
it could not been selected. Typically, it returns the expected error -1,
but with certain libssl implementations it can be 0, as explained below.
The error is propagated from libssl's SSL_connect(), which is usually -1.
In modern OpenSSL versions, it is the default error code used in the state
machine returned when something went wrong with parsing TLS message header.
In versions up to OpenSSL 1.0.2, with SSLv23_method() used by default, -1
is the only error code in the ssl_connect() method implementation which is
used as well if receiving alert while parsing ServerHello. BoringSSL also
seems to return -1. But it is not so with LibreSSL that returns zero.
Previously, tests failed with client built with LibreSSL with SSLv3 removed.
Here, the error is propagated directly from ssl_read_bytes() method, which
is always implemented as ssl3_read_bytes() in all TLS methods. It could be
also seen with OpenSSL up to 1.0.2 with non-default methods explicitly set.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 29 May 2020 23:10:20 +0300 |
parents | 882267679006 |
children |
rev | line source |
---|---|
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
2 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
3 # (C) Maxim Dounin |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
4 # (C) Valentin Bartenev |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
5 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
6 # Tests for nginx ssi module, "if" statement. |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
7 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
8 ############################################################################### |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
9 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
10 use warnings; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
11 use strict; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
12 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
13 use Test::More; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
14 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
16 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
17 use lib 'lib'; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
18 use Test::Nginx; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
19 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
20 ############################################################################### |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
21 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
24 |
593
6c0a5903d0ae
Tests: cleanup now duplicating tests for no alerts.
Sergey Kandaurov <pluknet@nginx.com>
parents:
249
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http ssi/)->plan(43); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
26 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
27 $t->write_file_expand('nginx.conf', <<'EOF'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
28 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
30 |
249
6a0d934950bc
Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents:
234
diff
changeset
|
31 daemon off; |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
32 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
33 events { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
34 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
35 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
36 http { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
37 %%TEST_GLOBALS_HTTP%% |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
38 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
39 server { |
974
882267679006
Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
952
diff
changeset
|
40 listen 127.0.0.1:8080; |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
41 server_name localhost; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
42 location / { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
43 ssi on; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
44 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
45 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
46 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
47 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
48 EOF |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
49 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
50 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
51 my $if_elif_else = |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
52 '<!--#if expr="$arg_if" -->IF' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
53 . '<!--#elif expr="$arg_elif" -->ELIF' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
54 . '<!--#else -->ELSE' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
55 . '<!--#endif -->'; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
56 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
57 my $zig = 'GOOD'; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
58 my $zag = 'GOOD'; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
59 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
60 foreach my $i (reverse 1 .. 15) { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
61 if ($i % 2) { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
62 $zig = |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
63 "<!--#if expr='\$arg_$i' -->$i<!--#else -->$zig<!--#endif -->"; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
64 $zag = |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
65 "<!--#if expr='\$arg_$i' -->$zag<!--#else -->$i<!--#endif -->"; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
66 } else { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
67 $zig = |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
68 "<!--#if expr='\$arg_$i' -->$zig<!--#else -->$i<!--#endif -->"; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
69 $zag = |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
70 "<!--#if expr='\$arg_$i' -->$i<!--#else -->$zag<!--#endif -->"; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
71 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
72 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
73 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
74 $t->run(); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
75 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
76 ############################################################################### |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
77 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
78 $t->write_file('if_var.html', 'x<!--#if expr="$arg_v" -->OK<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
79 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
80 like(http_get('/if_var.html?v=1'), qr/^xOKx$/m, 'if variable exists'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
81 like(http_get('/if_var.html'), qr/^xx$/m, 'if variable not exists'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
82 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
83 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
84 $t->write_file('if_eq.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
85 'x<!--#if expr="$arg_v = equal" -->OK<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
86 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
87 like(http_get('/if_eq.html?v=equal'), qr/^xOKx$/m, 'if var = text'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
88 like(http_get('/if_eq.html?v=notequal'), qr/^xx$/m, 'if var = text (false)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
89 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
90 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
91 $t->write_file('if_neq.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
92 'x<!--#if expr="equal != $arg_v" -->OK<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
93 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
94 like(http_get('/if_neq.html?v=notequal'), qr/^xOKx$/m, 'if text != var'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
95 like(http_get('/if_neq.html?v=equal'), qr/^xx$/m, 'if text != var (false)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
96 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
97 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
98 SKIP: { |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
99 # PCRE may not be available unless we have rewrite module |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
100 |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
101 skip 'no PCRE', 4 unless $t->has_module('rewrite'); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
102 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
103 $t->write_file('if_eq_re.html', |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
104 'x<!--#if expr="$arg_v = /re+gexp?/" -->OK<!--#endif -->x'); |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
105 |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
106 like(http_get('/if_eq_re.html?v=XreeeegexX'), qr/^xOKx$/m, |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
107 'if var = /regex/'); |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
108 like(http_get('/if_eq_re.html?v=XrgxX'), qr/^xx$/m, |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
109 'if var = /regex/ (false)'); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
110 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
111 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
112 $t->write_file('if_neq_re.html', |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
113 'x<!--#if expr="$arg_v != /re+gexp?/" -->OK<!--#endif -->x'); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
114 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
115 like(http_get('/if_neq_re.html?v=XrgxX'), qr/^xOKx$/m, |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
116 'if var != /regex/'); |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
117 like(http_get('/if_neq_re.html?v=XreeeegexX'), qr/^xx$/m, |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
118 'if var != /regex/ (false)'); |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
119 } |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
120 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
121 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
122 $t->write_file('if_varvar.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
123 'x<!--#if expr="$arg_v = var$arg_v2" -->OK<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
124 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
125 like(http_get('/if_varvar.html?v=varHERE&v2=HERE'), qr/^xOKx$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
126 'if var = complex'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
127 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
128 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
129 SKIP: { |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
130 # PCRE may not be available unless we have rewrite module |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
131 |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
132 skip 'no PCRE', 2 unless $t->has_module('rewrite'); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
133 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
134 $t->write_file('if_cap_re.html', |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
135 'x<!--#if expr="$arg_v = /(CAP\d).*(CAP\d)/" -->' |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
136 . '<!--#echo var="1" -->x<!--#echo var="2" -->' |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
137 . '<!--#endif -->x'); |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
138 |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
139 like(http_get('/if_cap_re.html?v=hereCAP1andCAP2'), qr/^xCAP1xCAP2x$/m, |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
140 'if regex with captures'); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
141 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
142 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
143 $t->write_file('if_ncap_re.html', |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
144 'x<!--#if expr="$arg_v = /(?P<ncap>HERE)/" -->' |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
145 . '<!--#echo var="ncap" -->' |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
146 . '<!--#endif -->x'); |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
147 |
234
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
148 like(http_get('/if_ncap_re.html?v=captureHEREeee'), qr/^xHEREx$/m, |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
149 'if regex with named capture'); |
62114a0c1389
Tests: skip ssi if regex tests without the rewrite module.
Valentin Bartenev <ne@vbart.ru>
parents:
199
diff
changeset
|
150 } |
190
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
151 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
152 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
153 $t->write_file('if.html', 'x' . $if_elif_else . 'x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
154 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
155 like(http_get('/if.html?if=1'), qr/^xIFx$/m, 'if'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
156 like(http_get('/if.html?if=1&elif=1'), qr/^xIFx$/m, 'if suppresses elif'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
157 like(http_get('/if.html?elif=1'), qr/^xELIFx$/m, 'elif'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
158 like(http_get('/if.html'), qr/^xELSEx$/m, 'else'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
159 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
160 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
161 $t->write_file('if_multi.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
162 'x<!--#if expr="$arg_1" -->IF1<!--#else -->ELSE1<!--#endif -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
163 . 'x<!--#if expr="$arg_2" -->IF2<!--#else -->ELSE2<!--#endif -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
164 . 'x<!--#if expr="$arg_3" -->IF3<!--#else -->ELSE3<!--#endif -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
165 . 'x<!--#if expr="$arg_4" -->IF4<!--#else -->ELSE4<!--#endif -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
166 . 'x<!--#if expr="$arg_5" -->IF5<!--#else -->ELSE5<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
167 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
168 like(http_get('/if_multi.html?1=t&2=t&3=t&4=t&5=t'), |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
169 qr/^xIF1xIF2xIF3xIF4xIF5x$/m, 'multiple if (sequentially)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
170 like(http_get('/if_multi.html?1=t&3=t&5=t'), qr/^xIF1xELSE2xIF3xELSE4xIF5x$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
171 'multiple if (interlaced)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
172 like(http_get('/if_multi.html?2=t&4=t'), qr/^xELSE1xIF2xELSE3xIF4xELSE5x$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
173 'multiple if (interlaced reversed)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
174 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
175 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
176 $t->write_file('if_in_block.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
177 '<!--#block name="one" -->' . $if_elif_else . '<!--#endblock -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
178 . 'x<!--#include virtual="/404?$args" stub="one" -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
179 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
180 like(http_get('/if_in_block.html?if=1'), qr/^xIFx$/m, 'if (in block)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
181 like(http_get('/if_in_block.html?if=1&elif=1'), qr/^xIFx$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
182 'if suppresses elif (in block)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
183 like(http_get('/if_in_block.html?elif=1'), qr/^xELIFx$/m, 'elif (in block)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
184 like(http_get('/if_in_block.html'), qr/^xELSEx$/m, 'else (in block)'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
185 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
186 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
187 $t->write_file('if_config_set_echo.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
188 'x<!--#if expr="$arg_if" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
189 . '<!--#config timefmt="IF" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
190 . '<!--#set var="v" value="$date_gmt" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
191 . '<!--#echo var="v" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
192 . '<!--#else -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
193 . '<!--#config timefmt="ELSE" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
194 . '<!--#set var="v" value="$date_gmt" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
195 . '<!--#echo var="v" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
196 . '<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
197 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
198 like(http_get('/if_config_set_echo.html?if=1'), qr/^xIFx$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
199 'if config-set-echo'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
200 like(http_get('/if_config_set_echo.html'), qr/^xELSEx$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
201 'else config-set-echo'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
202 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
203 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
204 $t->write_file('if_include.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
205 'x<!--#if expr="$arg_if" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
206 . '<!--#include virtual="/if.html?if=1" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
207 . '<!--#else -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
208 . '<!--#include virtual="/if.html" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
209 . '<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
210 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
211 like(http_get('/if_include.html?if=1'), qr/^xxIFxx$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
212 'if include'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
213 like(http_get('/if_include.html'), qr/^xxELSExx$/m, |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
214 'else include'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
215 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
216 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
217 $t->write_file('if_block.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
218 '<!--#if expr="$arg_if" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
219 . '<!--#block name="one" -->IF<!--#endblock -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
220 . '<!--#else -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
221 . '<!--#block name="one" -->ELSE<!--#endblock -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
222 . '<!--#endif -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
223 . 'x<!--#include virtual="/404" stub="one" -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
224 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
225 like(http_get('/if_block.html?if=1'), qr/^xIFx$/m, 'if block'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
226 like(http_get('/if_block.html'), qr/^xELSEx$/m, 'else block'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
227 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
228 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
229 TODO: { |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
230 local $TODO = 'support for nested ifs'; |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
231 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
232 $t->write_file('ifif.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
233 'x<!--#if expr="$arg__if" -->IFx' . $if_elif_else |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
234 . '<!--#elif expr="$arg__elif" -->ELIFx' . $if_elif_else |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
235 . '<!--#else -->ELSEx' . $if_elif_else |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
236 . '<!--#endif -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
237 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
238 like(http_get('/ifif.html?_if=1&if=1'), qr/^xIFxIFx$/m, 'if if'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
239 like(http_get('/ifif.html?_if=1&elif=1'), qr/^xIFxELIFx$/m, 'if elif'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
240 like(http_get('/ifif.html?_if=1'), qr/^xIFxELSEx$/m, 'if else'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
241 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
242 like(http_get('/ifif.html?_elif=1&if=1'), qr/^xELIFxIFx$/m, 'elif if'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
243 like(http_get('/ifif.html?_elif=1&elif=1'), qr/^xELIFxELIFx$/m, 'elif elif'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
244 like(http_get('/ifif.html?_elif=1'), qr/^xELIFxELSEx$/m, 'elif else'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
245 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
246 like(http_get('/ifif.html?if=1'), qr/^xELSExIFx$/m, 'else if'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
247 like(http_get('/ifif.html?elif=1'), qr/^xELSExELIFx$/m, 'else elif'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
248 like(http_get('/ifif.html'), qr/^xELSExELSEx$/m, 'else else'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
249 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
250 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
251 $t->write_file('zigzag.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
252 "x<!--#if expr='\$arg_0' -->$zig<!--#else -->$zag<!--#endif -->x"); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
253 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
254 like(http_get('/zigzag.html?0=t&2=t&4=t&6=t&8=t&10=t&12=t&14=t'), |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
255 qr/^xGOODx$/m, 'zigzag'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
256 like(http_get('/zigzag.html?1=t&3=t&5=t&7=t&9=t&11=t&13=t&15=t'), |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
257 qr/^xGOODx$/m, 'zagzig'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
258 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
259 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
260 $t->write_file('zigzag_block.html', |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
261 '<!--#block name="one" -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
262 . "x<!--#if expr='\$arg_0' -->$zig<!--#else -->$zag<!--#endif -->x" |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
263 . '<!--#endblock -->' |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
264 . 'x<!--#include virtual="/404?$args" stub="one" -->x'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
265 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
266 like(http_get('/zigzag_block.html?0=t&2=t&4=t&6=t&8=t&10=t&12=t&14=t'), |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
267 qr/^xGOODx$/m, 'zigzag block'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
268 like(http_get('/zigzag_block.html?1=t&3=t&5=t&7=t&9=t&11=t&13=t&15=t'), |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
269 qr/^xGOODx$/m, 'zagzig block'); |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
270 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
271 } |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
272 |
1d66a6a509d0
Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff
changeset
|
273 ############################################################################### |