1/*using redirect to test if, elsif, and else, along with all of the tests
2  that can be inside
3
4  this is still being added to, there are almost certaintly conditions not
5  being tested
6
7
8 */
9
10
11#address all
12
13if address :all :is "from" "zme@true.com"
14{redirect "me+aallis@blah.com";}
15
16if address :all :contains "from" "true.com"
17{redirect "me+aallcontains@blah.com";}
18
19if address :all :matches "from" "*true.com"
20{redirect "me+aallmatches@blah.com";}
21
22
23
24#address domain
25
26if address :domain :is "from" "true.com"
27{redirect "me+adomainis@blah.com";}
28
29if address :domain :contains "from" "true.com"
30{redirect "me+adomaincontains@blah.com";}
31
32if address :domain :matches "from" "*true*"
33{redirect "me+adomainmatches@blah.com";}
34
35
36#address localpart
37
38if address :localpart :is "from" "zme"
39{redirect "me+alocalpartis@blah.com";}
40
41if address :localpart :contains "from" "z"
42{redirect "me+alocalpartcontains@blah.com";}
43
44if address :localpart :matches "from" "z*"
45{redirect "me+alocalpartmatches@blah.com";}
46
47
48
49
50
51
52#add tests/messages that differentiate between header/address.
53#need to write messages and to tweak tests to make sure everyhting works
54#as expected
55
56if header :contains "Date" "Feb"
57{redirect "me+headercontains@blah.com";}
58
59if header :is "Date" "Mon, 25 Feb 2002 08:51:06 -0500"
60{redirect "me+headeris@blah.com";}
61
62if header :matches "Date"  "Mon, 25 Feb *"
63{redirect "me+headermatches@blah.com";}
64
65##########################################################################
66#this stuff will be true for a lot of messages                           #
67##########################################################################
68#stop
69
70if exists "To"
71{redirect "me+toexists@blah.com";}
72
73if exists "flooglewart"
74{redirect "me+badexists@blah.com";}
75
76        if size :over 10K
77{redirect "me+over10k@blah.com";}
78
79if size :over 1M
80{redirect "me+over1m@blah.com";}
81
82if size :under 1K
83{redirect "me+under1k@blah.com";}
84
85#########################################################################
86#this stuff will work for any message.                                  #
87#########################################################################
88#stop
89
90
91if true
92{redirect "me+goodtrue@blah.com";}
93
94if false
95{redirect "me+badfalse@blah.com";}
96
97if not false
98{redirect "me+goodnot@blah.com";}
99
100if true
101{redirect "me+goodif@blah.com";}
102else
103{redirect "me+badif@blah.com";}
104
105if false
106{redirect "me+badelseif@blah.com";}
107elsif true
108{redirect "me+goodelseif@blah.com";}
109else
110{redirect "me+badelseif@blah.com";}
111
112if false
113{redirect "me+badelse@blah.com";}
114elsif false
115{redirect "me+badelse@blah.com";}
116else
117{redirect "me+goodelse@blah.com";}
118
119if false
120{}
121else
122{redirect "me+goodnull@blah.com";}
123
124if true
125  {if true
126     {if true
127        {redirect "me+goodnesting@blah.com";}
128     }
129  }
130
131#ALLOF(and)
132if allof(false, false)
133{redirect "me+badallof(ff)@blah.com";}
134else
135{redirect "me+goodallof@blah.com";}
136
137if allof(false, true)
138{redirect "me+badallof(ft)@blah.com";}
139else
140{redirect "me+goodallof@blah.com";}
141
142if allof(true, false)
143{redirect "me+badallof(tf)@blah.com";}
144else
145{redirect "me+goodallof@blah.com";}
146
147if allof(true, true)
148{redirect "me+goodallof@blah.com";}
149else
150{redirect "me+badallof(tt)@blah.com";}
151
152#ANYOF(or)
153if anyof(false, false)
154{redirect "me+badanyof(ff)@blah.com";}
155else
156{redirect "me+goodanyof@blah.com";}
157
158if anyof(false,true)
159{redirect "me+goodanyof@blah.com";}
160else
161{redirect "me+badanyof(ft)@blah.com";}
162
163if anyof(true, false)
164{redirect "me+goodanyof@blah.com";}
165else
166{redirect "me+badanyof(tf)@blah.com";}
167
168if anyof(true, true)
169{redirect "me+goodanyof@blah.com";}
170else
171{redirect "me+badanyof(tt)@blah.com";}
172