Example #1
0
    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()
Example #2
0
    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()