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 certainly 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 everything 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