summaryrefslogtreecommitdiffstats
path: root/maildrop/testsuite2
diff options
context:
space:
mode:
authorSam Varshavchik2013-08-26 19:41:57 -0400
committerSam Varshavchik2013-08-28 21:07:40 -0400
commite0a0a6eba9f31aea09624b3ea21fb75107c96780 (patch)
tree4abeeb6b18ddbde710c292c3fc6a170f53492797 /maildrop/testsuite2
parent88fcede4132f42e2297d11832cf6c7e047c71ce8 (diff)
downloadcourier-libs-e0a0a6eba9f31aea09624b3ea21fb75107c96780.tar.bz2
maildrop: handle MIME encoding when searching messages.
Use rfc2045_decodmsgtoutf8() to decode entire message into UTF-8, before searching it.
Diffstat (limited to 'maildrop/testsuite2')
-rw-r--r--maildrop/testsuite2229
1 files changed, 229 insertions, 0 deletions
diff --git a/maildrop/testsuite2 b/maildrop/testsuite2
new file mode 100644
index 0000000..7540536
--- /dev/null
+++ b/maildrop/testsuite2
@@ -0,0 +1,229 @@
+cat >testsuite.msg <<EOF
+From: =?iso-8859-1?q?h=E9ader?= <nobody@example.com>
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary=zzz
+
+--zzz
+Subject: =?iso-8859-1?q?t=E9st?=
+Content-Type: text/plain; charset=iso-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+b=F6dy
+
+test
+EOF
+
+cat >testsuite1.filter <<EOF
+if (/héader/)
+{
+ EXITCODE=0
+ exit
+}
+EXITCODE=1
+exit
+EOF
+
+cat >testsuite2.filter <<EOF
+if (/héader/:h)
+{
+ EXITCODE=0
+ exit
+}
+EXITCODE=1
+exit
+EOF
+cat >testsuite3.filter <<EOF
+if (/héader/:b)
+{
+ EXITCODE=0
+ exit
+}
+EXITCODE=1
+exit
+EOF
+
+cat >testsuite4.filter <<EOF
+if (/tést/:h)
+{
+ EXITCODE=0
+ exit
+}
+EXITCODE=1
+exit
+EOF
+
+cat >testsuite5.filter <<EOF
+if (/bödy/:b)
+{
+ EXITCODE=0
+ exit
+}
+EXITCODE=1
+exit
+EOF
+
+chmod 600 ./testsuite1.filter ./testsuite2.filter ./testsuite3.filter ./testsuite4.filter ./testsuite5.filter
+
+type="small message"
+
+# Small file
+if ./maildrop ./testsuite1.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 1 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite2.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 2 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite3.filter <testsuite.msg
+then
+ echo "Test 3 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite4.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 4 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite5.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 5 failed: $type"
+ exit 1
+fi
+
+type="small pipe"
+if cat testsuite.msg | ./maildrop ./testsuite1.filter
+then
+ :
+else
+ echo "Test 1 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite2.filter
+then
+ :
+else
+ echo "Test 2 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite3.filter
+then
+ echo "Test 3 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite4.filter
+then
+ :
+else
+ echo "Test 4 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite5.filter
+then
+ :
+else
+ echo "Test 5 failed: $type"
+ exit 1
+fi
+
+dd if="/dev/zero" bs=8192 count=2 2>/dev/null | tr '\0' '\012' >>testsuite.msg
+
+type="large message"
+
+# Large file
+if ./maildrop ./testsuite1.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 1 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite2.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 2 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite3.filter <testsuite.msg
+then
+ echo "Test 3 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite4.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 4 failed: $type"
+ exit 1
+fi
+
+if ./maildrop ./testsuite5.filter <testsuite.msg
+then
+ :
+else
+ echo "Test 5 failed: $type"
+ exit 1
+fi
+
+type="large pipe"
+if cat testsuite.msg | ./maildrop ./testsuite1.filter
+then
+ :
+else
+ echo "Test 1 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite2.filter
+then
+ :
+else
+ echo "Test 2 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite3.filter
+then
+ echo "Test 3 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite4.filter
+then
+ :
+else
+ echo "Test 4 failed: $type"
+ exit 1
+fi
+
+if cat testsuite.msg | ./maildrop ./testsuite5.filter
+then
+ :
+else
+ echo "Test 5 failed: $type"
+ exit 1
+fi
+
+rm -f testsuite?.filter testsuite.msg