mirror of
https://github.com/zulip/zulip.git
synced 2026-07-18 21:04:19 +08:00
push_notifications: Add get_gcm_payload tests.
This commit is contained in:
parent
136a950041
commit
fab4249893
@ -22,6 +22,7 @@ from zerver.models import (
|
||||
get_client,
|
||||
Recipient,
|
||||
get_user_profile_by_email,
|
||||
Stream,
|
||||
)
|
||||
from zerver.lib import push_notifications as apn
|
||||
from zerver.lib.response import json_success
|
||||
@ -260,10 +261,10 @@ class PushNotificationTest(ZulipTestCase):
|
||||
for i in [100, 200]:
|
||||
self.redis_client.delete(apn.get_apns_key(i))
|
||||
|
||||
def get_message(self, type):
|
||||
# type: (int) -> Message
|
||||
recipient = Recipient.objects.create(
|
||||
type_id=100,
|
||||
def get_message(self, type, type_id=100):
|
||||
# type: (int, int) -> Message
|
||||
recipient, _ = Recipient.objects.get_or_create(
|
||||
type_id=type_id,
|
||||
type=type,
|
||||
)
|
||||
|
||||
@ -391,6 +392,55 @@ class TestGetAPNsPayload(PushNotificationTest):
|
||||
}
|
||||
self.assertDictEqual(payload, expected)
|
||||
|
||||
class TestGetGCMPayload(PushNotificationTest):
|
||||
def test_get_gcm_payload(self):
|
||||
# type: () -> None
|
||||
email = "hamlet@zulip.com"
|
||||
stream = Stream.objects.filter(name='Verona').get()
|
||||
message = self.get_message(Recipient.STREAM, stream.id)
|
||||
message.content = 'a' * 210
|
||||
message.save()
|
||||
|
||||
user_profile = get_user_profile_by_email(email)
|
||||
payload = apn.get_gcm_payload(user_profile, message)
|
||||
expected = {
|
||||
"user": email,
|
||||
"event": "message",
|
||||
"alert": "New mention from King Hamlet",
|
||||
"zulip_message_id": message.id,
|
||||
"time": apn.datetime_to_timestamp(message.pub_date),
|
||||
"content": 'a' * 200 + '...',
|
||||
"content_truncated": True,
|
||||
"sender_email": "hamlet@zulip.com",
|
||||
"sender_full_name": "King Hamlet",
|
||||
"sender_avatar_url": apn.avatar_url(message.sender),
|
||||
"recipient_type": "stream",
|
||||
"stream": apn.get_display_recipient(message.recipient),
|
||||
"topic": message.subject,
|
||||
}
|
||||
self.assertDictEqual(payload, expected)
|
||||
|
||||
def test_get_gcm_payload_personal(self):
|
||||
# type: () -> None
|
||||
email = "hamlet@zulip.com"
|
||||
message = self.get_message(Recipient.PERSONAL, 1)
|
||||
user_profile = get_user_profile_by_email(email)
|
||||
payload = apn.get_gcm_payload(user_profile, message)
|
||||
expected = {
|
||||
"user": email,
|
||||
"event": "message",
|
||||
"alert": "New private message from King Hamlet",
|
||||
"zulip_message_id": message.id,
|
||||
"time": apn.datetime_to_timestamp(message.pub_date),
|
||||
"content": message.content,
|
||||
"content_truncated": False,
|
||||
"sender_email": "hamlet@zulip.com",
|
||||
"sender_full_name": "King Hamlet",
|
||||
"sender_avatar_url": apn.avatar_url(message.sender),
|
||||
"recipient_type": "private",
|
||||
}
|
||||
self.assertDictEqual(payload, expected)
|
||||
|
||||
class TestPushApi(ZulipTestCase):
|
||||
def test_push_api(self):
|
||||
# type: () -> None
|
||||
|
||||
Loading…
Reference in New Issue
Block a user