X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=test%2FT055-path-config.sh;h=d8828342dd3bcfbe6ef08ca83b2a33c7edcd15a0;hb=b25e57e6cb65c31030322125aafb0a5eb085b420;hp=c6920ca90631bd772a19a8521d868ab52d488fbf;hpb=e823d05ae6dc920d4fc9abf774c3d2575d891d7b;p=notmuch diff --git a/test/T055-path-config.sh b/test/T055-path-config.sh index c6920ca9..d8828342 100755 --- a/test/T055-path-config.sh +++ b/test/T055-path-config.sh @@ -2,6 +2,8 @@ test_description='Configuration of mail-root and database path' . $(dirname "$0")/test-lib.sh || exit 1 +test_require_external_prereq xapian-metdata + backup_config () { local test_name=$(basename $0 .sh) cp ${NOTMUCH_CONFIG} notmuch-config-backup.${test_name} @@ -13,6 +15,7 @@ restore_config () { unset CONFIG_PATH unset DATABASE_PATH unset NOTMUCH_PROFILE + unset XAPIAN_PATH cp notmuch-config-backup.${test_name} ${NOTMUCH_CONFIG} } @@ -25,22 +28,68 @@ split_config () { notmuch config set database.path $dir notmuch config set database.mail_root $MAIL_DIR DATABASE_PATH=$dir + XAPIAN_PATH="$dir/xapian" } +symlink_config () { + local dir + backup_config + dir="$TMP_DIRECTORY/link.$test_count" + ln -s $MAIL_DIR $dir + notmuch config set database.path $dir + notmuch config set database.mail_root $MAIL_DIR + XAPIAN_PATH="$MAIL_DIR/.notmuch/xapian" + unset DATABASE_PATH +} + +xdg_config () { + local dir + local profile=${1:-default} + + if [[ $profile != default ]]; then + export NOTMUCH_PROFILE=$profile + fi + + backup_config + DATABASE_PATH="${HOME}/.local/share/notmuch/${profile}" + rm -rf $DATABASE_PATH + mkdir -p $DATABASE_PATH + config_dir="${HOME}/.config/notmuch/${profile}" + mkdir -p ${config_dir} + CONFIG_PATH=$config_dir/config + mv ${NOTMUCH_CONFIG} $CONFIG_PATH + unset NOTMUCH_CONFIG + + XAPIAN_PATH="${DATABASE_PATH}/xapian" + notmuch --config=${CONFIG_PATH} config set database.mail_root ${TMP_DIRECTORY}/mail + notmuch --config=${CONFIG_PATH} config set database.path +} -for config in traditional split; do - # start each set of tests with a known set of messages +for config in traditional split XDG XDG+profile symlink; do + #start each set of tests with an known set of messages add_email_corpus case $config in traditional) backup_config + XAPIAN_PATH="$MAIL_DIR/.notmuch/xapian" ;; split) split_config mv mail/.notmuch/xapian $DATABASE_PATH ;; + XDG) + xdg_config + mv mail/.notmuch/xapian $DATABASE_PATH + ;; + XDG+profile) + xdg_config ${RANDOM} + mv mail/.notmuch/xapian $DATABASE_PATH + ;; + symlink) + symlink_config + ;; esac test_begin_subtest "count ($config)" @@ -84,6 +133,72 @@ EOF notmuch search --output=messages '*' > OUTPUT test_expect_equal_file EXPECTED OUTPUT + test_begin_subtest "use existing database ($config)" + output=$(notmuch new) + test_expect_equal "$output" 'No new mail.' + + test_begin_subtest "create database ($config)" + rm -rf $DATABASE_PATH/{.notmuch,}/xapian + notmuch new + output=$(notmuch count '*') + test_expect_equal "$output" '52' + + test_begin_subtest "detect new files ($config)" + generate_message + generate_message + notmuch new + output=$(notmuch count '*') + test_expect_equal "$output" '54' + + test_begin_subtest "Show a raw message ($config)" + add_message + notmuch show --format=raw id:$gen_msg_id > OUTPUT + test_expect_equal_file $gen_msg_filename OUTPUT + rm -f $gen_msg_filename + + test_begin_subtest "reply ($config)" + add_message '[from]="Sender "' \ + [to]=test_suite@notmuchmail.org \ + [subject]=notmuch-reply-test \ + '[date]="Tue, 05 Jan 2010 15:43:56 -0000"' \ + '[body]="basic reply test"' + notmuch reply id:${gen_msg_id} 2>&1 > OUTPUT + cat < EXPECTED +From: Notmuch Test Suite +Subject: Re: notmuch-reply-test +To: Sender +In-Reply-To: <${gen_msg_id}> +References: <${gen_msg_id}> + +On Tue, 05 Jan 2010 15:43:56 -0000, Sender wrote: +> basic reply test +EOF + test_expect_equal_file EXPECTED OUTPUT + test_begin_subtest "insert+search ($config)" + generate_message \ + "[subject]=\"insert-subject\"" \ + "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \ + "[body]=\"insert-message\"" + mkdir -p "$MAIL_DIR"/{cur,new,tmp} + notmuch insert < "$gen_msg_filename" + cur_msg_filename=$(notmuch search --output=files "subject:insert-subject") + test_expect_equal_file "$cur_msg_filename" "$gen_msg_filename" + + + test_begin_subtest "compact+search ($config)" + notmuch search --output=messages '*' | sort > EXPECTED + notmuch compact + notmuch search --output=messages '*' | sort > OUTPUT + test_expect_equal_file EXPECTED OUTPUT + + test_begin_subtest "upgrade backup ($config)" + features=$(xapian-metadata get $XAPIAN_PATH features | grep -v "^relative directory paths") + xapian-metadata set $XAPIAN_PATH features "$features" + output=$(notmuch new | grep Welcome) + test_expect_equal \ + "$output" \ + "Welcome to a new version of notmuch! Your database will now be upgraded." + restore_config done