2 test_description='named queries'
3 . $(dirname "$0")/test-lib.sh || exit 1
5 QUERYSTR="date:2009-11-18..2009-11-18 and tag:unread"
7 test_begin_subtest "error adding named query before initializing DB"
8 test_expect_code 1 "notmuch config set query.test \"$QUERYSTR\""
12 test_begin_subtest "adding named query"
13 test_expect_success "notmuch config set query.test \"$QUERYSTR\""
15 test_begin_subtest "adding nested named query"
16 QUERYSTR2="query:test and subject:Maildir"
17 test_expect_success "notmuch config set query.test2 \"$QUERYSTR2\""
19 test_begin_subtest "retrieve named query"
20 output=$(notmuch config get query.test)
21 test_expect_equal "$QUERYSTR" "$output"
23 test_begin_subtest "List all queries"
24 notmuch config list | grep ^query | notmuch_config_sanitize > OUTPUT
26 query.test=date:2009-11-18..2009-11-18 and tag:unread
27 query.test2=query:test and subject:Maildir
29 test_expect_equal_file EXPECTED OUTPUT
31 test_begin_subtest "dump named queries"
32 notmuch dump | grep '^#@' > OUTPUT
33 cat<<EOF > QUERIES.BEFORE
34 #@ query.test date%3a2009-11-18..2009-11-18%20and%20tag%3aunread
35 #@ query.test2 query%3atest%20and%20subject%3aMaildir
37 test_expect_equal_file QUERIES.BEFORE OUTPUT
39 test_begin_subtest 'dumping large queries'
40 test_subtest_known_broken
41 # This value is just large enough to trigger a limitation of gzprintf
42 # to 8191 bytes in total (by default).
44 notmuch config set query.big "$(seq -s' ' $repeat)"
45 notmuch dump --include=config > OUTPUT
46 notmuch config set query.big ''
47 printf "#notmuch-dump batch-tag:3 config\n#@ query.big " > EXPECTED
48 seq -s'%20' $repeat >> EXPECTED
50 #@ query.test date%3a2009-11-18..2009-11-18%20and%20tag%3aunread
51 #@ query.test2 query%3atest%20and%20subject%3aMaildir
53 test_expect_equal_file EXPECTED OUTPUT
55 test_begin_subtest "delete named queries"
57 notmuch config set query.test
58 notmuch dump | grep '^#@' > OUTPUT
60 #@ query.test2 query%3atest%20and%20subject%3aMaildir
62 test_expect_equal_file EXPECTED OUTPUT
64 test_begin_subtest "restore named queries"
65 notmuch restore < BEFORE
66 notmuch dump | grep '^#@' > OUTPUT
67 test_expect_equal_file QUERIES.BEFORE OUTPUT
69 test_begin_subtest "search named query"
70 notmuch search query:test > OUTPUT
71 notmuch search $QUERYSTR > EXPECTED
72 if [ $NOTMUCH_HAVE_XAPIAN_FIELD_PROCESSOR -ne 1 ]; then
73 test_subtest_known_broken
75 test_expect_equal_file EXPECTED OUTPUT
77 test_begin_subtest "search named query with other terms"
78 notmuch search query:test and subject:Maildir > OUTPUT
79 notmuch search $QUERYSTR and subject:Maildir > EXPECTED
80 if [ $NOTMUCH_HAVE_XAPIAN_FIELD_PROCESSOR -ne 1 ]; then
81 test_subtest_known_broken
83 test_expect_equal_file EXPECTED OUTPUT
85 test_begin_subtest "search nested named query"
86 notmuch search query:test2 > OUTPUT
87 notmuch search $QUERYSTR2 > EXPECTED
88 test_expect_equal_file EXPECTED OUTPUT