X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2Ftagging;h=405ad7cd0b50f391dc6a98164ca6e4016df93d43;hb=e77a99f44e47951bb1a0bb2d8a5840f8cfabac3d;hp=77202bf98ff19084312364e655a8fdad6f493125;hpb=ed20210b6db0b237d48765351cb99b87be7a0509;p=notmuch diff --git a/test/tagging b/test/tagging index 77202bf9..405ad7cd 100755 --- a/test/tagging +++ b/test/tagging @@ -38,4 +38,102 @@ test_expect_equal "$output" "\ thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; One (:\" inbox tag1 unread) thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Two (inbox tag1 unread)" +test_begin_subtest "Tagging order" +notmuch tag +tag4 -tag4 One +notmuch tag -tag4 +tag4 Two +output=$(notmuch search \* | notmuch_search_sanitize) +test_expect_equal "$output" "\ +thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; One (:\" inbox tag1 unread) +thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Two (inbox tag1 tag4 unread)" + +test_begin_subtest "--batch" +notmuch tag --batch < batch.in < batch.expected < backup.tags +notmuch tag --input=batch.in +notmuch search \* | notmuch_search_sanitize > OUTPUT +notmuch restore --format=batch-tag < backup.tags +test_expect_equal_file batch.expected OUTPUT + +test_begin_subtest "--batch --input" +notmuch dump --format=batch-tag > backup.tags +notmuch tag --batch --input=batch.in +notmuch search \* | notmuch_search_sanitize > OUTPUT +notmuch restore --format=batch-tag < backup.tags +test_expect_equal_file batch.expected OUTPUT + +test_begin_subtest "--batch, blank lines and comments" +notmuch dump | sort > EXPECTED +notmuch tag --batch < OUTPUT +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest '--batch: checking error messages' +notmuch dump --format=batch-tag > BACKUP +notmuch tag --batch <OUTPUT +# the next line has a space + +# this line has no tag operations, but this is permitted in batch format. +a ++0 ++a +b +# trailing whitespace ++a +b ++c +d -- +# this is a harmless comment, do not yell about it. + +# the previous line was blank; also no yelling please ++%zz -- id:whatever +# the next non-comment line should report an an empty tag error for +# batch tagging, but not for restore ++ +e -- id:foo ++- -- id:foo +EOF + +cat < EXPECTED +Warning: no query string [+0] +Warning: no query string [+a +b] +Warning: missing query string [+a +b ] +Warning: no query string after -- [+c +d --] +Warning: hex decoding of tag %zz failed [+%zz -- id:whatever] +Warning: empty tag forbidden [+ +e -- id:foo] +Warning: tag starting with '-' forbidden [+- -- id:foo] +EOF + +notmuch restore --format=batch-tag < BACKUP +test_expect_equal_file EXPECTED OUTPUT + +test_expect_code 1 "Empty tag names" 'notmuch tag + One' + +test_expect_code 1 "Tag name beginning with -" 'notmuch tag +- One' + test_done