summaryrefslogtreecommitdiff
path: root/test/it_mail.t
diff options
context:
space:
mode:
Diffstat (limited to 'test/it_mail.t')
-rwxr-xr-xtest/it_mail.t93
1 files changed, 93 insertions, 0 deletions
diff --git a/test/it_mail.t b/test/it_mail.t
new file mode 100755
index 0000000..486dee8
--- /dev/null
+++ b/test/it_mail.t
@@ -0,0 +1,93 @@
+#!/www/server/bin/php -qC
+<?php
+
+$mail = new it_mail();
+
+#
+# header_escape tests
+#
+is(
+ $mail->addrlist_escape('éxample@example.com', true),
+ 'éxample@example.com',
+ "Don't escape plain email addresses in email headers"
+);
+
+is(
+ $mail->header_escape('éxample@example.com'),
+ '=?utf-8?Q?=C3=A9xample@example.com?=',
+ "Escape plain email in non-email headers"
+);
+
+is(
+ $mail->header_escape('search.ch e-mail code d\'accès'),
+ '=?utf-8?B?c2VhcmNoLmNoIGUtbWFpbCBjb2RlIGQnYWNjw6hz?=',
+ "Use base64 encoding when php iconv fails with quoted-printable (workaround for php bug #53891)"
+);
+
+is(
+ $mail->addrlist_escape('Èxample User <èxample@example.com>', true),
+ '=?utf-8?Q?=C3=88xample=20User?= <èxample@example.com>',
+ "Escape name but not email in email headers"
+);
+
+is(
+ $mail->addrlist_escape('Example User <example@example.com>', true),
+ 'Example User <example@example.com>',
+ "Don't escape characters that don't need escaping"
+);
+
+is(
+ $mail->addrlist_escape('example@example.com, éxample@example.com, Sömeone Ëlse <sömeone@example.com>', true),
+ 'example@example.com, éxample@example.com, =?utf-8?Q?S=C3=B6meone=20=C3=8Blse?= <sömeone@example.com>',
+ "Don't escape email addresses but escape realnames"
+);
+
+is(
+ $mail->addrlist_escape('"Alfred E. Neuman" <neuman@example.com>', true),
+ '"Alfred E. Neuman" <neuman@example.com>',
+ "Don't remove quoting characters from realname"
+);
+
+is(
+ $mail->addrlist_escape('"Schmitt, Sören" <schmitt@example.com>', true),
+ '=?utf-8?Q?"Schmitt,=20S=C3=B6ren"?= <schmitt@example.com>',
+ "Don't remove quoting characters from realname when it contains a quotable character"
+);
+
+$mail = new it_mail(array(
+ 'From' => 'Someone Ïmportant <ïmportant@search.ch>',
+ 'To' => 'éxample@example.com, example@example.com, Sömeone Ëlse <sömeone@example.com>, "Alfred E. Neuman" <neuman@example.com>, "Schmitt, Sören" <schmitt@example.com>',
+ 'Cc' => 'éxample@example.com, example@example.com, Sömeone Ëlse <sömeone@example.com>, "Alfred E. Neuman" <neuman@example.com>, "Schmitt, Sören" <schmitt@example.com>',
+ 'Bcc' => 'éxample@example.com, example@example.com, Sömeone Ëlse <sömeone@example.com>, "Alfred E. Neuman" <neuman@example.com>, "Schmitt, Sören" <schmitt@example.com>',
+ 'Subject' => "§önÐë®z€ı¢ħèṇ"
+));
+
+is(
+ $mail->to[0],
+ 'éxample@example.com, example@example.com, =?utf-8?Q?S=C3=B6meone=20=C3=8Blse?= <sömeone@example.com>, "Alfred E. Neuman" <neuman@example.com>, =?utf-8?Q?"Schmitt,=20S=C3=B6ren"?= <schmitt@example.com>',
+ 'Escape To: field as addrlist'
+);
+
+is(
+ $mail->cc[0],
+ 'éxample@example.com, example@example.com, =?utf-8?Q?S=C3=B6meone=20=C3=8Blse?= <sömeone@example.com>, "Alfred E. Neuman" <neuman@example.com>, =?utf-8?Q?"Schmitt,=20S=C3=B6ren"?= <schmitt@example.com>',
+ 'Escape Cc: field as addrlist'
+);
+
+is(
+ $mail->bcc[0],
+ 'éxample@example.com, example@example.com, =?utf-8?Q?S=C3=B6meone=20=C3=8Blse?= <sömeone@example.com>, "Alfred E. Neuman" <neuman@example.com>, =?utf-8?Q?"Schmitt,=20S=C3=B6ren"?= <schmitt@example.com>',
+ 'Escape Bcc: field as addrlist'
+);
+
+is(
+ $mail->header_values[0],
+ '=?utf-8?Q?Someone=20=C3=8Fmportant?= <ïmportant@search.ch>',
+ 'Escape From: field as addrlist'
+);
+
+is(
+ $mail->subject,
+ "§önÐë®z€ı¢ħèṇ",
+ "Don't escape Subject: field on instanziation"
+);