]> git.notmuchmail.org Git - notmuch/blob - test/search
test: Remove useless NOTMUCH variable (in favor of simply "notmuch")
[notmuch] / test / search
1 #!/bin/bash
2 test_description='"notmuch search" in several variations'
3 . ./test-lib.sh
4
5 test_begin_subtest "Search body"
6 add_message '[subject]="body search"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [body]=bodysearchtest
7 output=$(notmuch search bodysearchtest | notmuch_search_sanitize)
8 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)"
9
10 test_begin_subtest "Search by from:"
11 add_message '[subject]="search by from"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom
12 output=$(notmuch search from:searchbyfrom | notmuch_search_sanitize)
13 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)"
14
15 test_begin_subtest "Search by to:"
16 add_message '[subject]="search by to"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto
17 output=$(notmuch search to:searchbyto | notmuch_search_sanitize)
18 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)"
19
20 test_begin_subtest "Search by subject:"
21 add_message [subject]=subjectsearchtest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
22 output=$(notmuch search subject:subjectsearchtest | notmuch_search_sanitize)
23 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)"
24
25 test_begin_subtest "Search by id:"
26 add_message '[subject]="search by id"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
27 output=$(notmuch search id:${gen_msg_id} | notmuch_search_sanitize)
28 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)"
29
30 test_begin_subtest "Search by tag:"
31 add_message '[subject]="search by tag"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
32 notmuch tag +searchbytag id:${gen_msg_id}
33 output=$(notmuch search tag:searchbytag | notmuch_search_sanitize)
34 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)"
35
36 test_begin_subtest "Search by thread:"
37 add_message '[subject]="search by thread"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
38 thread_id=$(notmuch search id:${gen_msg_id} | sed -e "s/thread:\([a-f0-9]*\).*/\1/")
39 output=$(notmuch search thread:${thread_id} | notmuch_search_sanitize)
40 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)"
41
42 test_begin_subtest "Search body (phrase)"
43 add_message '[subject]="body search (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="body search (phrase)"'
44 add_message '[subject]="negative result"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="This phrase should not match the body search"'
45 output=$(notmuch search '"body search (phrase)"' | notmuch_search_sanitize)
46 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)"
47
48 test_begin_subtest "Search by from: (address)"
49 add_message '[subject]="search by from (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [from]=searchbyfrom@example.com
50 output=$(notmuch search from:searchbyfrom@example.com | notmuch_search_sanitize)
51 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)"
52
53 test_begin_subtest "Search by from: (name)"
54 add_message '[subject]="search by from (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]="Search By From Name <test@example.com>"'
55 output=$(notmuch search from:"Search By From Name" | notmuch_search_sanitize)
56 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)"
57
58 test_begin_subtest "Search by to: (address)"
59 add_message '[subject]="search by to (address)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' [to]=searchbyto@example.com
60 output=$(notmuch search to:searchbyto@example.com | notmuch_search_sanitize)
61 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)"
62
63 test_begin_subtest "Search by to: (name)"
64 add_message '[subject]="search by to (name)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[to]="Search By To Name <test@example.com>"'
65 output=$(notmuch search to:"Search By To Name" | notmuch_search_sanitize)
66 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)"
67
68 test_begin_subtest "Search by subject: (phrase)"
69 add_message '[subject]="subject search test (phrase)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
70 add_message '[subject]="this phrase should not match the subject search test"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"'
71 output=$(notmuch search 'subject:"subject search test (phrase)"' | notmuch_search_sanitize)
72 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)"
73
74 test_begin_subtest 'Search for all messages ("*"
75 output=$(notmuch search '*' | notmuch_search_sanitize)
76 test_expect_equal):' "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (inbox unread)
77 thread:XXX   2000-01-01 [1/1] searchbyfrom; search by from (inbox unread)
78 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (inbox unread)
79 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subjectsearchtest (inbox unread)
80 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by id (inbox unread)
81 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by tag (inbox searchbytag unread)
82 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by thread (inbox unread)
83 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; body search (phrase) (inbox unread)
84 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; negative result (inbox unread)
85 thread:XXX   2000-01-01 [1/1] searchbyfrom@example.com; search by from (address) (inbox unread)
86 thread:XXX   2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread)
87 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (address) (inbox unread)
88 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; search by to (name) (inbox unread)
89 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; subject search test (phrase) (inbox unread)
90 thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; this phrase should not match the subject search test (inbox unread)"
91
92 test_begin_subtest "Search body (utf-8):"
93 add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[body]="message body utf8: bödý"'
94 output=$(notmuch search "bödý" | notmuch_search_sanitize)
95 test_expect_equal "$output" "thread:XXX   2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
96
97 test_done