From 14d951b7361f79cc09207aa77dd83bf069609338 Mon Sep 17 00:00:00 2001 From: alec Date: Sun, 23 Jan 2011 08:26:17 +0000 Subject: - Rewritten sieve script parser, added tests git-svn-id: https://svn.roundcube.net/trunk@4447 208e9e7b-5314-0410-a742-e7e81cd9613c --- plugins/managesieve/tests/Makefile | 7 +++ plugins/managesieve/tests/parser.phpt | 86 +++++++++++++++++++++++++++++++++ plugins/managesieve/tests/tokenize.phpt | 63 ++++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 plugins/managesieve/tests/Makefile create mode 100644 plugins/managesieve/tests/parser.phpt create mode 100644 plugins/managesieve/tests/tokenize.phpt (limited to 'plugins/managesieve/tests') diff --git a/plugins/managesieve/tests/Makefile b/plugins/managesieve/tests/Makefile new file mode 100644 index 000000000..072be2f2c --- /dev/null +++ b/plugins/managesieve/tests/Makefile @@ -0,0 +1,7 @@ + +clean: + rm -f *.log *.php *.diff *.exp *.out + + +test: + pear run-tests *.phpt diff --git a/plugins/managesieve/tests/parser.phpt b/plugins/managesieve/tests/parser.phpt new file mode 100644 index 000000000..27952eb1f --- /dev/null +++ b/plugins/managesieve/tests/parser.phpt @@ -0,0 +1,86 @@ +--TEST-- +Main test of script parser +--SKIPIF-- +--FILE-- +as_text(); + +?> +--EXPECT-- +require ["fileinto","vacation"]; +# rule:[spam] +if anyof (header :contains "X-DSPAM-Result" "Spam") +{ + fileinto "Spam"; + stop; +} +# rule:[test1] +if anyof (header :contains ["From","To"] "test@domain.tld") +{ + fileinto "roundcube-trac"; + stop; +} +# rule:[test2] +if anyof (not header :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) +{ + stop; +} diff --git a/plugins/managesieve/tests/tokenize.phpt b/plugins/managesieve/tests/tokenize.phpt new file mode 100644 index 000000000..6b3531e2c --- /dev/null +++ b/plugins/managesieve/tests/tokenize.phpt @@ -0,0 +1,63 @@ +--TEST-- +Script parsing: tokenizer +--SKIPIF-- +--FILE-- + $t) { + echo "[$idx]---------------\n"; + var_dump(rcube_sieve_script::tokenize($t[1], $t[0])); +} +?> +--EXPECT-- +[1]--------------- +string(34) "This is test ; message; +Multi line" +[2]--------------- +array(1) { + [0]=> + array(2) { + [0]=> + string(5) "test1" + [1]=> + string(5) "test2" + } +} +[3]--------------- +array(1) { + [0]=> + string(4) "test" +} +[4]--------------- +string(5) "te"st" +[5]--------------- +array(1) { + [0]=> + string(4) "test" +} +[6]--------------- +array(2) { + [0]=> + string(4) "test" + [1]=> + string(4) "test" +} \ No newline at end of file -- cgit v1.2.3