class FacebookCanvasMiddlewareTest(FacebookTest): def setUp(self): super(FacebookCanvasMiddlewareTest, self).setUp() self.factory = RequestFactory() self.middleware = FacebookCanvasMiddleWare() self.session_middleware = SessionMiddleware() def get_canvas_url(self, data={}): request = self.factory.post('/', data) request.META['HTTP_REFERER'] = 'https://apps.facebook.com/canvas/' self.session_middleware.process_request(request) return request def test_referer(self): # test empty referer request = self.factory.get('/') self.assertIsNone(self.middleware.process_request(request)) # test referer not facebook request = self.factory.get('/') request.META['HTTP_REFERER'] = 'https://*****:*****@patch.object(FacebookAuthorization, 'parse_signed_data') def test_non_auth_user(self, mocked_method=FacebookAuthorization.parse_signed_data): mocked_method.return_value = {} data = {'signed_request': 'dXairHLF8dfUKaL7ZFXaKmTsAglg0EkyHesTLnPcPAE.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTM1ODA2MTU1MSwidXNlciI6eyJjb3VudHJ5IjoiYnIiLCJsb2NhbGUiOiJlbl9VUyIsImFnZSI6eyJtaW4iOjIxfX19'} request = self.get_canvas_url(data=data) response = self.middleware.process_request(request) self.assertTrue(mocked_method.called) self.assertIsInstance(response, ScriptRedirect) @patch('django_facebook.middleware.connect_user', fake_connect) @patch.object(OpenFacebook, 'permissions') @patch.object(FacebookAuthorization, 'parse_signed_data') def test_auth_user( self, mocked_method_1=FacebookAuthorization.parse_signed_data, mocked_method_2=OpenFacebook.permissions): data = {'signed_request': 'd7JQQIfxHgEzLIqJMeU9J5IlLg7shzPJ8DFRF55L52w.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImV4cGlyZXMiOjEzNTgwNzQ4MDAsImlzc3VlZF9hdCI6MTM1ODA2ODU1MCwib2F1dGhfdG9rZW4iOiJBQUFGdk02MWpkT0FCQVBhWkNzR1pDM0dEVFZtdDJCWkFQVlpDc0F0aGNmdXBYUnhMN1cwUHBaQm53OEUwTzBBRVNYNjVaQ0JHdjZpOFRBWGhnMEpzbER5UmtmZUlnYnNHUmV2eHQxblFGZ0hNcFNpeTNWRTB3ZCIsInVzZXIiOnsiY291bnRyeSI6ImJyIiwibG9jYWxlIjoiZW5fVVMiLCJhZ2UiOnsibWluIjoyMX19LCJ1c2VyX2lkIjoiMTAwMDA1MDEyNDY2Nzg1In0'} request = self.get_canvas_url(data=data) request.user = AnonymousUser() mocked_method_1.return_value = {'user_id': '123456', 'oauth_token': 'qwertyuiop'} mocked_method_2.return_value = facebook_settings.FACEBOOK_DEFAULT_SCOPE self.assertIsNone(self.middleware.process_request(request)) self.assertTrue(mocked_method_1.called)
def setUp(self): super(FacebookCanvasMiddlewareTest, self).setUp() self.factory = RequestFactory() self.middleware = FacebookCanvasMiddleWare() self.session_middleware = SessionMiddleware()