summaryrefslogtreecommitdiffstats
path: root/test/t2500-notify.t
diff options
context:
space:
mode:
authorFrédéric Mangano-Tarumi <fmang@mg0.fr>2020-02-23 19:53:13 +0100
committerLukas Fleischer <lfleischer@archlinux.org>2020-02-27 16:44:36 +0100
commite374a91febe53b72ff4cb73b153348f067374c68 (patch)
tree038973590aace5ba4f4899cc256d843ef2505867 /test/t2500-notify.t
parent81d55e70ee0469018af86d203ceaf2fece691ea8 (diff)
downloadaur-e374a91febe53b72ff4cb73b153348f067374c68.tar.gz
aur-e374a91febe53b72ff4cb73b153348f067374c68.tar.xz
Change the extension of TAP test suites to .t
This is the common convention for TAP, and makes harnesses like prove automatically detect them. Plus, test suites don’t have to be shell scripts anymore. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'test/t2500-notify.t')
-rwxr-xr-xtest/t2500-notify.t404
1 files changed, 404 insertions, 0 deletions
diff --git a/test/t2500-notify.t b/test/t2500-notify.t
new file mode 100755
index 00000000..380e65b8
--- /dev/null
+++ b/test/t2500-notify.t
@@ -0,0 +1,404 @@
+#!/bin/sh
+
+test_description='notify tests'
+
+. ./setup.sh
+
+test_expect_success 'Test out-of-date notifications.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ /* Use package base IDs which can be distinguished from user IDs. */
+ INSERT INTO PackageBases (ID, Name, MaintainerUID, SubmittedTS, ModifiedTS, FlaggerComment) VALUES (1001, "foobar", 1, 0, 0, "This is a test OOD comment.");
+ INSERT INTO PackageBases (ID, Name, MaintainerUID, SubmittedTS, ModifiedTS, FlaggerComment) VALUES (1002, "foobar2", 2, 0, 0, "");
+ INSERT INTO PackageBases (ID, Name, MaintainerUID, SubmittedTS, ModifiedTS, FlaggerComment) VALUES (1003, "foobar3", NULL, 0, 0, "");
+ INSERT INTO PackageBases (ID, Name, MaintainerUID, SubmittedTS, ModifiedTS, FlaggerComment) VALUES (1004, "foobar4", 1, 0, 0, "");
+ INSERT INTO PackageComaintainers (PackageBaseID, UsersID, Priority) VALUES (1001, 2, 1);
+ INSERT INTO PackageComaintainers (PackageBaseID, UsersID, Priority) VALUES (1001, 4, 2);
+ INSERT INTO PackageComaintainers (PackageBaseID, UsersID, Priority) VALUES (1002, 3, 1);
+ INSERT INTO PackageComaintainers (PackageBaseID, UsersID, Priority) VALUES (1002, 5, 2);
+ INSERT INTO PackageComaintainers (PackageBaseID, UsersID, Priority) VALUES (1003, 4, 1);
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" flag 1 1001 &&
+ cat <<-EOD >expected &&
+ Subject: AUR Out-of-date Notification for foobar
+ To: tu@localhost
+ Subject: AUR Out-of-date Notification for foobar
+ To: user2@localhost
+ Subject: AUR Out-of-date Notification for foobar
+ To: user@localhost
+ EOD
+ grep "^\(Subject\|To\)" sendmail.out >sendmail.parts &&
+ test_cmp sendmail.parts expected &&
+ cat <<-EOD | sqlite3 aur.db
+ DELETE FROM PackageComaintainers;
+ EOD
+'
+
+test_expect_success 'Test subject and body of reset key notifications.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ UPDATE Users SET ResetKey = "12345678901234567890123456789012" WHERE ID = 1;
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" send-resetkey 1 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Password Reset
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ A password reset request was submitted for the account user associated
+ with your email address. If you wish to reset your password follow the
+ link [1] below, otherwise ignore this message and nothing will happen.
+
+ [1] https://aur.archlinux.org/passreset/?resetkey=12345678901234567890123456789012
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of welcome notifications.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ UPDATE Users SET ResetKey = "12345678901234567890123456789012" WHERE ID = 1;
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" welcome 1 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: Welcome to the Arch User Repository
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ Welcome to the Arch User Repository! In order to set an initial
+ password for your new account, please click the link [1] below. If the
+ link does not work, try copying and pasting it into your browser.
+
+ [1] https://aur.archlinux.org/passreset/?resetkey=12345678901234567890123456789012
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of comment notifications.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ /* Use package comments IDs which can be distinguished from other IDs. */
+ INSERT INTO PackageComments (ID, PackageBaseID, UsersID, Comments, RenderedComment) VALUES (2001, 1001, 1, "This is a test comment.", "This is a test comment.");
+ INSERT INTO PackageNotifications (PackageBaseID, UserID) VALUES (1001, 2);
+ UPDATE Users SET CommentNotify = 1 WHERE ID = 2;
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" comment 1 1001 2001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Comment for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ user [1] added the following comment to foobar [2]:
+
+ This is a test comment.
+
+ --
+ If you no longer wish to receive notifications about this package,
+ please go to the package page [2] and select "Disable notifications".
+
+ [1] https://aur.archlinux.org/account/user/
+ [2] https://aur.archlinux.org/pkgbase/foobar/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of update notifications.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ UPDATE Users SET UpdateNotify = 1 WHERE ID = 2;
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" update 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Package Update: foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ user [1] pushed a new commit to foobar [2].
+
+ --
+ If you no longer wish to receive notifications about this package,
+ please go to the package page [2] and select "Disable notifications".
+
+ [1] https://aur.archlinux.org/account/user/
+ [2] https://aur.archlinux.org/pkgbase/foobar/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of out-of-date notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" flag 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Out-of-date Notification for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ Your package foobar [1] has been flagged out-of-date by user [2]:
+
+ This is a test OOD comment.
+
+ [1] https://aur.archlinux.org/pkgbase/foobar/
+ [2] https://aur.archlinux.org/account/user/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of adopt notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" adopt 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Ownership Notification for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ The package foobar [1] was adopted by user [2].
+
+ [1] https://aur.archlinux.org/pkgbase/foobar/
+ [2] https://aur.archlinux.org/account/user/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of disown notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" disown 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Ownership Notification for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ The package foobar [1] was disowned by user [2].
+
+ [1] https://aur.archlinux.org/pkgbase/foobar/
+ [2] https://aur.archlinux.org/account/user/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of co-maintainer addition notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" comaintainer-add 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Co-Maintainer Notification for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ You were added to the co-maintainer list of foobar [1].
+
+ [1] https://aur.archlinux.org/pkgbase/foobar/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of co-maintainer removal notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" comaintainer-remove 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Co-Maintainer Notification for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ You were removed from the co-maintainer list of foobar [1].
+
+ [1] https://aur.archlinux.org/pkgbase/foobar/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of delete notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" delete 1 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Package deleted: foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ user [1] deleted foobar [2].
+
+ You will no longer receive notifications about this package.
+
+ [1] https://aur.archlinux.org/account/user/
+ [2] https://aur.archlinux.org/pkgbase/foobar/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of merge notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" delete 1 1001 1002 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: AUR Package deleted: foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ user [1] merged foobar [2] into foobar2 [3].
+
+ --
+ If you no longer wish receive notifications about the new package,
+ please go to [3] and click "Disable notifications".
+
+ [1] https://aur.archlinux.org/account/user/
+ [2] https://aur.archlinux.org/pkgbase/foobar/
+ [3] https://aur.archlinux.org/pkgbase/foobar2/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of request open notifications.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ /* Use package request IDs which can be distinguished from other IDs. */
+ INSERT INTO PackageRequests (ID, PackageBaseID, PackageBaseName, UsersID, ReqTypeID, Comments, ClosureComment) VALUES (3001, 1001, "foobar", 1, 1, "This is a request test comment.", "");
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" request-open 1 3001 orphan 1001 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: [PRQ#3001] Orphan Request for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ user [1] filed an orphan request for foobar [2]:
+
+ This is a request test comment.
+
+ [1] https://aur.archlinux.org/account/user/
+ [2] https://aur.archlinux.org/pkgbase/foobar/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of request open notifications for merge requests.' '
+ >sendmail.out &&
+ "$NOTIFY" request-open 1 3001 merge 1001 foobar2 &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: [PRQ#3001] Merge Request for foobar
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ user [1] filed a request to merge foobar [2] into foobar2 [3]:
+
+ This is a request test comment.
+
+ [1] https://aur.archlinux.org/account/user/
+ [2] https://aur.archlinux.org/pkgbase/foobar/
+ [3] https://aur.archlinux.org/pkgbase/foobar2/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of request close notifications.' '
+ >sendmail.out &&
+ "$NOTIFY" request-close 1 3001 accepted &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: [PRQ#3001] Deletion Request for foobar Accepted
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ Request #3001 has been accepted by user [1].
+
+ [1] https://aur.archlinux.org/account/user/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of request close notifications (auto-accept).' '
+ >sendmail.out &&
+ "$NOTIFY" request-close 0 3001 accepted &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: [PRQ#3001] Deletion Request for foobar Accepted
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ Request #3001 has been accepted automatically by the Arch User
+ Repository package request system.
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of request close notifications with closure comment.' '
+ cat <<-EOD | sqlite3 aur.db &&
+ UPDATE PackageRequests SET ClosureComment = "This is a test closure comment." WHERE ID = 3001;
+ EOD
+ >sendmail.out &&
+ "$NOTIFY" request-close 1 3001 accepted &&
+ grep ^Subject: sendmail.out >actual &&
+ cat <<-EOD >expected &&
+ Subject: [PRQ#3001] Deletion Request for foobar Accepted
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ Request #3001 has been accepted by user [1]:
+
+ This is a test closure comment.
+
+ [1] https://aur.archlinux.org/account/user/
+ EOD
+ test_cmp actual expected
+'
+
+test_expect_success 'Test subject and body of TU vote reminders.' '
+ >sendmail.out &&
+ "$NOTIFY" tu-vote-reminder 1 &&
+ grep ^Subject: sendmail.out | head -1 >actual &&
+ cat <<-EOD >expected &&
+ Subject: TU Vote Reminder: Proposal 1
+ EOD
+ test_cmp actual expected &&
+ sed -n "/^\$/,\$p" sendmail.out | head -4 | base64 -d >actual &&
+ echo >>actual &&
+ cat <<-EOD >expected &&
+ Please remember to cast your vote on proposal 1 [1]. The voting period
+ ends in less than 48 hours.
+
+ [1] https://aur.archlinux.org/tu/?id=1
+ EOD
+ test_cmp actual expected
+'
+
+test_done