Signed-off-by: Michal Sojka <sojk...@fel.cvut.cz> --- test/t0006-maildir.sh | 113 +++++++++++++++++++++++++++++++++++++++++++++++++ test/test-lib.sh | 7 ++- 2 files changed, 118 insertions(+), 2 deletions(-) create mode 100755 test/t0006-maildir.sh
diff --git a/test/t0006-maildir.sh b/test/t0006-maildir.sh new file mode 100755 index 0000000..e584908 --- /dev/null +++ b/test/t0006-maildir.sh @@ -0,0 +1,113 @@ +#!/bin/bash + +test_description="Test maildir mailstore" + +. ./test-lib.sh + +filter_output() { + grep -v -E -e "$NOTMUCH_IGNORED_OUTPUT_REGEXP" | sed -e "$NOTMUCH_THREAD_ID_SQUELCH" +} + +filter_show() { + sed -e 's/, /,\n/g'|sed -e '/^"filename"/ s/:2,[A-Z]*//' -e '/^"tags"/d' +} + +cat >> "$NOTMUCH_CONFIG" <<EOF +[mailstore] +type=maildir +EOF + +test_expect_success "No new mail" ' +execute_expecting new "No new mail." +' +cat > expected <<EOF +Added 1 new message to the database. +EOF +test_expect_success "Add a message, no flags" ' +generate_message [subject]="\"test message\"" [date]="\"Sat, 01 Jan 2000 12:00:00 -0000\"" [filename]="\"msg-001:2,\"" && +notmuch new | filter_output > actual && +test_cmp expected actual +#emacs --eval "(gdb \"gdb --annotate=3 --args $(which notmuch) new\")" +' +cat > expected <<EOF +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; test message (inbox unread) +EOF +test_expect_success 'Search for the message' ' +notmuch search tag:inbox and tag:unread | filter_output > actual && +test_cmp expected actual +' +cat > expected <<EOF +No new mail. Detected 1 file rename. +EOF +test_expect_success 'Add seen flag' ' +mv "${gen_msg_filename}" "${gen_msg_filename}S" && +increment_mtime "$(dirname "${gen_msg_filename}")" && +notmuch new | filter_output > actual && +test_cmp expected actual +' +cat > expected <<EOF +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; test message (inbox) +EOF +test_expect_success 'Check that tags were updated' ' +notmuch search tag:inbox and not tag:unread | filter_output > actual && +test_cmp expected actual +' +cat > expected <<EOF +Added 1 new message to the database. +EOF +test_expect_success "Add a seen message" ' +generate_message [subject]="\"test message2\"" [date]="\"Sat, 01 Jan 2000 12:00:00 -0000\"" [filename]="\"msg-002:2,S\"" && +notmuch new | filter_output > actual && +test_cmp expected actual +' +cat > expected <<EOF +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; test message (inbox) +thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; test message2 (inbox) +EOF +test_expect_success 'Check that the seen message is not tagged unread' ' +notmuch search tag:inbox and not tag:unread | filter_output > actual && +test_cmp expected actual +' +test_expect_success 'Tag the seen messages as replied' ' +notmuch tag +replied -inbox tag:inbox and not tag:unread +' + +cat > expected <<EOF +msg-001:2,RS +msg-002:2,RS +EOF +test_expect_success 'Check that R flag was added (rename)' ' +ls -1 "${MAIL_DIR}" > actual && +test_cmp expected actual +' +echo -n '[[[{"id": "msg-...@notmuch-test-suite", +"match": true, +"filename": "/home/wsh/src/notmuch/test/trash directory.t0006-maildir/mail/msg-001", +"headers": {"Subject": "test message", +"From": "Notmuch Test Suite <test_su...@notmuchmail.org>", +"To": "Notmuch Test Suite <test_su...@notmuchmail.org>", +"Cc": "", +"Bcc": "", +"Date": "Sat, +01 Jan 2000 12:00:00 -0000"}, +"body": [{"id": 1, +"content-type": "text/plain", +"content": "This is just a test message at /home/wsh/src/notmuch/test/trash directory.t0006-maildir/mail/msg-001:2,\n"}]}, +[]]]]' > show-expected + +test_expect_success 'Renamed message can be shown without running notmuch new' ' +notmuch show --format=json id:msg-...@notmuch-test-suite | filter_show > show-actual && +test_cmp show-expected show-actual +' + +test_expect_success 'Test that we can reply to the renamed message' ' +notmuch reply id:msg-...@notmuch-test-suite +' + +echo "No new mail." > expected +test_expect_success 'No rename should be detected by notmuch new' ' +increment_mtime "$(dirname "${gen_msg_filename}")" && +notmuch new > actual && +test_cmp expected actual +' +test_done diff --git a/test/test-lib.sh b/test/test-lib.sh index 5417fe7..917631b 100755 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -257,8 +257,11 @@ generate_message () local additional_headers gen_msg_cnt=$((gen_msg_cnt + 1)) - gen_msg_name=msg-$(printf "%03d" $gen_msg_cnt) - gen_msg_id="${gen_msg_na...@notmuch-test-suite" + if [ -z "${template[filename]}" ]; then + template[filename]="msg-$(printf "%03d" $gen_msg_cnt)" + fi + gen_msg_name=${template[filename]} + gen_msg_id="${gen_msg_name%:2,*...@notmuch-test-suite" if [ -z "${template[dir]}" ]; then gen_msg_filename="${MAIL_DIR}/$gen_msg_name" -- 1.7.0 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch