From 5c39786d9166d4882e787d6b80d7086c5c34e395 Mon Sep 17 00:00:00 2001 From: Patrick Maia and Victor Shyba Date: Fri, 21 Nov 2014 19:07:27 -0300 Subject: for #14, properly split and strip addresses --- service/pixelated/adapter/mail.py | 3 ++- service/test/unit/adapter/mail_test.py | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'service') diff --git a/service/pixelated/adapter/mail.py b/service/pixelated/adapter/mail.py index 5977e252..fc32366a 100644 --- a/service/pixelated/adapter/mail.py +++ b/service/pixelated/adapter/mail.py @@ -225,7 +225,8 @@ class PixelatedMail(Mail): header_value = self.hdoc.content['headers'].get(header) if not header_value: continue - _headers[header] = header_value if type(header_value) is list else header_value.split(', ') + _headers[header] = header_value if type(header_value) is list else header_value.split(',') + _headers[header] = map(lambda x: x.strip(), _headers[header]) for header in ['From', 'Subject']: _headers[header] = self.hdoc.content['headers'].get(header) diff --git a/service/test/unit/adapter/mail_test.py b/service/test/unit/adapter/mail_test.py index d0e2bcec..eaa6efb4 100644 --- a/service/test/unit/adapter/mail_test.py +++ b/service/test/unit/adapter/mail_test.py @@ -112,6 +112,20 @@ class TestPixelatedMail(unittest.TestCase): self.assertRegexpMatches(mail.body, '([\s\S]*100%){2}') + def test_clean_line_breaks_on_address_headers(self): + fdoc, hdoc, bdoc = test_helper.leap_mail(flags=['\\Recent']) + hdoc.content['headers']['To'] = 'One ,\nTwo , Normal ,\nalone@mail.com' + hdoc.content['headers']['Bcc'] = hdoc.content['headers']['To'] + hdoc.content['headers']['Cc'] = hdoc.content['headers']['To'] + + mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier) + + for header_label in ['To', 'Cc', 'Bcc']: + for address in mail.headers[header_label]: + self.assertNotIn('\n', address) + self.assertNotIn(',', address) + self.assertEquals(4, len(mail.headers[header_label])) + class InputMailTest(unittest.TestCase): mail_dict = lambda x: { -- cgit v1.2.3