annotate ssi_if.t @ 190:1d66a6a509d0

Tests: SSI "if" statement tests.
author Valentin Bartenev <ne@vbart.ru>
date Fri, 23 Dec 2011 12:29:26 +0300
parents
children 241b522ce7a5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http ssi/)->plan(44);
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
31 daemon off;
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 {
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
40 listen 127.0.0.1:8080;
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
98 $t->write_file('if_eq_re.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
99 'x<!--#if expr="$arg_v = /re+gexp?/" -->OK<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
100
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
101 like(http_get('/if_eq_re.html?v=XreeeegexX'), qr/^xOKx$/m, 'if var = /regex/');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
102 like(http_get('/if_eq_re.html?v=XrgxX'), qr/^xx$/m, 'if var = /regex/ (false)');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
103
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
104
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
105 $t->write_file('if_neq_re.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
106 'x<!--#if expr="$arg_v != /re+gexp?/" -->OK<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
107
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
108 like(http_get('/if_neq_re.html?v=XrgxX'), qr/^xOKx$/m, 'if var != /regex/');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
109 like(http_get('/if_neq_re.html?v=XreeeegexX'), qr/^xx$/m,
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
110 'if var != /regex/ (false)');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
111
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
112
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
113 $t->write_file('if_varvar.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
114 '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
115
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
116 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
117 'if var = complex');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
118
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
119
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
120 TODO: {
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
121 local $TODO = 'support for captures in regexps';
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
122
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
123 $t->write_file('if_cap_re.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
124 'x<!--#if expr="$arg_v = /(CAP\d).*(CAP\d)/" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
125 . '<!--#echo var="1" -->x<!--#echo var="2" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
126 . '<!--#endif -->x');
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 like(http_get('/if_cap_re.html?v=hereCAP1andCAP2'), qr/^xCAP1xCAP2x$/m,
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
129 'if regex with captures');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
130
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
131
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
132 $t->write_file('if_ncap_re.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
133 'x<!--#if expr="$arg_v = /(?P<ncap>HERE)/" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
134 . '<!--#echo var="ncap" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
135 . '<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
136
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
137 like(http_get('/if_ncap_re.html?v=captureHEREeee'), qr/^xHEREx$/m,
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
138 'if regex with named capture');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
139
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
140 }
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
143 $t->write_file('if.html', 'x' . $if_elif_else . 'x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
144
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
145 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
146 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
147 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
148 like(http_get('/if.html'), qr/^xELSEx$/m, 'else');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
149
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
150
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
151 $t->write_file('if_multi.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
152 'x<!--#if expr="$arg_1" -->IF1<!--#else -->ELSE1<!--#endif -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
153 . 'x<!--#if expr="$arg_2" -->IF2<!--#else -->ELSE2<!--#endif -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
154 . 'x<!--#if expr="$arg_3" -->IF3<!--#else -->ELSE3<!--#endif -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
155 . 'x<!--#if expr="$arg_4" -->IF4<!--#else -->ELSE4<!--#endif -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
156 . 'x<!--#if expr="$arg_5" -->IF5<!--#else -->ELSE5<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
157
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
158 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
159 qr/^xIF1xIF2xIF3xIF4xIF5x$/m, 'multiple if (sequentially)');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
160 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
161 'multiple if (interlaced)');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
162 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
163 'multiple if (interlaced reversed)');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
164
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
165
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
166 TODO: {
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
167 local $TODO = 'fix "if" conditions inside the "block" command';
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
168
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
169 $t->write_file('if_in_block.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
170 '<!--#block name="one" -->' . $if_elif_else . '<!--#endblock -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
171 . 'x<!--#include virtual="/404?$args" stub="one" -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
172
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
173 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
174 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
175 'if suppresses elif (in block)');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
176 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
177 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
178
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
181
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
182 $t->write_file('if_config_set_echo.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
183 'x<!--#if expr="$arg_if" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
184 . '<!--#config timefmt="IF" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
185 . '<!--#set var="v" value="$date_gmt" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
186 . '<!--#echo var="v" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
187 . '<!--#else -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
188 . '<!--#config timefmt="ELSE" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
189 . '<!--#set var="v" value="$date_gmt" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
190 . '<!--#echo var="v" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
191 . '<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
192
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
193 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
194 'if config-set-echo');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
195 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
196 'else config-set-echo');
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
199 $t->write_file('if_include.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
200 'x<!--#if expr="$arg_if" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
201 . '<!--#include virtual="/if.html?if=1" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
202 . '<!--#else -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
203 . '<!--#include virtual="/if.html" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
204 . '<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
205
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
206 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
207 'if include');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
208 like(http_get('/if_include.html'), qr/^xxELSExx$/m,
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
209 'else include');
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
212 $t->write_file('if_block.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
213 '<!--#if expr="$arg_if" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
214 . '<!--#block name="one" -->IF<!--#endblock -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
215 . '<!--#else -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
216 . '<!--#block name="one" -->ELSE<!--#endblock -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
217 . '<!--#endif -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
218 . 'x<!--#include virtual="/404" stub="one" -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
219
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
220 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
221 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
222
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
223
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
224 TODO: {
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
225 local $TODO = 'support for nested ifs';
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
226
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
227 $t->write_file('ifif.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
228 'x<!--#if expr="$arg__if" -->IFx' . $if_elif_else
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
229 . '<!--#elif expr="$arg__elif" -->ELIFx' . $if_elif_else
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
230 . '<!--#else -->ELSEx' . $if_elif_else
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
231 . '<!--#endif -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
232
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
233 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
234 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
235 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
236
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
237 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
238 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
239 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
240
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
241 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
242 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
243 like(http_get('/ifif.html'), qr/^xELSExELSEx$/m, 'else else');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
244
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 $t->write_file('zigzag.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
247 "x<!--#if expr='\$arg_0' -->$zig<!--#else -->$zag<!--#endif -->x");
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
248
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
249 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
250 qr/^xGOODx$/m, 'zigzag');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
251 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
252 qr/^xGOODx$/m, 'zagzig');
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
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
255 $t->write_file('zigzag_block.html',
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
256 '<!--#block name="one" -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
257 . "x<!--#if expr='\$arg_0' -->$zig<!--#else -->$zag<!--#endif -->x"
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
258 . '<!--#endblock -->'
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
259 . 'x<!--#include virtual="/404?$args" stub="one" -->x');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
260
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
261 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
262 qr/^xGOODx$/m, 'zigzag block');
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
263 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
264 qr/^xGOODx$/m, 'zagzig block');
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 }
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
267
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
268
1d66a6a509d0 Tests: SSI "if" statement tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
269 like(`grep -F '[alert]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no alerts');
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 ###############################################################################