mirror of
https://github.com/zulip/zulip.git
synced 2025-11-10 17:07:07 +00:00
webhooks: Add Facebook integration.
This commit is contained in:
110
zerver/webhooks/facebook/tests.py
Normal file
110
zerver/webhooks/facebook/tests.py
Normal file
@@ -0,0 +1,110 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user