#!/bin/sh
#
# Test that we can retrieve the local username via the passwd file,
# the Signature profile entry, and via SIGNATURE environment variable.
#

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

unset SIGNATURE

fullname=`${MH_OBJ_DIR}/test/getfullname`
run_test "${MH_LIBEXEC_DIR}/ap -format %(myname) ignore" \
         "$fullname" "GECOS field test"

echo "Signature: Some Random Name 1" >> ${MH}

run_test "${MH_LIBEXEC_DIR}/ap -format %(myname) ignore" \
         "Some Random Name 1" "MH Profile Signature test"

SIGNATURE="Some Random Name 2"
export SIGNATURE

run_test "${MH_LIBEXEC_DIR}/ap -format %(myname) ignore" \
         "${SIGNATURE}" "SIGNATURE Environment test"

#### Test escaping of display names.
escape="${MH_OBJ_DIR}/test/getfullname"
run_test "$escape "'user'           'user'              'no escape'
run_test "$escape "'first.last'     '"first.last"'      'escape'
run_test "$escape "'"first.last"'   '"first.last"'      'already escaped'
run_test "$escape "'first.last"'    '"first.last"'      'missing initial "'
run_test "$escape "'"first.last'    '"first.last"'      'missing final "'
run_test "$escape "'embedded"quote' '"embedded\"quote"' 'embedded quote'
run_test "$escape "'server\name,#'  '"server\name"'     'Windows form'
run_test "$escape "'"'              '"\""'              'special "'
run_test "$escape "'('              '"("'               'special ('
run_test "$escape "')'              '")"'               'special )'
#### We stop at the first comma so this one gets eliminated:
run_test "$escape "','              ''                  'special ,'
run_test "$escape "'.'              '"."'               'special .'
run_test "$escape "':'              '":"'               'special :'
run_test "$escape "';'              '";"'               'special ;'
run_test "$escape "'<'              '"<"'               'special <'
run_test "$escape "'>'              '">"'               'special >'
run_test "$escape "'@'              '"@"'               'special @'
run_test "$escape "'['              '"["'               'special ['
run_test "$escape "'\\'             '"\\"'              'special \\'
run_test "$escape "']'              '"]"'               'special ]'

exit $failed
