@@ -288,3 +288,50 @@ def ensure_requester_left_room(self):
288288 # if the user isn't already in the room), because we only want to
289289 # make sure the user isn't in the room.
290290 pass
291+
292+
293+ class OwnProfileUnrestrictedTestCase (unittest .HomeserverTestCase ):
294+
295+ servlets = [
296+ admin .register_servlets_for_client_rest_resource ,
297+ login .register_servlets ,
298+ profile .register_servlets ,
299+ ]
300+
301+ def make_homeserver (self , reactor , clock ):
302+ config = self .default_config ()
303+ config ["require_auth_for_profile_requests" ] = True
304+ self .hs = self .setup_test_homeserver (config = config )
305+
306+ return self .hs
307+
308+ def prepare (self , reactor , clock , hs ):
309+ # User requesting the profile.
310+ self .requester = self .register_user ("requester" , "pass" )
311+ self .requester_tok = self .login ("requester" , "pass" )
312+
313+ def test_can_lookup_own_profile (self ):
314+ """Tests that a user can lookup their own profile without having to be in a room
315+ if 'require_auth_for_profile_requests' is set to true in the server's config.
316+ """
317+ request , channel = self .make_request (
318+ "GET" , "/profile/" + self .requester , access_token = self .requester_tok
319+ )
320+ self .render (request )
321+ self .assertEqual (channel .code , 200 , channel .result )
322+
323+ request , channel = self .make_request (
324+ "GET" ,
325+ "/profile/" + self .requester + "/displayname" ,
326+ access_token = self .requester_tok ,
327+ )
328+ self .render (request )
329+ self .assertEqual (channel .code , 200 , channel .result )
330+
331+ request , channel = self .make_request (
332+ "GET" ,
333+ "/profile/" + self .requester + "/avatar_url" ,
334+ access_token = self .requester_tok ,
335+ )
336+ self .render (request )
337+ self .assertEqual (channel .code , 200 , channel .result )
0 commit comments