]> git.phdru.name Git - mimedecode.git/blobdiff - test/test_all
Split mimedecode.py into a mimedecode library and a small script
[mimedecode.git] / test / test_all
index 5d4ca8a5095c77e0e3a385e7a9a16d2222eb3712..02329d56776fd37631558e53aab9dab50ad1a5b5 100755 (executable)
@@ -1,25 +1,40 @@
 #! /bin/sh
 
 cd "`dirname \"$0\"`" &&
+rm -rf save tmp &&
+mkdir tmp || exit 1
+
+LC_CTYPE=c.UTF-8 &&
+export LC_CTYPE &&
+
 MAILCAPS="`pwd`"/.mailcap &&
 export MAILCAPS &&
 
-rm -rf tmp &&
-mkdir tmp || exit 1
+test -r "$HOME"/.mime.types || cp -p .mime.types "$HOME"/.mime.types &&
 
+: ${PYTHON:=python}
 RC=0
 
+if [ `$PYTHON -c "import sys; print(sys.version[0])"` -eq 2 ]; then
+   PY3=NO
+else
+   PY3=YES
+fi
+
 test1() {
    infile="$1"
    shift
    expfile="$1"
+   if [ $PY3 = YES -a -f expected/"$expfile"-py3 ]; then
+      expfile="$expfile"-py3
+   fi
    shift
 
-   ../mimedecode.py -H test -f utf-8 "$@" input/"$infile" >tmp/"$expfile" || return 1
+   mimedecode -H test -f utf-8 "$@" input/"$infile" >tmp/"$expfile" || return 1
    if cmp -s expected/"$expfile" tmp/"$expfile"; then
       rm tmp/"$expfile" && return 0 || return 1
    else
-      diff --text expected/"$expfile" tmp/"$expfile" >tmp/"$expfile".diff
+      diff --text expected/"$expfile" tmp/"$expfile" | tee tmp/"$expfile".diff
       return 1
    fi
 }
@@ -54,10 +69,62 @@ test_file msg_16.txt msg_16-2.txt -r \*,-mime-version,-content-type
 test_file msg_29.txt msg_29-1.txt -R Content-Type:title
 test_file msg_18.txt msg_18-1.txt -R X-Foobar-Spoink-Defrobnit:\*
 test_file msg_01.txt msg_01-1.txt --set-header=X-Test:set
+test_file msg_01.txt msg_01-2.txt --set-header=X-Test:set --set-param=X-Test:test:set
+test_file msg_02.txt msg_02.txt --set-param=X-Test:test:set
+test_file msg_02.txt msg_02-1.txt --set-param=X-Mailer:test=set
+test_file msg_02.txt msg_02-1.txt --set-param=X-Mailer:test:set
+test_file msg_13.txt msg_13-1.txt -B '*/*'
+test_file msg_13.txt msg_13.txt -t 'text/*' -b 'image/*' -B '*/*'
+test_file msg_36.txt msg_36-1.txt -i multipart/alternative
+test_file msg_36.txt msg_36-2.txt -I multipart/alternative
+
+# Test --save-*
+test2() {
+   infile="$1"
+   shift
+   expfile="$1"
+   shift
+   savefile="$1"
+   shift
+   expsavefile="$1"
+   shift
+
+   test_file "$infile" "$expfile" -O save "$@"
+
+   if cmp -s expected-save/"$expsavefile" save/"$savefile"; then
+      rm save/"$savefile" && return 0 || return 1
+   else
+      ls -lAF save/
+      diff --text expected-save/"$expsavefile" save/"$savefile" | tee save/"$expsavefile".diff
+      return 1
+   fi
+}
+
+test_save() {
+   if test2 "$@"; then
+      echo "    save: ok"
+   else
+      echo "    save: fail"
+      RC=1
+   fi
+}
+
+test_save msg_07.txt msg_07.txt 1-dingusfish.gif msg_07-1.txt --save-headers image/gif
+test_save msg_07.txt msg_07.txt 1-dingusfish.gif msg_07-2.txt --save-body image/gif
+test_save msg_07.txt msg_07.txt 1-dingusfish.gif msg_07-3.txt --save-message image/gif
+test_save msg_07-1.txt msg_07-1.txt 1-dingusfish.gif msg_07-4.txt --save-message image/gif
+
+test_save msg_07.txt msg_07.txt 1.dig msg_07-5.txt --save-headers multipart/mixed
+test_save msg_07.txt msg_07.txt 1.dig msg_07-6.txt --save-body multipart/mixed
+test_save msg_07.txt msg_07.txt 1.dig msg_07-7.txt --save-message multipart/mixed
+
+echo
 
 if [ "$RC" -eq 0 ]; then
    echo "All tests passed!"
-   rmdir tmp
+   rmdir save tmp
+else
+   echo "ERRORS!"
 fi
 
 exit $RC