mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-26 20:57:58 +01:00
c04e6f84d3
Test for bug. Current stemming support for notmuch adds extra terms
to the DB which aren't removed when the file renames are detected.
When folder tags are added to a message, Xapian terms for both XFOLDER
and ZXFOLDER are generated. When one of the filenames are
renamed/removed, only the XFOLDER tags are removed, leaving it possible
for a match on a folder: tag that was previously but is no longer a
match in the maildir.
(cherry picked from commit 86e0baeb6d
)
48 lines
1.3 KiB
Bash
Executable file
48 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
test_description='folder tags removed and added through file renames remain consistent'
|
|
. ./test-lib.sh
|
|
|
|
test_begin_subtest "No new messages"
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail."
|
|
|
|
|
|
test_begin_subtest "Single new message"
|
|
generate_message
|
|
file_x=$gen_msg_filename
|
|
id_x=$gen_msg_id
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "Added 1 new message to the database."
|
|
|
|
test_begin_subtest "Add second folder for same message"
|
|
dir=$(dirname $file_x)
|
|
mkdir $dir/spam
|
|
cp $file_x $dir/spam
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail."
|
|
|
|
|
|
test_begin_subtest "Multiple files for same message"
|
|
cat <<EOF >EXPECTED
|
|
MAIL_DIR/msg-001
|
|
MAIL_DIR/spam/msg-001
|
|
EOF
|
|
notmuch search --output=files id:$id_x | sed -e "s,$MAIL_DIR,MAIL_DIR," >OUTPUT
|
|
test_expect_equal_file OUTPUT EXPECTED
|
|
|
|
test_begin_subtest "Test matches folder:spam"
|
|
output=$(notmuch search folder:spam)
|
|
test_expect_equal "$output" "thread:0000000000000001 2001-01-05 [1/1] Notmuch Test Suite; Test message #1 (inbox unread)"
|
|
|
|
sleep 1;
|
|
|
|
test_begin_subtest "Remove folder:spam copy of email"
|
|
rm $dir/spam/$(basename $file_x)
|
|
output=$(NOTMUCH_NEW)
|
|
test_expect_equal "$output" "No new mail. Detected 1 file rename."
|
|
|
|
test_begin_subtest "No mails match the folder:spam search"
|
|
output=$(notmuch search folder:spam)
|
|
test_expect_equal "$output" ""
|
|
|
|
test_done
|