diff options
Diffstat (limited to 'service/test/unit')
-rw-r--r-- | service/test/unit/adapter/test_mail.py | 19 | ||||
-rw-r--r-- | service/test/unit/config/test_welcome_mail.py | 32 |
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']) |