diff options
author | Hanadi <hanadi.tamimi@gmail.com> | 2023-09-13 14:33:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-13 08:33:39 -0400 |
commit | 7afb5e041004bab8b0aaf7909ce3c7a9ef80077f (patch) | |
tree | 567e71b3729378fdb41cba6b331e570f58c6459c /tests/handlers/test_device.py | |
parent | Use StrCollection in additional places. (#16301) (diff) | |
download | synapse-7afb5e041004bab8b0aaf7909ce3c7a9ef80077f.tar.xz |
Fix using dehydrated devices (MSC2697) & refresh tokens (#16288)
Refresh tokens were not correctly moved to the rehydrated device (similar to how the access token is currently handled). This resulted in invalid refresh tokens after rehydration.
Diffstat (limited to 'tests/handlers/test_device.py')
-rw-r--r-- | tests/handlers/test_device.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tests/handlers/test_device.py b/tests/handlers/test_device.py index 79d327499b..d4ed068357 100644 --- a/tests/handlers/test_device.py +++ b/tests/handlers/test_device.py @@ -461,6 +461,7 @@ class DehydrationTestCase(unittest.HomeserverTestCase): self.message_handler = hs.get_device_message_handler() self.registration = hs.get_registration_handler() self.auth = hs.get_auth() + self.auth_handler = hs.get_auth_handler() self.store = hs.get_datastores().main return hs @@ -487,11 +488,12 @@ class DehydrationTestCase(unittest.HomeserverTestCase): self.assertEqual(device_data, {"device_data": {"foo": "bar"}}) # Create a new login for the user and dehydrated the device - device_id, access_token, _expiration_time, _refresh_token = self.get_success( + device_id, access_token, _expiration_time, refresh_token = self.get_success( self.registration.register_device( user_id=user_id, device_id=None, initial_display_name="new device", + should_issue_refresh_token=True, ) ) @@ -522,6 +524,12 @@ class DehydrationTestCase(unittest.HomeserverTestCase): self.assertEqual(user_info.device_id, retrieved_device_id) + # make sure the user device has the refresh token + assert refresh_token is not None + self.get_success( + self.auth_handler.refresh_token(refresh_token, 5 * 60 * 1000, 5 * 60 * 1000) + ) + # make sure the device has the display name that was set from the login res = self.get_success(self.handler.get_device(user_id, retrieved_device_id)) |