require "vnd.dovecot.testsuite"; require "notify"; require "envelope"; /* * Denotify all */ test_set "message" text: From: stephan@example.org To: nico@frop.example.org Subject: Frop! Klutsefluts. . ; test "Denotify All" { notify :options "timo@example.com"; notify :options "stephan@dovecot.example.net"; notify :options "postmaster@frop.example.org"; denotify; if not test_result_execute { test_fail "failed to execute notify"; } if test_message :smtp 0 { test_fail "no notifications should have been sent"; } } /* * Denotify First */ test_result_reset; test_set "message" text: From: stephan@example.org To: nico@frop.example.org Subject: Frop! Klutsefluts. . ; test "Denotify ID First" { /* #1 */ notify :options "timo@example.com" :id "aap"; /* #2 */ notify :options "stephan@dovecot.example.net" :id "noot"; /* #3 */ notify :options "postmaster@frop.example.org" :id "mies"; denotify :is "aap"; if not test_result_execute { test_fail "failed to execute notify"; } if not test_message :smtp 0 { test_fail "two notifications should have been sent (#2 missing)"; } if not envelope "to" "stephan@dovecot.example.net" { test_fail "message #2 unexpectedly missing from output"; } if not test_message :smtp 1 { test_fail "two notifications should have been sent (#3 missing)"; } if not envelope "to" "postmaster@frop.example.org" { test_fail "message #3 unexpectedly missing from output"; } if test_message :smtp 2 { test_fail "too many notifications sent"; } } /* * Denotify Middle */ test_result_reset; test_set "message" text: From: stephan@example.org To: nico@frop.example.org Subject: Frop! Klutsefluts. . ; test "Denotify ID Middle" { /* #1 */ notify :options "timo@example.com" :id "aap"; /* #2 */ notify :options "stephan@dovecot.example.net" :id "noot"; /* #3 */ notify :options "postmaster@frop.example.org" :id "mies"; denotify :is "noot"; if not test_result_execute { test_fail "failed to execute notify"; } if not test_message :smtp 0 { test_fail "two notifications should have been sent (#1 missing)"; } if not envelope "to" "timo@example.com" { test_fail "message #1 unexpectedly missing from output"; } if not test_message :smtp 1 { test_fail "two notifications should have been sent (#3 missing)"; } if not envelope "to" "postmaster@frop.example.org" { test_fail "message #3 unexpectedly missing from output"; } if test_message :smtp 2 { test_fail "too many notifications sent"; } } /* * Denotify Last */ test_result_reset; test_set "message" text: From: stephan@example.org To: nico@frop.example.org Subject: Frop! Klutsefluts. . ; test "Denotify ID Last" { /* #1 */ notify :options "timo@example.com" :id "aap"; /* #2 */ notify :options "stephan@dovecot.example.net" :id "noot"; /* #3 */ notify :options "postmaster@frop.example.org" :id "mies"; denotify :is "mies"; if not test_result_execute { test_fail "failed to execute notify"; } if not test_message :smtp 0 { test_fail "two notifications should have been sent (#1 missing)"; } if not envelope "to" "timo@example.com" { test_fail "message #1 unexpectedly missing from output"; } if not test_message :smtp 1 { test_fail "two notifications should have been sent (#2 missing)"; } if not envelope "to" "stephan@dovecot.example.net" { test_fail "message #2 unexpectedly missing from output"; } if test_message :smtp 2 { test_fail "too many notifications sent"; } } /* * Denotify Matching */ test_result_reset; test_set "message" text: From: stephan@example.org To: nico@frop.example.org Subject: Frop! Klutsefluts. . ; test "Denotify Matching" { /* #1 */ notify :options "timo@example.com" :id "frop"; /* #2 */ notify :options "stephan@dovecot.example.net" :id "noot"; /* #3 */ notify :options "postmaster@frop.example.org" :id "friep"; denotify :matches "fr*"; if not test_result_execute { test_fail "failed to execute notify"; } if not test_message :smtp 0 { test_fail "one notification should have been sent"; } if not envelope "to" "stephan@dovecot.example.net" { test_fail "message #2 unexpectedly missing from output"; } if test_message :smtp 1 { test_fail "too many notifications sent"; } } /* * Denotify Matching */ test_result_reset; test_set "message" text: From: stephan@example.org To: nico@frop.example.org Subject: Frop! Klutsefluts. . ; test "Denotify Matching Importance" { /* #1 */ notify :options "timo@example.com" :id "frop" :low; /* #2 */ notify :options "stephan@dovecot.example.net" :id "frml" :high; /* #3 */ notify :options "postmaster@frop.example.org" :id "friep" :low; denotify :matches "fr*" :low; if not test_result_execute { test_fail "failed to execute notify"; } if not test_message :smtp 0 { test_fail "one notification should have been sent"; } if not envelope "to" "stephan@dovecot.example.net" { test_fail "message #2 unexpectedly missing from output"; } if test_message :smtp 1 { test_fail "too many notifications sent"; } }