]> git.donarmstrong.com Git - roundcube.git/blobdiff - plugins/managesieve/tests/parser.phpt
Imported Upstream version 0.7
[roundcube.git] / plugins / managesieve / tests / parser.phpt
index a3b820d45422b5d0161d5957646545b8224fec43..aec042187436e9c0ecfd6a2e7fab3a6d03d5d2fc 100644 (file)
@@ -3,10 +3,10 @@ Main test of script parser
 --SKIPIF--
 --FILE--
 <?php
-include('../lib/rcube_sieve.php');
+include '../lib/rcube_sieve_script.php';
 
 $txt = '
-require ["fileinto","vacation","reject","relational","comparator-i;ascii-numeric"];
+require ["fileinto","reject","envelope"];
 # rule:[spam]
 if anyof (header :contains "X-DSPAM-Result" "Spam")
 {
@@ -14,28 +14,17 @@ if anyof (header :contains "X-DSPAM-Result" "Spam")
        stop;
 }
 # rule:[test1]
-if anyof (header :contains ["From","To"] "test@domain.tld")
+if anyof (header :comparator "i;ascii-casemap" :contains ["From","To"] "test@domain.tld")
 {
        discard;
        stop;
 }
 # rule:[test2]
-if anyof (not header :contains ["Subject"] "[test]", header :contains "Subject" "[test2]")
+if anyof (not header :comparator "i;octet" :contains ["Subject"] "[test]", header :contains "Subject" "[test2]")
 {
        fileinto "test";
        stop;
 }
-# rule:[test-vacation]
-if anyof (header :contains "Subject" "vacation")
-{
-       vacation :days 1 text:
-# test
-test test /* test */
-test
-.
-;
-       stop;
-}
 # rule:[comments]
 if anyof (true) /* comment
  * "comment" #comment */ {
@@ -44,19 +33,40 @@ if anyof (true) /* comment
 }
 # rule:[reject]
 if size :over 5000K {
-    reject "Message over 5MB size limit. Please contact me before sending this.";
+       reject "Message over 5MB size limit. Please contact me before sending this.";
+}
+# rule:[false]
+if false # size :over 5000K
+{
+       stop; /* rule disabled */
+}
+# rule:[true]
+if true
+{
+       stop;
+}
+fileinto "Test";
+# rule:[address test]
+if address :all :is "From" "nagios@domain.tld"
+{
+       fileinto "domain.tld";
+       stop;
+}
+# rule:[envelope test]
+if envelope :domain :is "From" "domain.tld"
+{
+       fileinto "domain.tld";
+       stop;
 }
-# rule:[redirect]
-if header :value "ge" :comparator "i;ascii-numeric"
-    ["X-Spam-score"] ["14"] {redirect "test@test.tld";}
 ';
 
 $s = new rcube_sieve_script($txt);
 echo $s->as_text();
 
+// -------------------------------------------------------------------------------
 ?>
 --EXPECT--
-require ["fileinto","vacation","reject","relational","comparator-i;ascii-numeric"];
+require ["fileinto","reject","envelope"];
 # rule:[spam]
 if header :contains "X-DSPAM-Result" "Spam"
 {
@@ -70,22 +80,11 @@ if header :contains ["From","To"] "test@domain.tld"
        stop;
 }
 # rule:[test2]
-if anyof (not header :contains "Subject" "[test]", header :contains "Subject" "[test2]")
+if anyof (not header :comparator "i;octet" :contains "Subject" "[test]", header :contains "Subject" "[test2]")
 {
        fileinto "test";
        stop;
 }
-# rule:[test-vacation]
-if header :contains "Subject" "vacation"
-{
-       vacation :days 1 text:
-# test
-test test /* test */
-test
-.
-;
-       stop;
-}
 # rule:[comments]
 if true
 {
@@ -96,8 +95,26 @@ if size :over 5000K
 {
        reject "Message over 5MB size limit. Please contact me before sending this.";
 }
-# rule:[redirect]
-if header :value "ge" :comparator "i;ascii-numeric" "X-Spam-score" "14"
+# rule:[false]
+if false # size :over 5000K
+{
+       stop;
+}
+# rule:[true]
+if true
 {
-       redirect "test@test.tld";
+       stop;
+}
+fileinto "Test";
+# rule:[address test]
+if address :all :is "From" "nagios@domain.tld"
+{
+       fileinto "domain.tld";
+       stop;
+}
+# rule:[envelope test]
+if envelope :domain :is "From" "domain.tld"
+{
+       fileinto "domain.tld";
+       stop;
 }