setup_test
+check_exit '-eq 1' refile -
+
expected=$MH_TEST_DIR/$$.expected
actual=$MH_TEST_DIR/$$.actual
cd $MH_TEST_DIR
-folder -create +other -fast >/dev/null
-folder -create +another -fast >/dev/null
+run_prog folder -create +other -fast >/dev/null
+run_prog folder -create +another -fast >/dev/null
# check with no options and no current message
+start_test "with no options and no current message"
run_test 'refile' 'refile: no folder specified'
# check with current message
-folder +inbox 4 >/dev/null
+start_test "with current message"
+run_prog folder +inbox 4 >/dev/null
run_test 'refile +other' ''
run_test 'folders -noheader' \
'another has no messages.
TOTAL = 10 messages in 3 folders.'
# check with specified message
-folder +inbox 5 >/dev/null
+start_test "with specified message"
+run_prog folder +inbox 5 >/dev/null
run_test 'refile 5 +other' ''
run_test 'folders -noheader' \
'another has no messages.
TOTAL = 10 messages in 3 folders.'
# check multiple messages
+start_test "multiple messages"
run_test 'refile 6 7 +other' ''
run_test 'folders -noheader' \
'another has no messages.
TOTAL = 10 messages in 3 folders.'
# check multiple folders
+start_test "multiple folders"
run_test 'refile 8 +other +another' ''
run_test 'folders -noheader' \
'another has 1 message (1- 1).
TOTAL = 11 messages in 3 folders.'
# check message number greater than highest
+start_test "message number greater than highest"
run_test 'refile 11 +other' "refile: message 11 doesn't exist"
-folder -f +another >/dev/null
+run_prog folder -f +another >/dev/null
# check -src
+start_test "-src"
run_test 'refile 9 -src +inbox +other' ''
run_test 'folders -noheader' \
'another has 1 message (1- 1).
TOTAL = 11 messages in 3 folders.'
# check -file
+start_test "-file"
run_test "refile -file $MH_TEST_DIR/Mail/inbox/10 +other" ''
run_test 'folders -noheader' \
'another has 1 message (1-1).
TOTAL = 11 messages in 3 folders.'
# check -file -, which isn't supported
+start_test "-file -, which isn't supported"
run_test "refile -file - +other <$MH_TEST_DIR/Mail/inbox/9" \
'refile: missing argument to -file'
run_test 'folders -noheader' \
TOTAL = 11 messages in 3 folders.'
# check -draft
+start_test "-draft"
mv $MH_TEST_DIR/Mail/another/1 $MH_TEST_DIR/Mail/draft
rmdir $MH_TEST_DIR/Mail/another
run_test 'refile -draft +other' ''
TOTAL = 11 messages in 2 folders.'
-printf '' > $$.txt
-set +e
-if link $$.txt $$-2.txt 2>/dev/null; then
- # Hard links are supported.
+check_for_hard_links
+if [ $xdir_links_supported -eq 1 ]; then
# check -link
run_test 'refile 7 -src +inbox +other -link' ''
run_test 'folders -noheader' \
cp -p Mail/inbox/7 Mail/other/2
folder -f +inbox 7 >/dev/null
fi
-set -e
-rm -f $$.txt $$-2.txt
# check -nolink
+start_test "-nolink"
run_test 'refile 7 +other -link -nolink' ''
run_test 'folders -noheader' \
'inbox+ has 9 messages (1-10); cur=7.
run_test 'scan +inbox 7' "scan: message 7 doesn't exist"
# check -preserve
+start_test "-preserve"
run_test 'refile 10 +other -preserve' ''
run_test 'folders -noheader' \
'inbox+ has 8 messages (1- 9).
'10:Testing message 10'
# check -nopreserve
+start_test "-nopreserve"
run_test 'refile 9 -src +inbox +other -preserve -nopreserve' ''
run_test 'folders -noheader' \
'inbox+ has 7 messages (1- 8).
run_test 'scan +other last -format %(msg):%(decode{subject})' \
'11:Testing message 9'
+sbackup="`mhparam sbackup`"
+
# check -unlink
+start_test "-unlink"
run_test 'refile 3 -src +inbox +other -unlink' ''
run_test 'folders -noheader' \
'inbox+ has 6 messages (1- 8); cur=3.
other has 6 messages (1-12).
TOTAL = 12 messages in 2 folders.'
-if test -f $MH_TEST_DIR/Mail/inbox/,3; then
+if test -f "$MH_TEST_DIR/Mail/inbox/${sbackup}3"; then
echo "$0: refile -unlink failed" 1>&2
failed=`expr ${failed:-0} + 1`
fi
# check -nounlink
+start_test "-nounlink"
run_test 'refile 2 +other -unlink -nounlink' ''
run_test 'folders -noheader' \
'inbox+ has 5 messages (1- 8); cur=2.
other has 7 messages (1-13).
TOTAL = 12 messages in 2 folders.'
-if test -f $MH_TEST_DIR/Mail/inbox/,2; then
+if test -f "$MH_TEST_DIR/Mail/inbox/${sbackup}2"; then
:
else
echo "$0: refile -nounlink failed" 1>&2
fi
# test folder creation when stdin is not a tty
+start_test "folder creation when stdin is not a tty"
refile first +newfolder </dev/null
run_test 'folders -noheader' \
'inbox+ has 4 messages (4- 8).
TOTAL = 12 messages in 3 folders.'
# test -rmmproc
+start_test "-rmmproc"
run_test 'refile first +other -rmmproc echo' '4'
run_test 'folders -noheader' \
'inbox+ has 4 messages (4- 8); cur=4.
TOTAL = 13 messages in 3 folders.'
# test -normmproc
+start_test "-normmproc"
run_test 'refile first +other -rmmproc echo -normmproc' ''
run_test 'folders -noheader' \
'inbox+ has 3 messages (5- 8).
TOTAL = 13 messages in 3 folders.'
-
+# test -retainsequences
+start_test "-retainsequences"
+mark first -seq seq1
+mark last -seq seq2
+refile first last -retainsequences +other
+#### The following command changes the current folder to +other.
+run_test 'mark +other -list -sequence seq1 -sequence seq2' \
+ "seq1: 16
+seq2: 17"
+
+# test -retainsequences when refiling to same folder (+other)
+# cur is set to the original message number of the last message refiled.
+start_test "-retainsequences when refiling to same folder (+other)"
+mark first -seq seq1 -zero
+mark first=2 -seq seq2 -zero
+refile first:2 -retainsequences +other
+run_test 'mark -list' "cur: 2
+seq1: 18
+seq2: 19"
+
+finish_test
exit $failed