d9dca2dcc5676f16bc5f1f98e242b8fc2da9a68b
[mmh] / test / format / test-myname
1 #!/bin/sh
2 #
3 # Test that we can retrieve the local username via the passwd file,
4 # the Signature profile entry, and via SIGNATURE environment variable.
5 #
6
7 set -e
8
9 if test -z "${MH_OBJ_DIR}"; then
10     srcdir=`dirname "$0"`/../..
11     MH_OBJ_DIR=`cd "$srcdir" && pwd`; export MH_OBJ_DIR
12 fi
13
14 . "$MH_OBJ_DIR/test/common.sh"
15
16 setup_test
17
18 unset SIGNATURE
19
20 fullname=`${MH_OBJ_DIR}/test/getfullname`
21 run_test "${MH_LIB_DIR}/ap -format %(myname) ignore" \
22          "$fullname" "GECOS field test"
23
24 echo "Signature: Some Random Name 1" >> ${MH}
25
26 run_test "${MH_LIB_DIR}/ap -format %(myname) ignore" \
27          "Some Random Name 1" "MH Profile Signature test"
28
29 export SIGNATURE="Some Random Name 2"
30
31 run_test "${MH_LIB_DIR}/ap -format %(myname) ignore" \
32          "${SIGNATURE}" "SIGNATURE Environment test"
33
34 #### Test escaping of display names.
35 escape="${MH_OBJ_DIR}/test/getfullname"
36 run_test "$escape "'user'           'user'              'no escape'
37 run_test "$escape "'first.last'     '"first.last"'      'escape'
38 run_test "$escape "'"first.last"'   '"first.last"'      'already escaped'
39 run_test "$escape "'embedded"quote' '"embedded\"quote"' 'embedded quote'
40 run_test "$escape "'"'              '"\""'              'special "'
41 run_test "$escape "'('              '"("'               'special ('
42 run_test "$escape "')'              '")"'               'special )'
43 #### We stop at the first comma so this one gets eliminated:
44 run_test "$escape "','              ''                  'special ,'
45 run_test "$escape "'.'              '"."'               'special .'
46 run_test "$escape "':'              '":"'               'special :'
47 run_test "$escape "';'              '";"'               'special ;'
48 run_test "$escape "'<'              '"<"'               'special <'
49 run_test "$escape "'>'              '">"'               'special >'
50 run_test "$escape "'@'              '"@"'               'special @'
51 run_test "$escape "'['              '"["'               'special ['
52 run_test "$escape "'\\'             '"\\"'              'special \\'
53 run_test "$escape "']'              '"]"'               'special ]'
54
55 exit $failed