From 17f73cd70251832334b9ebf532c790c19b7c36af Mon Sep 17 00:00:00 2001 From: Hugh Nimmo-Smith Date: Thu, 25 May 2023 13:39:06 +0100 Subject: [PATCH] Add tests for unstable support whilst still relied on --- tests/rest/client/test_login_token_request.py | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/tests/rest/client/test_login_token_request.py b/tests/rest/client/test_login_token_request.py index d14612cafa..d2344aa9ab 100644 --- a/tests/rest/client/test_login_token_request.py +++ b/tests/rest/client/test_login_token_request.py @@ -15,7 +15,7 @@ from twisted.test.proto_helpers import MemoryReactor from synapse.rest import admin -from synapse.rest.client import login, login_token_request +from synapse.rest.client import login, login_token_request, versions from synapse.server import HomeServer from synapse.util import Clock @@ -30,6 +30,7 @@ class LoginTokenRequestServletTestCase(unittest.HomeserverTestCase): login.register_servlets, admin.register_servlets, login_token_request.register_servlets, + versions.register_servlets, # TODO: remove once unstable revision 0 support is removed ] def make_homeserver(self, reactor: MemoryReactor, clock: Clock) -> HomeServer: @@ -131,3 +132,28 @@ class LoginTokenRequestServletTestCase(unittest.HomeserverTestCase): channel = self.make_request("POST", GET_TOKEN_ENDPOINT, {}, access_token=token) self.assertEqual(channel.code, 200) self.assertEqual(channel.json_body["expires_in_ms"], 15000) + + @override_config( + { + "login_via_existing_session": { + "enabled": True, + "require_ui_auth": False, + "token_timeout": "15s", + } + } + ) + def test_unstable_support(self) -> None: + # TODO: remove support for unstable MSC3882 is no longer needed + + # check feature is advertised in versions response: + channel = self.make_request("GET", "/_matrix/client/versions", {}, access_token=None) + self.assertEqual(channel.code, 200) + self.assertEqual(channel.json_body["unstable_features"]["org.matrix.msc3882"], True) + + self.register_user(self.user, self.password) + token = self.login(self.user, self.password) + + # check feature is available via the unstable endpoint and returns an expires_in value in seconds + channel = self.make_request("POST", "/_matrix/client/unstable/org.matrix.msc3882/login/token", {}, access_token=token) + self.assertEqual(channel.code, 200) + self.assertEqual(channel.json_body["expires_in"], 15)