summaryrefslogtreecommitdiff
path: root/service/test
diff options
context:
space:
mode:
authorLisa Junger <ljunger@thoughtworks.com>2014-11-19 10:44:08 +0100
committerAlexandre Pretto Nunes <anunes@thoughtworks.com>2014-12-03 15:48:49 -0200
commitf273d2abeefa0d77d306bcfab3135195afbc31c3 (patch)
treedb0864f7e413f3c51756ecf9f32cdf235c1f4a90 /service/test
parent6c5e6a65ed543193f676f601741fb597dc48e5dd (diff)
added functionality for reply all to service.
Diffstat (limited to 'service/test')
-rw-r--r--service/test/integration/drafts_test.py2
-rw-r--r--service/test/integration/reply_test.py42
-rw-r--r--service/test/unit/adapter/mail_service_test.py8
-rw-r--r--service/test/unit/adapter/mail_test.py9
-rw-r--r--service/test/unit/controllers/mails_controller_test.py7
5 files changed, 68 insertions, 0 deletions
diff --git a/service/test/integration/drafts_test.py b/service/test/integration/drafts_test.py
index 2ba14dfd..7fd0a46b 100644
--- a/service/test/integration/drafts_test.py
+++ b/service/test/integration/drafts_test.py
@@ -14,6 +14,8 @@
# 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 test.support.integration import *
diff --git a/service/test/integration/reply_test.py b/service/test/integration/reply_test.py
new file mode 100644
index 00000000..177cbb6b
--- /dev/null
+++ b/service/test/integration/reply_test.py
@@ -0,0 +1,42 @@
+#
+# 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 test.support.integration_helper import MailBuilder, SoledadTestBase
+from pixelated.adapter.mail import InputMail
+
+
+class ReplyTest(SoledadTestBase):
+
+ def setUp(self):
+ SoledadTestBase.setUp(self)
+
+ def tearDown(self):
+ SoledadTestBase.tearDown(self)
+
+ def test_get_provides_template_for_reply_all(self):
+ InputMail.FROM_EMAIL_ADDRESS = 'user@pixelated.org'
+ mail = MailBuilder().with_subject('some subject').with_to_addresses(['user@pixelated.org', 'another@pixelated.org']).with_ident(1).build_input_mail()
+ self.add_mail_to_inbox(mail)
+
+ mails = self.get_mails_by_tag('inbox')
+ self.assertNotIn('read', mails[0].status)
+
+ response = self.reply_all_template(mail.ident)
+
+ self.assertEquals(200, response['code'])
+ self.assertEquals(['another@pixelated.org'], response['body']['header']['to'][0])
+ self.assertEquals('Re: some subject', response['body']['header']['subject'])
diff --git a/service/test/unit/adapter/mail_service_test.py b/service/test/unit/adapter/mail_service_test.py
index c69f8f74..e5085724 100644
--- a/service/test/unit/adapter/mail_service_test.py
+++ b/service/test/unit/adapter/mail_service_test.py
@@ -49,3 +49,11 @@ class TestMailService(unittest.TestCase):
self.mail_service.delete_mail(1)
verify(self.mailboxes).move_to_trash(1)
+
+ def test_reply_all_template(self):
+ mail = mock()
+ when(self.mail_service).mail(1).thenReturn(mail)
+
+ self.mail_service.reply_all_template(1)
+
+ verify(mail).to_reply_template()
diff --git a/service/test/unit/adapter/mail_test.py b/service/test/unit/adapter/mail_test.py
index e0879b44..cf821035 100644
--- a/service/test/unit/adapter/mail_test.py
+++ b/service/test/unit/adapter/mail_test.py
@@ -125,6 +125,15 @@ class TestPixelatedMail(unittest.TestCase):
self.assertNotIn('\n', address)
self.assertNotIn(',', address)
self.assertEquals(4, len(mail.headers[header_label]))
+ def test_to_reply_template_removes_user_from_to(self):
+ InputMail.FROM_EMAIL_ADDRESS = 'user@pixelated.org'
+ fdoc, hdoc, bdoc = test_helper.leap_mail(flags=['\\Recent'])
+ mail = PixelatedMail.from_soledad(fdoc, hdoc, bdoc, soledad_querier=self.querier)
+ hdoc.content['headers']['To'] = ['me@pixelated.org', 'user@pixelated.org']
+
+ template = mail.to_reply_template()
+
+ self.assertFalse('user@pixelated.org' in template['header']['to'][0])
def test_content_type_is_read_from_headers_for_plain_mail_when_converted_to_raw(self):
fdoc, hdoc, bdoc = test_helper.leap_mail(flags=['\\Recent'], body=u'some umlaut \xc3', extra_headers={'Content-Type': 'text/plain; charset=ISO-8859-1'})
diff --git a/service/test/unit/controllers/mails_controller_test.py b/service/test/unit/controllers/mails_controller_test.py
index 6d566c83..c5234039 100644
--- a/service/test/unit/controllers/mails_controller_test.py
+++ b/service/test/unit/controllers/mails_controller_test.py
@@ -113,6 +113,13 @@ class TestMailsController(unittest.TestCase):
verify(self.mail_service).delete_permanent(1)
+ def test_reply_all_returns_template(self):
+ when(self.mail_service).reply_all_template(1).thenReturn(self.input_mail.json)
+
+ self.mails_controller.reply_all_template(self.dummy_request, 1)
+
+ verify(self.mail_service).reply_all_template(1)
+
def _successfuly_send_mail(self, ident, mail):
sent_mail = mock()
sent_mail.mailbox_name = 'TRASH'