|
24 | 24 | import synapse.rest.admin
|
25 | 25 | from synapse.api.constants import LoginType, Membership
|
26 | 26 | from synapse.api.errors import Codes, HttpResponseException
|
| 27 | +from synapse.appservice import ApplicationService |
27 | 28 | from synapse.rest.client.v1 import login, room
|
28 | 29 | from synapse.rest.client.v2_alpha import account, register
|
29 | 30 | from synapse.rest.synapse.client.password_reset import PasswordResetSubmitTokenResource
|
@@ -397,7 +398,7 @@ def test_deactivate_account(self):
|
397 | 398 | self.assertTrue(self.get_success(store.get_user_deactivated_status(user_id)))
|
398 | 399 |
|
399 | 400 | # Check that this access token has been invalidated.
|
400 |
| - channel = self.make_request("GET", "account/whoami") |
| 401 | + channel = self.make_request("GET", "account/whoami", access_token=tok) |
401 | 402 | self.assertEqual(channel.code, 401)
|
402 | 403 |
|
403 | 404 | def test_pending_invites(self):
|
@@ -458,6 +459,46 @@ def deactivate(self, user_id, tok):
|
458 | 459 | self.assertEqual(channel.code, 200)
|
459 | 460 |
|
460 | 461 |
|
| 462 | +class WhoamiTestCase(unittest.HomeserverTestCase): |
| 463 | + |
| 464 | + servlets = [ |
| 465 | + synapse.rest.admin.register_servlets_for_client_rest_resource, |
| 466 | + login.register_servlets, |
| 467 | + account.register_servlets, |
| 468 | + register.register_servlets, |
| 469 | + ] |
| 470 | + |
| 471 | + def test_GET_whoami(self): |
| 472 | + device_id = "wouldgohere" |
| 473 | + user_id = self.register_user("kermit", "test") |
| 474 | + tok = self.login("kermit", "test", device_id=device_id) |
| 475 | + |
| 476 | + whoami = self.whoami(tok) |
| 477 | + self.assertEqual(whoami, {"user_id": user_id, "device_id": device_id}) |
| 478 | + |
| 479 | + def test_GET_whoami_appservices(self): |
| 480 | + user_id = "@as:test" |
| 481 | + as_token = "i_am_an_app_service" |
| 482 | + |
| 483 | + appservice = ApplicationService( |
| 484 | + as_token, |
| 485 | + self.hs.config.server_name, |
| 486 | + id="1234", |
| 487 | + namespaces={"users": [{"regex": user_id, "exclusive": True}]}, |
| 488 | + sender=user_id, |
| 489 | + ) |
| 490 | + self.hs.get_datastore().services_cache.append(appservice) |
| 491 | + |
| 492 | + whoami = self.whoami(as_token) |
| 493 | + self.assertEqual(whoami, {"user_id": user_id}) |
| 494 | + self.assertFalse(hasattr(whoami, "device_id")) |
| 495 | + |
| 496 | + def whoami(self, tok): |
| 497 | + channel = self.make_request("GET", "account/whoami", {}, access_token=tok) |
| 498 | + self.assertEqual(channel.code, 200) |
| 499 | + return channel.json_body |
| 500 | + |
| 501 | + |
461 | 502 | class ThreepidEmailRestTestCase(unittest.HomeserverTestCase):
|
462 | 503 |
|
463 | 504 | servlets = [
|
|
0 commit comments