#!/bin/sh
######################################################
#
# Test mark
#
######################################################

set -e

if test -z "${MH_OBJ_DIR}"; then
    srcdir=`dirname $0`/../..
    MH_OBJ_DIR=`cd $srcdir && pwd`; export MH_OBJ_DIR
fi

. "$MH_OBJ_DIR/test/common.sh"

setup_test

# Test sequence creation.
run_test 'mark 1 3 5 7 +inbox -sequence odd' ''
run_test 'mark 2 4 6 8 10 +inbox -sequence even' ''
run_test 'mark +inbox -seq odd -seq even -list' \
         'odd: 1 3 5 7
even: 2 4 6 8 10'

# Test add.
run_test 'mark 9 -sequence odd -add -nozero' ''
run_test 'mark -seq odd -list' 'odd: 1 3 5 7 9'

# Test delete.
run_test 'mark 9 -sequence odd -delete' ''
run_test 'mark -seq odd -list' 'odd: 1 3 5 7'

# Test that -nozero is default
run_test 'mark 9 -sequence odd -add' ''
run_test 'mark -seq odd -list' 'odd: 1 3 5 7 9'

# Test -zero
run_test 'mark 10 -s even -add -zero' ''
run_test 'mark -s even -list' 'even: 10'

# Test add prior to last message;
run_test 'mark 8 -s even -add' ''
run_test 'mark -s even -list' 'even: 8 10'

# Test list.
run_test 'mark -s odd -list' 'odd: 1 3 5 7 9'

# Try to mark message that doesn't exist.
run_test 'mark 12' "mark: message 12 doesn't exist"

# Try to mark nonexistent folder.
run_test 'mark +nonexistent' \
         "mark: unable to change directory to `mhpath +`/nonexistent: \
No such file or directory"

# Test private sequence creation.
# Set current message for following tests.
folder +inbox 1 > /dev/null
run_test 'mark 1 -sequence privateseq -add -nopublic' ''
run_test 'mark -list' 'cur: 1
odd: 1 3 5 7 9
even: 8 10
privateseq (private): 1'

# Test add to private sequence.
run_test 'mark 2 -sequence privateseq -add -nopublic' ''
run_test 'mark -list' 'cur: 1
odd: 1 3 5 7 9
even: 8 10
privateseq (private): 1-2'

# Test private sequence list.
run_test 'mark -sequence privateseq -list' 'privateseq (private): 1-2'

# Test private sequence list with -public, which is apparently ignored.
run_test 'mark -sequence privateseq -list -public' 'privateseq (private): 1-2'

# Test mark on empty folder.
folder -create +other > /dev/null
run_test 'mark +other -sequence unseen all' 'mark: no messages in other'

exit $failed
