@@ -264,3 +264,43 @@ def test_get_get_token_login_fields_when_enabled(self) -> None:
264
264
265
265
self .assertEqual (channel .code , HTTPStatus .OK )
266
266
self .assertTrue (capabilities ["m.get_login_token" ]["enabled" ])
267
+
268
+ @override_config (
269
+ {
270
+ "experimental_features" : {"msc4267_enabled" : True },
271
+ "forget_rooms_on_leave" : True ,
272
+ }
273
+ )
274
+ def test_get_forget_forced_upon_leave_with_auto_forget (self ) -> None :
275
+ # Server auto-forgets on /leave, expect enabled client capability
276
+ access_token = self .get_success (
277
+ self .auth_handler .create_access_token_for_user_id (
278
+ self .user , device_id = None , valid_until_ms = None
279
+ )
280
+ )
281
+ channel = self .make_request ("GET" , self .url , access_token = access_token )
282
+ capabilities = channel .json_body ["capabilities" ]
283
+ self .assertEqual (channel .code , HTTPStatus .OK )
284
+ self .assertTrue (
285
+ capabilities ["org.matrix.msc4267.forget_forced_upon_leave" ]["enabled" ]
286
+ )
287
+
288
+ @override_config (
289
+ {
290
+ "experimental_features" : {"msc4267_enabled" : True },
291
+ "forget_rooms_on_leave" : False ,
292
+ }
293
+ )
294
+ def test_get_forget_forced_upon_leave_without_auto_forget (self ) -> None :
295
+ # Server doesn't auto-forget on /leave, expect disabled client capability
296
+ access_token = self .get_success (
297
+ self .auth_handler .create_access_token_for_user_id (
298
+ self .user , device_id = None , valid_until_ms = None
299
+ )
300
+ )
301
+ channel = self .make_request ("GET" , self .url , access_token = access_token )
302
+ capabilities = channel .json_body ["capabilities" ]
303
+ self .assertEqual (channel .code , HTTPStatus .OK )
304
+ self .assertFalse (
305
+ capabilities ["org.matrix.msc4267.forget_forced_upon_leave" ]["enabled" ]
306
+ )
0 commit comments