From 053d51e8c6484f95b43c7b45e5b42fcb3e89784c Mon Sep 17 00:00:00 2001 From: NavaL Date: Thu, 19 May 2016 11:51:43 +0200 Subject: when invalid soledad auth token, it logs user out if multi-user and stops the reactor if single-user mode Issue #689 --- service/test/unit/test_application.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'service/test/unit/test_application.py') diff --git a/service/test/unit/test_application.py b/service/test/unit/test_application.py index 5f7f9c74..7fb2b9ff 100644 --- a/service/test/unit/test_application.py +++ b/service/test/unit/test_application.py @@ -1,5 +1,6 @@ import unittest +from leap.common.events import catalog as events from mock import patch, MagicMock, ANY import pixelated @@ -73,3 +74,34 @@ class ApplicationTest(unittest.TestCase): d.addCallback(_assert) return d + + @patch('leap.common.events.client') + @patch('pixelated.application.reactor') + @patch('pixelated.application.services.Services') + def test_should_log_user_out_if_invalid_soledad_token(self, services_mock, reactor_mock, events_mock): + app_mock = MagicMock() + services_factory_mock = MagicMock() + + mock_service_log_user_out = MagicMock(return_value=None) + services_factory_mock.log_out_user = mock_service_log_user_out + + leap_session = MagicMock() + register_mock = events_mock.register + register_mock.register.return_value = None + + config = ApplicationTest.MockConfig(12345, '127.0.0.1') + d = pixelated.application.start_user_agent_in_single_user_mode(app_mock, services_factory_mock, config.home, leap_session) + + pixelated.application.add_top_level_system_callbacks(d, services_factory_mock) + + def _assert_user_logged_out(_): + used_arguments = register_mock.call_args[0] + self.assertIsNotNone(used_arguments) + soledad_invalid_auth_event = used_arguments[0] + self.assertEqual(soledad_invalid_auth_event, events.SOLEDAD_INVALID_AUTH_TOKEN) + used_log_out_method = used_arguments[1] + used_log_out_method({'uuid': 'some_uuid'}) + mock_service_log_user_out.assert_called_once_with('some_uuid') + + d.addCallback(_assert_user_logged_out) + return d -- cgit v1.2.3