mirror of https://github.com/zulip/zulip.git
111 lines
5.0 KiB
Python
111 lines
5.0 KiB
Python
from typing import Optional, Text
|
|
|
|
from zerver.lib.test_classes import WebhookTestCase
|
|
|
|
class FacebookTests(WebhookTestCase):
|
|
STREAM_NAME = 'Facebook'
|
|
URL_TEMPLATE = "/api/v1/external/facebook?api_key={api_key}&stream={stream}&token=aaaa"
|
|
FIXTURE_DIR_NAME = 'facebook'
|
|
|
|
def test_application_plugin_comment(self) -> None:
|
|
expected_subject = u'application notification'
|
|
expected_message = u'**plugin_comment** received'\
|
|
u'\n**Test User:**'\
|
|
u'\n```quote'\
|
|
u'\nTest Comment'\
|
|
u'\n```'
|
|
self.send_and_test_stream_message('application_plugin_comment',
|
|
expected_subject, expected_message)
|
|
|
|
def test_application_plugin_comment_reply(self) -> None:
|
|
expected_subject = u'application notification'
|
|
expected_message = u'**plugin_comment_reply** received'\
|
|
u'\n**Test User 1:** (Parent)'\
|
|
u'\n```quote'\
|
|
u'\nTest Parent Comment'\
|
|
u'\n```'\
|
|
u'\n**Test User:**'\
|
|
u'\n```quote'\
|
|
u'\n```quote'\
|
|
u'\nTest Comment'\
|
|
u'\n```'\
|
|
u'\n```'
|
|
self.send_and_test_stream_message('application_plugin_comment_reply',
|
|
expected_subject, expected_message)
|
|
|
|
def test_page_conversations(self) -> None:
|
|
expected_subject = u'page notification'
|
|
expected_message = u'Updated **conversations**'\
|
|
u'\n[Open conversations...](https://www.facebook.com/'\
|
|
u'4444444/t_mid.14833205540:9182a4e489)'
|
|
self.send_and_test_stream_message('page_conversations',
|
|
expected_subject, expected_message)
|
|
|
|
def test_page_website_test(self) -> None:
|
|
expected_subject = u'page notification'
|
|
expected_message = u'Changed **website**'
|
|
self.send_and_test_stream_message('page_website',
|
|
expected_subject, expected_message)
|
|
|
|
def test_permissions_ads_management(self) -> None:
|
|
expected_subject = u'permissions notification'
|
|
expected_message = u'**ads_management permission** changed'\
|
|
u'\n* granted'\
|
|
u'\n * 123123123123123'\
|
|
u'\n * 321321321321321'
|
|
self.send_and_test_stream_message('permissions_ads_management',
|
|
expected_subject, expected_message)
|
|
|
|
def test_permissions_manage_pages(self) -> None:
|
|
expected_subject = u'permissions notification'
|
|
expected_message = u'**manage_pages permission** changed'\
|
|
u'\n* granted'\
|
|
u'\n * 123123123123123'\
|
|
u'\n * 321321321321321'
|
|
self.send_and_test_stream_message('permissions_manage_pages',
|
|
expected_subject, expected_message)
|
|
|
|
def test_user_email(self) -> None:
|
|
expected_subject = u'user notification'
|
|
expected_message = u'Changed **email**'\
|
|
u'\nTo: *example_email@facebook.com*'
|
|
self.send_and_test_stream_message('user_email',
|
|
expected_subject, expected_message)
|
|
|
|
def test_user_feed(self) -> None:
|
|
expected_subject = u'user notification'
|
|
expected_message = u'Changed **feed**'
|
|
self.send_and_test_stream_message('user_feed',
|
|
expected_subject, expected_message)
|
|
|
|
def test_webhook_verify_request(self) -> None:
|
|
self.subscribe(self.test_user, self.STREAM_NAME)
|
|
get_params = {'stream_name': self.STREAM_NAME,
|
|
'hub.challenge': '9B2SVL4orbt5DxLMqJHI6pOTipTqingt2YFMIO0g06E',
|
|
'api_key': self.test_user.api_key,
|
|
'hub.mode': 'subscribe',
|
|
'hub.verify_token': 'aaaa',
|
|
'token': 'aaaa'}
|
|
result = self.client_get(self.url, get_params)
|
|
self.assert_in_response('9B2SVL4orbt5DxLMqJHI6pOTipTqingt2YFMIO0g06E', result)
|
|
|
|
def test_error_webhook_verify_request_wrong_token(self) -> None:
|
|
self.subscribe(self.test_user, self.STREAM_NAME)
|
|
get_params = {'stream_name': self.STREAM_NAME,
|
|
'hub.challenge': '9B2SVL4orbt5DxLMqJHI6pOTipTqingt2YFMIO0g06E',
|
|
'api_key': self.test_user.api_key,
|
|
'hub.mode': 'subscribe',
|
|
'hub.verify_token': 'aaaa',
|
|
'token': 'wrong_token'}
|
|
result = self.client_get(self.url, get_params)
|
|
self.assert_in_response('Error: Token is wrong', result)
|
|
|
|
def test_error_webhook_verify_request_unsupported_method(self) -> None:
|
|
self.subscribe(self.test_user, self.STREAM_NAME)
|
|
get_params = {'stream_name': self.STREAM_NAME,
|
|
'api_key': self.test_user.api_key,
|
|
'hub.mode': 'unsupported_method',
|
|
'token': 'aaaa'}
|
|
result = self.client_get(self.url, get_params)
|
|
self.assert_in_response('Error: Unsupported method', result)
|