@@ -473,34 +473,37 @@ def test_room_list_sort_order(self):
473
473
"""Test room list sort ordering. alphabetical name versus number of members,
474
474
reversing the order, etc.
475
475
"""
476
- # Create 3 test rooms
477
- room_id_1 = self .helper .create_room_as (self .admin_user , tok = self .admin_user_tok )
478
- room_id_2 = self .helper .create_room_as (self .admin_user , tok = self .admin_user_tok )
479
- room_id_3 = self .helper .create_room_as (self .admin_user , tok = self .admin_user_tok )
480
-
481
- # Set room names in alphabetical order. room 1 -> A, 2 -> B, 3 -> C
482
- self .helper .send_state (
483
- room_id_1 , "m.room.name" , {"name" : "A" }, tok = self .admin_user_tok ,
484
- )
485
- self .helper .send_state (
486
- room_id_2 , "m.room.name" , {"name" : "B" }, tok = self .admin_user_tok ,
487
- )
488
- self .helper .send_state (
489
- room_id_3 , "m.room.name" , {"name" : "C" }, tok = self .admin_user_tok ,
490
- )
491
-
492
- # Set room member size in the reverse order. room 1 -> 1 member, 2 -> 2, 3 -> 3
493
- user_1 = self .register_user ("bob1" , "pass" )
494
- user_1_tok = self .login ("bob1" , "pass" )
495
- self .helper .join (room_id_2 , user_1 , tok = user_1_tok )
496
476
497
- user_2 = self .register_user ("bob2" , "pass" )
498
- user_2_tok = self .login ("bob2" , "pass" )
499
- self .helper .join (room_id_3 , user_2 , tok = user_2_tok )
477
+ def _set_canonical_alias (room_id : str , test_alias : str , admin_user_tok : str ):
478
+ # Create a new alias to this room
479
+ url = "/_matrix/client/r0/directory/room/%s" % (
480
+ urllib .parse .quote (test_alias ),
481
+ )
482
+ request , channel = self .make_request (
483
+ "PUT" ,
484
+ url .encode ("ascii" ),
485
+ {"room_id" : room_id },
486
+ access_token = admin_user_tok ,
487
+ )
488
+ self .render (request )
489
+ self .assertEqual (
490
+ 200 , int (channel .result ["code" ]), msg = channel .result ["body" ]
491
+ )
500
492
501
- user_3 = self .register_user ("bob3" , "pass" )
502
- user_3_tok = self .login ("bob3" , "pass" )
503
- self .helper .join (room_id_3 , user_3 , tok = user_3_tok )
493
+ # Set this new alias as the canonical alias for this room
494
+ self .helper .send_state (
495
+ room_id ,
496
+ "m.room.aliases" ,
497
+ {"aliases" : [test_alias ]},
498
+ tok = admin_user_tok ,
499
+ state_key = "test" ,
500
+ )
501
+ self .helper .send_state (
502
+ room_id ,
503
+ "m.room.canonical_alias" ,
504
+ {"alias" : test_alias },
505
+ tok = admin_user_tok ,
506
+ )
504
507
505
508
def _order_test (
506
509
order_type : str , expected_room_list : List [str ], reverse : bool = False ,
@@ -544,13 +547,85 @@ def _order_test(
544
547
returned_order = [r ["room_id" ] for r in rooms ]
545
548
self .assertListEqual (expected_room_list , returned_order ) # order is checked
546
549
550
+ # Create 3 test rooms
551
+ room_id_1 = self .helper .create_room_as (self .admin_user , tok = self .admin_user_tok )
552
+ room_id_2 = self .helper .create_room_as (self .admin_user , tok = self .admin_user_tok )
553
+ room_id_3 = self .helper .create_room_as (self .admin_user , tok = self .admin_user_tok )
554
+
555
+ # Set room names in alphabetical order. room 1 -> A, 2 -> B, 3 -> C
556
+ self .helper .send_state (
557
+ room_id_1 , "m.room.name" , {"name" : "A" }, tok = self .admin_user_tok ,
558
+ )
559
+ self .helper .send_state (
560
+ room_id_2 , "m.room.name" , {"name" : "B" }, tok = self .admin_user_tok ,
561
+ )
562
+ self .helper .send_state (
563
+ room_id_3 , "m.room.name" , {"name" : "C" }, tok = self .admin_user_tok ,
564
+ )
565
+
566
+ # Set room canonical room aliases
567
+ _set_canonical_alias (room_id_1 , "#A_alias:test" , self .admin_user_tok )
568
+ _set_canonical_alias (room_id_2 , "#B_alias:test" , self .admin_user_tok )
569
+ _set_canonical_alias (room_id_3 , "#C_alias:test" , self .admin_user_tok )
570
+
571
+ # Set room member size in the reverse order. room 1 -> 1 member, 2 -> 2, 3 -> 3
572
+ user_1 = self .register_user ("bob1" , "pass" )
573
+ user_1_tok = self .login ("bob1" , "pass" )
574
+ self .helper .join (room_id_2 , user_1 , tok = user_1_tok )
575
+
576
+ user_2 = self .register_user ("bob2" , "pass" )
577
+ user_2_tok = self .login ("bob2" , "pass" )
578
+ self .helper .join (room_id_3 , user_2 , tok = user_2_tok )
579
+
580
+ user_3 = self .register_user ("bob3" , "pass" )
581
+ user_3_tok = self .login ("bob3" , "pass" )
582
+ self .helper .join (room_id_3 , user_3 , tok = user_3_tok )
583
+
547
584
# Test different sort orders, with forward and reverse directions
548
585
_order_test ("name" , [room_id_1 , room_id_2 , room_id_3 ])
549
586
_order_test ("name" , [room_id_3 , room_id_2 , room_id_1 ], reverse = True )
550
587
588
+ _order_test ("canonical_alias" , [room_id_1 , room_id_2 , room_id_3 ])
589
+ _order_test ("canonical_alias" , [room_id_3 , room_id_2 , room_id_1 ], reverse = True )
590
+
551
591
_order_test ("joined_members" , [room_id_3 , room_id_2 , room_id_1 ])
552
592
_order_test ("joined_members" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
553
593
594
+ _order_test ("joined_local_members" , [room_id_3 , room_id_2 , room_id_1 ])
595
+ _order_test (
596
+ "joined_local_members" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True
597
+ )
598
+
599
+ _order_test ("version" , [room_id_1 , room_id_2 , room_id_3 ])
600
+ _order_test ("version" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
601
+
602
+ _order_test ("creator" , [room_id_1 , room_id_2 , room_id_3 ])
603
+ _order_test ("creator" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
604
+
605
+ _order_test ("encryption" , [room_id_1 , room_id_2 , room_id_3 ])
606
+ _order_test ("encryption" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
607
+
608
+ _order_test ("federatable" , [room_id_1 , room_id_2 , room_id_3 ])
609
+ _order_test ("federatable" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
610
+
611
+ _order_test ("public" , [room_id_1 , room_id_2 , room_id_3 ])
612
+ # Different sort order of SQlite and PostreSQL
613
+ # _order_test("public", [room_id_3, room_id_2, room_id_1], reverse=True)
614
+
615
+ _order_test ("join_rules" , [room_id_1 , room_id_2 , room_id_3 ])
616
+ _order_test ("join_rules" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
617
+
618
+ _order_test ("guest_access" , [room_id_1 , room_id_2 , room_id_3 ])
619
+ _order_test ("guest_access" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
620
+
621
+ _order_test ("history_visibility" , [room_id_1 , room_id_2 , room_id_3 ])
622
+ _order_test (
623
+ "history_visibility" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True
624
+ )
625
+
626
+ _order_test ("state_events" , [room_id_3 , room_id_2 , room_id_1 ])
627
+ _order_test ("state_events" , [room_id_1 , room_id_2 , room_id_3 ], reverse = True )
628
+
554
629
def test_search_term (self ):
555
630
"""Test that searching for a room works correctly"""
556
631
# Create two test rooms
0 commit comments