summaryrefslogtreecommitdiff
path: root/libsieve/tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'libsieve/tests.c')
-rw-r--r--libsieve/tests.c149
1 files changed, 149 insertions, 0 deletions
diff --git a/libsieve/tests.c b/libsieve/tests.c
new file mode 100644
index 000000000..4ab0f14f7
--- /dev/null
+++ b/libsieve/tests.c
@@ -0,0 +1,149 @@
+/* GNU mailutils - a suite of utilities for electronic mail
+ Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sieve.h>
+
+#define TAG_LOCALPART 0
+#define TAG_DOMAIN 1
+#define TAG_ALL 2
+#define TAG_COMPARATOR 3
+#define TAG_IS 4
+#define TAG_CONTAINS 5
+#define TAG_MATCHES 6
+#define TAG_REGEX 7
+#define TAG_UNDER 8
+#define TAG_OVER 9
+
+int
+sieve_test_address (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_header (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_envelope (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_size (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_true (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_false (sieve_machine_t *mach, list_t *args)
+{
+}
+
+int
+sieve_test_exists (sieve_machine_t *mach, list_t *args)
+{
+}
+
+#define ADDRESS_PART \
+ { "localpart", TAG_LOCALPART, SVT_VOID },\
+ { "domain", TAG_DOMAIN, SVT_VOID },\
+ { "all", TAG_ALL, SVT_VOID }
+
+#define MATCH_PART \
+ { "is", TAG_IS, SVT_VOID },\
+ { "contains", TAG_CONTAINS, SVT_VOID },\
+ { "matches", TAG_MATCHES, SVT_VOID },\
+ { "regex", TAG_REGEX, SVT_VOID }
+
+#define COMP_PART \
+ { "comparator", TAG_COMPARATOR, SVT_STRING }
+
+#define SIZE_PART \
+ { "under", TAG_UNDER, SVT_VOID },\
+ { "over", TAG_OVER, SVT_VOID }
+
+
+sieve_tag_def_t address_tags[] = {
+ ADDRESS_PART,
+ COMP_PART,
+ MATCH_PART,
+ { NULL }
+};
+
+sieve_data_type address_req_args[] = {
+ SVT_STRING_LIST,
+ SVT_STRING_LIST,
+ SVT_VOID
+};
+
+sieve_tag_def_t size_tags[] = {
+ SIZE_PART,
+ { NULL }
+};
+
+sieve_data_type size_req_args[] = {
+ SVT_NUMBER,
+ SVT_VOID
+};
+
+sieve_tag_def_t envelope_tags[] = {
+ COMP_PART,
+ ADDRESS_PART,
+ MATCH_PART,
+ { NULL }
+};
+
+sieve_data_type exists_req_args[] = {
+ SVT_STRING_LIST,
+ SVT_VOID
+};
+
+sieve_tag_def_t header_tags[] = {
+ COMP_PART,
+ MATCH_PART,
+ { NULL },
+};
+
+void
+sieve_register_standard_tests ()
+{
+ sieve_register_test ("false", sieve_test_false, NULL, NULL, 1);
+ sieve_register_test ("true", sieve_test_false, NULL, NULL, 1);
+ sieve_register_test ("address", sieve_test_address,
+ address_req_args, address_tags, 1);
+ sieve_register_test ("size", sieve_test_size,
+ size_req_args, size_tags, 1);
+ sieve_register_test ("envelope", sieve_test_envelope,
+ address_req_args, envelope_tags, 1);
+ sieve_register_test ("exists", sieve_test_exists,
+ exists_req_args, NULL, 1);
+ sieve_register_test ("header", sieve_test_header,
+ address_req_args, header_tags, 1);
+}

Return to:

Send suggestions and report system problems to the System administrator.