def test_add_message(self): subject = uuid.uuid4().hex payload = uuid.uuid4().hex site, _ = open_root(get_default_config()) to = find_profiles(site)['sarah'] with Replacer() as r: r.replace('opencore.views.mbox.authenticated_userid', _authenticated_user_id) r.replace('opencore.views.mbox._get_profile_details', lambda context, request, user: {}) request = DummyRequest(method='POST') request.api = DummyAPI() request.api.find_profile = (lambda userid: self.bob if userid == 'bob' else self.alice) request.POST = MultiDict([ ('to[]', 'bob'), ('subject', subject), ('payload', payload), ]) response = add_message(site, request) self.assertTrue("mbox_thread" in response.location) transaction.commit()
def test_add_message_multiple_recipients(self): subject = uuid.uuid4().hex payload = uuid.uuid4().hex with Replacer() as r: r.replace('opencore.views.mbox.authenticated_userid', _authenticated_user_id) r.replace('opencore.views.mbox._get_profile_details', lambda context, request, user: {}) request = DummyRequest(method='POST') request.POST = MultiDict([ ('to[]', 'bob'), ('to[]', 'alice'), ('subject', subject), ('payload', payload), ]) request.api = DummyAPI() request.api.find_profile = (lambda userid: self.bob if userid == 'bob' else self.alice) response = add_message(self.context, request) # Mailboxes have been created self.assertTrue('bob.inbox' in self.context['mailboxes']) self.assertTrue('alice.inbox' in self.context['mailboxes']) # Queues have been created bob_inbox = self.context['mailboxes']['bob.inbox'] alice_inbox = self.context['mailboxes']['alice.inbox'] self.assertEquals(len(bob_inbox), 1) self.assertEquals(len(alice_inbox), 1) # Redirect to new message self.assertEquals( 'http://example.com/mbox_thread.html?' + urlencode({'thread_id': alice_inbox[0].id}) + '#last-message', response.location) r.restore() transaction.commit()