From 5c096da81bca4df7a25f81b96a7e6df3d64fdb5c Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 7 Apr 2022 14:41:13 +0100 Subject: [PATCH 1/3] Test that can reject federated invites --- lib/SyTest/Homeserver.pm | 2 +- tests/30rooms/06invite.pl | 2 ++ tests/31sync/15lazy-members.pl | 48 ++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 1 deletion(-) diff --git a/lib/SyTest/Homeserver.pm b/lib/SyTest/Homeserver.pm index 8a5b0cd41..a14f8c3fc 100644 --- a/lib/SyTest/Homeserver.pm +++ b/lib/SyTest/Homeserver.pm @@ -241,7 +241,7 @@ sub configure_logger loggers => { synapse => { - level => "INFO" + level => "DEBUG" } }, diff --git a/tests/30rooms/06invite.pl b/tests/30rooms/06invite.pl index 32700f546..605352f4f 100644 --- a/tests/30rooms/06invite.pl +++ b/tests/30rooms/06invite.pl @@ -28,6 +28,8 @@ sub inviteonly_room_fixture ) } +push our @EXPORT, qw( inviteonly_room_fixture ); + multi_test "Can invite users to invite-only rooms", # TODO: deprecated endpoint used in this test requires => do { diff --git a/tests/31sync/15lazy-members.pl b/tests/31sync/15lazy-members.pl index 06773ef11..de53f84b1 100644 --- a/tests/31sync/15lazy-members.pl +++ b/tests/31sync/15lazy-members.pl @@ -807,3 +807,51 @@ sub check_filler_event { Future->done(1); }); }; + + +test "Rejecing invite over federation doesn't break incremental /sync", + requires => [ remote_user_fixture(), + do { + my $creator = local_user_fixture(); + $creator, inviteonly_room_fixture( creator => $creator ); + } + ], + + check => sub { + my ( $invitee, $creator, $room_id ) = @_; + + my ( $filter_id ); + + matrix_create_filter( $invitee, { + room => { + state => { + lazy_load_members => JSON::true, + include_redundant_members => JSON::true, + }, + timeline => { + limit => 10 + }, + } + })->then( sub { + ( $filter_id ) = @_; + + matrix_sync( $invitee, filter => $filter_id ) + })->then( sub { + matrix_invite_user_to_room_synced( $creator, $invitee, $room_id ) + })->then( sub { + matrix_leave_room_synced( $invitee, $room_id ) + })->then( sub { + matrix_sync_again( $invitee, filter => $filter_id ) + })->then( sub { + my ( $body ) = @_; + + # Check that invitee no longer sees the invite + + if( exists $body->{rooms} and exists $body->{rooms}{invite} ) { + assert_json_object( $body->{rooms}{invite} ); + keys %{ $body->{rooms}{invite} } and die "Expected empty dictionary"; + } + + Future->done( 1 ); + }); + }; From 6fa257a07e90e8e0ee808021bd813cbb9056c30f Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 7 Apr 2022 15:59:03 +0100 Subject: [PATCH 2/3] Update tests/31sync/15lazy-members.pl Co-authored-by: Patrick Cloke --- tests/31sync/15lazy-members.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/31sync/15lazy-members.pl b/tests/31sync/15lazy-members.pl index de53f84b1..3d384b211 100644 --- a/tests/31sync/15lazy-members.pl +++ b/tests/31sync/15lazy-members.pl @@ -809,7 +809,7 @@ sub check_filler_event { }; -test "Rejecing invite over federation doesn't break incremental /sync", +test "Rejecting invite over federation doesn't break incremental /sync", requires => [ remote_user_fixture(), do { my $creator = local_user_fixture(); From 97b2e76a4d7efc60bb8edc364587ff6e1def4d45 Mon Sep 17 00:00:00 2001 From: Erik Johnston Date: Thu, 7 Apr 2022 16:26:40 +0100 Subject: [PATCH 3/3] Update lib/SyTest/Homeserver.pm Co-authored-by: Patrick Cloke --- lib/SyTest/Homeserver.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/SyTest/Homeserver.pm b/lib/SyTest/Homeserver.pm index a14f8c3fc..8a5b0cd41 100644 --- a/lib/SyTest/Homeserver.pm +++ b/lib/SyTest/Homeserver.pm @@ -241,7 +241,7 @@ sub configure_logger loggers => { synapse => { - level => "DEBUG" + level => "INFO" } },