-#!/bin/bash
+#!/usr/bin/env bash
test_description='"notmuch new" in several variations'
. ./test-lib.sh
tmp_msg_filename=tmp/"$gen_msg_filename"
mkdir -p "$(dirname "$tmp_msg_filename")"
mv "$gen_msg_filename" "$tmp_msg_filename"
-increment_mtime "${MAIL_DIR}"
notmuch new > /dev/null
mv "$tmp_msg_filename" "$gen_msg_filename"
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "Added 1 new message to the database."
generate_message
notmuch new > /dev/null
mv "$gen_msg_filename" "${gen_msg_filename}"-renamed
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Detected 1 file rename."
test_begin_subtest "Deleted message"
rm "${gen_msg_filename}"-renamed
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Removed 1 message."
notmuch new > /dev/null
mv "${MAIL_DIR}"/dir "${MAIL_DIR}"/dir-renamed
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Detected 3 file renames."
test_begin_subtest "Deleted directory"
rm -rf "${MAIL_DIR}"/dir-renamed
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Removed 3 messages."
test_begin_subtest "Deleted directory (end of list)"
rm -rf "${MAIL_DIR}"/zzz
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Removed 3 messages."
mkdir -p "$(dirname "$external_msg_filename")"
mv "$gen_msg_filename" "$external_msg_filename"
ln -s "$external_msg_filename" "$gen_msg_filename"
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "Added 1 new message to the database."
test_begin_subtest "Deleted two-level directory"
rm -rf "${MAIL_DIR}"/two
-increment_mtime "${MAIL_DIR}"
output=$(NOTMUCH_NEW)
test_expect_equal "$output" "No new mail. Removed 3 messages."