mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 23:20:51 +00:00
Sending Links: conform api to web gui code
This commit is contained in:
@@ -1,9 +1,15 @@
|
||||
#coding: UTF-8
|
||||
import json
|
||||
from mock import patch
|
||||
from django.core import mail
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import override_settings
|
||||
|
||||
from seahub.utils import IS_EMAIL_CONFIGURED
|
||||
from seahub.test_utils import BaseTestCase
|
||||
from seahub.share.models import UploadLinkShare
|
||||
from seahub.profile.models import Profile
|
||||
from seahub.profile.utils import refresh_cache
|
||||
from seahub.test_utils import BaseTestCase
|
||||
|
||||
|
||||
class SendUploadLinkApiTest(BaseTestCase):
|
||||
@@ -16,7 +22,10 @@ class SendUploadLinkApiTest(BaseTestCase):
|
||||
def tearDown(self):
|
||||
self.remove_repo()
|
||||
|
||||
def test_can_send_email(self):
|
||||
@override_settings(DEFAULT_FROM_EMAIL='from_noreply@seafile.com')
|
||||
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.IS_EMAIL_CONFIGURED', True)
|
||||
def test_can_send_email_configured(self):
|
||||
self.login_as(self.user)
|
||||
invalid_email = 'invalid'
|
||||
url = reverse("api2-send-upload-link")
|
||||
@@ -26,13 +35,75 @@ class SendUploadLinkApiTest(BaseTestCase):
|
||||
}
|
||||
|
||||
resp = self.client.post(url, data)
|
||||
if not IS_EMAIL_CONFIGURED:
|
||||
self.assertEqual(403, resp.status_code)
|
||||
else:
|
||||
self.assertEqual(200, resp.status_code)
|
||||
json_resp = json.loads(resp.content)
|
||||
assert json_resp['success'][0] == self.admin.email
|
||||
assert json_resp['failed'][0]['email'] == invalid_email
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
json_resp = json.loads(resp.content)
|
||||
assert json_resp['success'][0] == self.admin.email
|
||||
assert json_resp['failed'][0]['email'] == invalid_email
|
||||
assert mail.outbox[0].from_email == 'from_noreply@seafile.com'
|
||||
|
||||
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.IS_EMAIL_CONFIGURED', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.REPLACE_FROM_EMAIL', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.ADD_REPLY_TO_HEADER', True)
|
||||
def test_can_send_email_rewrite(self):
|
||||
self.login_as(self.user)
|
||||
url = reverse("api2-send-upload-link")
|
||||
data = {
|
||||
"token": self.token,
|
||||
"email": self.admin.email,
|
||||
}
|
||||
|
||||
resp = self.client.post(url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
json_resp = json.loads(resp.content)
|
||||
assert json_resp['success'][0] == self.admin.email
|
||||
assert mail.outbox[0].from_email == self.user.email
|
||||
assert mail.outbox[0].extra_headers['Reply-to'] == self.user.email
|
||||
|
||||
@patch('seahub.utils.IS_EMAIL_CONFIGURED', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.IS_EMAIL_CONFIGURED', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.REPLACE_FROM_EMAIL', True)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.ADD_REPLY_TO_HEADER', True)
|
||||
def test_can_send_email_rewrite_contact_email(self):
|
||||
self.login_as(self.user)
|
||||
nickname = 'Testuser'
|
||||
contact_email= 'contact_email@test.com'
|
||||
p = Profile.objects.add_or_update(self.user.email, nickname=nickname)
|
||||
p.contact_email = contact_email
|
||||
p.save()
|
||||
|
||||
refresh_cache(self.user.email)
|
||||
|
||||
url = reverse("api2-send-upload-link")
|
||||
data = {
|
||||
"token": self.token,
|
||||
"email": self.admin.email,
|
||||
}
|
||||
|
||||
resp = self.client.post(url, data)
|
||||
self.assertEqual(200, resp.status_code)
|
||||
self.assertEqual(len(mail.outbox), 1)
|
||||
json_resp = json.loads(resp.content)
|
||||
assert json_resp['success'][0] == self.admin.email
|
||||
assert mail.outbox[0].from_email == contact_email
|
||||
assert mail.outbox[0].extra_headers['Reply-to'] == contact_email
|
||||
|
||||
@patch('seahub.utils.IS_EMAIL_CONFIGURED', False)
|
||||
@patch('seahub.api2.endpoints.send_upload_link_email.IS_EMAIL_CONFIGURED', False)
|
||||
def test_can_send_email_not_configured(self):
|
||||
self.login_as(self.user)
|
||||
invalid_email = 'invalid'
|
||||
url = reverse("api2-send-upload-link")
|
||||
data = {
|
||||
"token": self.token,
|
||||
"email": self.admin.email + ',' + invalid_email,
|
||||
}
|
||||
|
||||
resp = self.client.post(url, data)
|
||||
self.assertEqual(403, resp.status_code)
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
||||
def test_can_not_send_email_if_not_link_owner(self):
|
||||
self.login_as(self.admin)
|
||||
@@ -44,3 +115,4 @@ class SendUploadLinkApiTest(BaseTestCase):
|
||||
|
||||
resp = self.client.post(url, data)
|
||||
self.assertEqual(403, resp.status_code)
|
||||
self.assertEqual(len(mail.outbox), 0)
|
||||
|
Reference in New Issue
Block a user