#! /bin/sh
# This script tests: pbmtextps
# Also requires:

# Dump several variants of the ps file and compare against default.
# Ghostscript is not required.

tmpdir=${tmpdir:-/tmp}
text_pbm=${tmpdir}/text.pbm
text_ps=${tmpdir}/text.ps

text="UNIX Philosophy: Do one thing and do it well."

# Test 1:
echo "Test 1"

pbmtextps -dump-ps ${text} > ${text_ps}

# Font name is random sequence of alphanumerical characters.
# Should not match any real name.

for flag in \
  "-font=ZQUEl8eS38RlsvEahHGNfnrbSswrcJKFwvlCdEttwcheuXvCN49MvWmndqj4" \
  "-fontsize 2000" \
  "-resolution 7200" \
  "-leftmargin=15" \
  "-rightmargin=20" \
  "-topmargin=10" \
  "-bottommargin=14" \
  "-ascent=30" \
  "-descent=20" \
  "-pad" \
  "-crop" \
  "-stroke 1"
  do
  echo ${flag}
  pbmtextps -dump-ps ${flag} ${text} | diff ${text_ps} - | grep "^[<>]"
  done

rm ${text_ps}


echo "Test Invalid"

echo 1>&2
echo "Invalid command line arguments" 1>&2
echo "Error messages should appear below the line." 1>&2
echo "-----------------------------------------------------------" 1>&2

test_out=${tmpdir}/test.out

n=1

for error_flag in \
  "-fontsize" \
  "-fontsize 0" \
  "-resolution" \
  "-resolution=0" \
  "-leftmargin" \
  "-leftmargin -1" \
  "-rightmargin" \
  "-rightmargin -1" \
  "-topmargin" \
  "-topmargin -1" \
  "-bottommargin" \
  "-bottommargin -1" \
  "-ascent" \
  "-ascent -1" \
  "-descent" \
  "-descent -1" \
  "-stroke=A" \
  "-pad -crop" 
  do
    pbmtextps ${error_flag} -dump-ps ${text} >${test_out} || \
    printf "Expected failure $n (${error_flag})";
    test -s ${test_out}; echo " "$?
    rm -f ${test_out}
    n=$((n + 1))
  done

  pbmtextps -font="" -dump-ps ${text} >${test_out} || \
  printf "Expected failure $n (-font=\"\")";
  test -s ${test_out}; echo " "$?
  rm -f ${test_out}
