#!/usr/bin/env bash test_description="\"notmuch dump\" and \"notmuch restore\"" . ./test-lib.sh add_email_corpus test_expect_success 'Dumping all tags' \ 'generate_message && notmuch new && notmuch dump dump.expected' # This is rather arbitrary: it matches some of the email corpus' messages, but # not all of them. search_term=from:worth test_expect_success 'Dumping all tags to stdout' \ 'notmuch tag +ABC +DEF -- $search_term && notmuch dump > dump-ABC_DEF.expected && ! cmp dump.expected dump-ABC_DEF.expected' test_expect_success 'Clearing all tags' \ 'sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected && notmuch restore clear.expected && notmuch dump clear.actual && test_cmp clear.expected clear.actual' test_expect_success 'Accumulate original tags' \ 'notmuch tag +ABC +DEF -- $search_term && notmuch restore --accumulate < dump.expected && notmuch dump dump.actual && test_cmp dump-ABC_DEF.expected dump.actual' test_expect_success 'Restoring original tags' \ 'notmuch restore dump.expected && notmuch dump dump.actual && test_cmp dump.expected dump.actual' test_expect_success 'Restore with nothing to do' \ 'notmuch restore < dump.expected && notmuch dump > dump.actual && test_cmp dump.expected dump.actual' test_expect_success 'Restore with nothing to do, II' \ 'notmuch restore --accumulate dump.expected && notmuch dump dump.actual && test_cmp dump.expected dump.actual' test_expect_success 'Restore with nothing to do, III' \ 'notmuch restore --accumulate < clear.expected && notmuch dump dump.actual && test_cmp dump.expected dump.actual' test_expect_success 'Invalid restore invocation' \ 'test_must_fail notmuch restore dump.expected another_one' test_expect_success 'Invalid restore invocation, II' \ 'test_must_fail notmuch restore --accumulate dump.expected another_one' test_done