summaryrefslogtreecommitdiff
path: root/service/test/unit
diff options
context:
space:
mode:
Diffstat (limited to 'service/test/unit')
-rw-r--r--service/test/unit/adapter/test_mail.py19
-rw-r--r--service/test/unit/config/test_welcome_mail.py32
2 files changed, 51 insertions, 0 deletions
diff --git a/service/test/unit/adapter/test_mail.py b/service/test/unit/adapter/test_mail.py
index d77816cd..1a9280ff 100644
--- a/service/test/unit/adapter/test_mail.py
+++ b/service/test/unit/adapter/test_mail.py
@@ -232,6 +232,25 @@ class TestPixelatedMail(unittest.TestCase):
self.assertEquals(u'H\xe4llo', mail.text_plain_body)
self.assertEquals(u'<p>H\xe4llo</p>', mail.html_body)
+ def test_broken_content_type_defaults_to_usascii(self):
+ plain_headers = {'Content-Type': 'I lie to you', 'Content-Transfer-Encoding': 'quoted-printable'}
+ html_headers = {'Content-Type': 'text/html;\ncharset=utf-8', 'Content-Transfer-Encoding': 'quoted-printable'}
+ parts = {'alternatives': [{'content': 'H=E4llo', 'headers': plain_headers}, {'content': '<p>H=C3=A4llo</p>', 'headers': html_headers}]}
+
+ mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts, soledad_querier=None)
+
+ self.assertEquals(u'H=E4llo', mail.text_plain_body)
+
+ def test_broken_encoding_defaults_to_8bit(self):
+ plain_headers = {'Content-Type': 'text/plain;\ncharset=iso-8859-1', 'Content-Transfer-Encoding': 'I lie to you!'}
+ html_headers = {'Content-Type': 'text/html;\ncharset=utf-8', 'Content-Transfer-Encoding': 'quoted-printable'}
+ parts = {'alternatives': [{'content': 'H=E4llo', 'headers': plain_headers}, {'content': '<p>H=C3=A4llo</p>', 'headers': html_headers}]}
+
+ mail = PixelatedMail.from_soledad(None, None, self._create_bdoc(raw='some raw body'), parts=parts, soledad_querier=None)
+
+ self.assertEquals(u'H=E4llo', mail.text_plain_body)
+ self.assertEquals(u'<p>H\xe4llo</p>', mail.html_body)
+
def test_clean_line_breaks_on_address_headers(self):
many_recipients = 'One <one@mail.com>,\nTwo <two@mail.com>, Normal <normal@mail.com>,\nalone@mail.com'
headers = {'Cc': many_recipients,
diff --git a/service/test/unit/config/test_welcome_mail.py b/service/test/unit/config/test_welcome_mail.py
new file mode 100644
index 00000000..3971c73f
--- /dev/null
+++ b/service/test/unit/config/test_welcome_mail.py
@@ -0,0 +1,32 @@
+#
+# Copyright (c) 2014 ThoughtWorks, Inc.
+#
+# Pixelated is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Pixelated is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
+import unittest
+
+from pixelated.config.welcome_mail import build_welcome_mail
+from pixelated.adapter.model.mail import InputMail
+
+
+class WelcomeMailTest(unittest.TestCase):
+
+ def test_build_plain_welcome_mail(self):
+ user_address = InputMail.FROM_EMAIL_ADDRESS = 'welcomed@user'
+ mail = build_welcome_mail()
+ self.assertEquals(user_address, mail.to)
+ self.assertEquals('Welcome to Pixelated Mail', mail.headers['Subject'])
+ self.assertIn('How to use it', mail.body)
+ self.assertIn('text/plain', mail._mime.as_string())
+ self.assertIn('text/html', mail._mime.as_string())
+ self.assertTrue(mail.headers['Date'])