@@ -2975,6 +2975,86 @@ def test_join_private_room_if_owner(self) -> None:
29752975 self .assertEqual (200 , channel .code , msg = channel .json_body )
29762976 self .assertEqual (private_room_id , channel .json_body ["joined_rooms" ][0 ])
29772977
2978+ def test_joined_rooms (self ) -> None :
2979+ """
2980+ Test joined_rooms admin endpoint.
2981+ """
2982+
2983+ channel = self .make_request (
2984+ "POST" ,
2985+ f"/_matrix/client/v3/join/{ self .public_room_id } " ,
2986+ content = {"user_id" : self .second_user_id },
2987+ access_token = self .second_tok ,
2988+ )
2989+
2990+ self .assertEqual (200 , channel .code , msg = channel .json_body )
2991+ self .assertEqual (self .public_room_id , channel .json_body ["room_id" ])
2992+
2993+ channel = self .make_request (
2994+ "GET" ,
2995+ f"/_synapse/admin/v1/users/{ self .second_user_id } /joined_rooms" ,
2996+ access_token = self .admin_user_tok ,
2997+ )
2998+ self .assertEqual (200 , channel .code , msg = channel .json_body )
2999+ self .assertEqual (self .public_room_id , channel .json_body ["joined_rooms" ][0 ])
3000+
3001+ def test_memberships (self ) -> None :
3002+ """
3003+ Test user memberships admin endpoint.
3004+ """
3005+
3006+ channel = self .make_request (
3007+ "POST" ,
3008+ f"/_matrix/client/v3/join/{ self .public_room_id } " ,
3009+ content = {"user_id" : self .second_user_id },
3010+ access_token = self .second_tok ,
3011+ )
3012+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3013+
3014+ other_room_id = self .helper .create_room_as (
3015+ self .admin_user , tok = self .admin_user_tok
3016+ )
3017+
3018+ channel = self .make_request (
3019+ "POST" ,
3020+ f"/_matrix/client/v3/join/{ other_room_id } " ,
3021+ content = {"user_id" : self .second_user_id },
3022+ access_token = self .second_tok ,
3023+ )
3024+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3025+
3026+ channel = self .make_request (
3027+ "GET" ,
3028+ f"/_synapse/admin/v1/users/{ self .second_user_id } /memberships" ,
3029+ access_token = self .admin_user_tok ,
3030+ )
3031+
3032+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3033+ self .assertEqual (
3034+ {self .public_room_id : Membership .JOIN , other_room_id : Membership .JOIN },
3035+ channel .json_body ,
3036+ )
3037+
3038+ channel = self .make_request (
3039+ "POST" ,
3040+ f"/_matrix/client/v3/rooms/{ other_room_id } /leave" ,
3041+ content = {"user_id" : self .second_user_id },
3042+ access_token = self .second_tok ,
3043+ )
3044+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3045+
3046+ channel = self .make_request (
3047+ "GET" ,
3048+ f"/_synapse/admin/v1/users/{ self .second_user_id } /memberships" ,
3049+ access_token = self .admin_user_tok ,
3050+ )
3051+
3052+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3053+ self .assertEqual (
3054+ {self .public_room_id : Membership .JOIN , other_room_id : Membership .LEAVE },
3055+ channel .json_body ,
3056+ )
3057+
29783058 def test_context_as_non_admin (self ) -> None :
29793059 """
29803060 Test that, without being admin, one cannot use the context admin API
0 commit comments