summaryrefslogtreecommitdiffstats
path: root/pigeonhole/tests/extensions/metadata/execute.svtest
diff options
context:
space:
mode:
Diffstat (limited to 'pigeonhole/tests/extensions/metadata/execute.svtest')
-rw-r--r--pigeonhole/tests/extensions/metadata/execute.svtest145
1 files changed, 145 insertions, 0 deletions
diff --git a/pigeonhole/tests/extensions/metadata/execute.svtest b/pigeonhole/tests/extensions/metadata/execute.svtest
new file mode 100644
index 0000000..32aac82
--- /dev/null
+++ b/pigeonhole/tests/extensions/metadata/execute.svtest
@@ -0,0 +1,145 @@
+require "vnd.dovecot.testsuite";
+require "mboxmetadata";
+require "servermetadata";
+require "fileinto";
+
+test "MetadataExists - None exist" {
+ if metadataexists "INBOX" "/private/frop" {
+ test_fail "metadataexists confirms existence of unknown annotation";
+ }
+}
+
+test_imap_metadata_set :mailbox "INBOX" "/private/frop" "FROP!";
+test_imap_metadata_set :mailbox "INBOX" "/private/friep" "FRIEP!";
+
+test "MetadataExists - Not all exist" {
+ if metadataexists "INBOX"
+ ["/private/frop", "/private/friep", "/private/frml"] {
+ test_fail "metadataexists confirms existence of unknown annotation";
+ }
+}
+
+test_imap_metadata_set :mailbox "INBOX" "/private/friep" "FRIEP!";
+test_imap_metadata_set :mailbox "INBOX" "/private/frml" "FRML!";
+
+test "MetadataExists - One exists" {
+ if not metadataexists "INBOX" ["/private/frop"] {
+ test_fail "metadataexists fails to recognize annotation";
+ }
+}
+
+test "MetadataExists - All exist" {
+ if not metadataexists "INBOX"
+ ["/private/frop", "/private/friep", "/private/frml"] {
+ test_fail "metadataexists fails to recognize annotations";
+ }
+}
+
+test "MetadataExists - Invalid" {
+ if metadataexists "INBOX"
+ ["/shared/frop", "/friep", "/private/frml"] {
+ test_fail "metadataexists accepted invalid annotation name";
+ }
+}
+
+test "Metadata" {
+ if not metadata :is "INBOX" "/private/frop" "FROP!" {
+ test_fail "invalid metadata value for /private/frop";
+ }
+ if metadata :is "INBOX" "/private/frop" "Hutsefluts" {
+ test_fail "unexpected match for /private/frop";
+ }
+
+ if not metadata :is "INBOX" "/private/friep" "FRIEP!" {
+ test_fail "invalid metadata value for /private/friep";
+ }
+ if metadata :is "INBOX" "/private/friep" "Hutsefluts" {
+ test_fail "unexpected match for /private/friep";
+ }
+
+ if not metadata :is "INBOX" "/private/frml" "FRML!" {
+ test_fail "invalid metadata value for /private/frml";
+ }
+ if metadata :is "INBOX" "/private/frml" "Hutsefluts" {
+ test_fail "unexpected match for /private/frml";
+ }
+}
+
+test "Metadata - Invalid" {
+ if metadata :contains "INBOX" "/frop" "" {
+ test_fail "erroneously found a value for \"/frop\"";
+ }
+}
+
+test "ServermetadataExists - None exist" {
+ if servermetadataexists "/private/frop" {
+ test_fail "servermetadataexists confirms existence of unknown annotation";
+ }
+}
+
+# currently not possible to test servermetadata
+if false {
+
+test_imap_metadata_set "/private/frop" "FROP!";
+test_imap_metadata_set "/private/friep" "FRIEP!";
+
+test "ServermetadataExists - Not all exist" {
+ if servermetadataexists
+ ["/private/frop", "/private/friep", "/private/frml"] {
+ test_fail "metadataexists confirms existence of unknown annotation";
+ }
+}
+
+test_imap_metadata_set "/private/friep" "FRIEP!";
+test_imap_metadata_set "/private/frml" "FRML!";
+
+test "ServermetadataExists - One exists" {
+ if not servermetadataexists ["/private/frop"] {
+ test_fail "servermetadataexists fails to recognize annotation";
+ }
+}
+
+test "ServermetadataExists - All exist" {
+ if not servermetadataexists
+ ["/private/frop", "/private/friep", "/private/frml"] {
+ test_fail "servermetadataexists fails to recognize annotations";
+ }
+}
+
+test "ServermetadataExists - Invalid" {
+ if servermetadataexists
+ ["frop", "/private/friep", "/private/frml"] {
+ test_fail "servermetadataexists accepted invalid annotation name";
+ }
+}
+
+test "Servermetadata" {
+ if not servermetadata :is "/private/frop" "FROP!" {
+ test_fail "invalid servermetadata value for /private/frop";
+ }
+ if servermetadata :is "/private/frop" "Hutsefluts" {
+ test_fail "unexpected match for /private/frop";
+ }
+
+ if not servermetadata :is "/private/friep" "FRIEP!" {
+ test_fail "invalid servermetadata value for /private/friep";
+ }
+ if servermetadata :is "/private/friep" "Hutsefluts" {
+ test_fail "unexpected match for /private/friep";
+ }
+
+ if not servermetadata :is "/private/frml" "FRML!" {
+ test_fail "invalid servermetadata value for /private/frml";
+ }
+ if servermetadata :is "/private/frml" "Hutsefluts" {
+ test_fail "unexpected match for /private/frml";
+ }
+}
+
+test "Servermetadata - Invalid" {
+ if servermetadata :contains "/frop" "" {
+ test_fail "erroneously found a value for \"/frop\"";
+ }
+}
+
+} #disabled