test: renamed test scripts to format T\d\d\d-name.sh
[notmuch] / test / T270-author-order.sh
1 #!/usr/bin/env bash
2 test_description="author reordering;"
3 . ./test-lib.sh
4
5 test_begin_subtest "Adding parent message"
6 generate_message [body]=findme [id]=new-parent-id [subject]=author-reorder-threadtest '[from]="User <user@example.com>"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
7 output=$(NOTMUCH_NEW)
8 test_expect_equal "$output" "Added 1 new message to the database."
9
10 test_begin_subtest "Adding initial child message"
11 generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest '[from]="User1 <user1@example.com>"' '[date]="Sat, 01 Jan 2000 12:01:00 -0000"'
12 output=$(NOTMUCH_NEW)
13 test_expect_equal "$output" "Added 1 new message to the database."
14
15 test_begin_subtest "Adding second child message"
16 generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest '[from]="User2 <user2@example.com>"' '[date]="Sat, 01 Jan 2000 12:02:00 -0000"'
17 output=$(NOTMUCH_NEW)
18 test_expect_equal "$output" "Added 1 new message to the database."
19
20 test_begin_subtest "Searching when all three messages match"
21 output=$(notmuch search findme | notmuch_search_sanitize)
22 test_expect_equal "$output" "thread:XXX   2000-01-01 [3/3] User, User1, User2; author-reorder-threadtest (inbox unread)"
23
24 test_begin_subtest "Searching when two messages match"
25 output=$(notmuch search User1 or User2 | notmuch_search_sanitize)
26 test_expect_equal "$output" "thread:XXX   2000-01-01 [2/3] User1, User2| User; author-reorder-threadtest (inbox unread)"
27
28 test_begin_subtest "Searching when only one message matches"
29 output=$(notmuch search User2 | notmuch_search_sanitize)
30 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/3] User2| User, User1; author-reorder-threadtest (inbox unread)"
31
32 test_begin_subtest "Searching when only first message matches"
33 output=$(notmuch search User | notmuch_search_sanitize)
34 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/3] User| User1, User2; author-reorder-threadtest (inbox unread)"
35
36 test_begin_subtest "Adding duplicate author"
37 generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest '[from]="User1 <user1@example.com>"' '[date]="Sat, 01 Jan 2000 12:03:00 -0000"'
38 output=$(NOTMUCH_NEW)
39 test_expect_equal "$output" "Added 1 new message to the database."
40
41 test_begin_subtest "Searching when all four messages match"
42 output=$(notmuch search findme | notmuch_search_sanitize)
43 test_expect_equal "$output" "thread:XXX   2000-01-01 [4/4] User, User1, User2; author-reorder-threadtest (inbox unread)"
44
45 test_begin_subtest "Adding non-monotonic child message"
46 generate_message [body]=findme "[in-reply-to]=\<new-parent-id\>" [subject]=author-reorder-threadtest '[from]="User0 <user0@example.com>"' '[date]="Sat, 01 Jan 2000 11:00:00 -0000"'
47 output=$(NOTMUCH_NEW)
48 test_expect_equal "$output" "Added 1 new message to the database."
49
50 test_begin_subtest "Searching non-monotonic messages (oldest-first)"
51 output=$(notmuch search --sort=oldest-first findme | notmuch_search_sanitize)
52 test_expect_equal "$output" "thread:XXX   2000-01-01 [5/5] User0, User, User1, User2; author-reorder-threadtest (inbox unread)"
53
54 test_begin_subtest "Searching non-monotonic messages (newest-first)"
55 output=$(notmuch search --sort=newest-first findme | notmuch_search_sanitize)
56 test_expect_equal "$output" "thread:XXX   2000-01-01 [5/5] User0, User, User1, User2; author-reorder-threadtest (inbox unread)"
57
58 test_done