Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 26 additions & 2 deletions tests/30rooms/13guestaccess.pl
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,7 @@ sub guest_user_fixture
})
}

push @EXPORT, qw( matrix_set_room_guest_access );
push @EXPORT, qw( matrix_set_room_guest_access matrix_set_room_guest_access_synced );

sub matrix_set_room_guest_access
{
Expand All @@ -588,6 +588,16 @@ sub matrix_set_room_guest_access
);
}

sub matrix_set_room_guest_access_synced
{
my ( $user, $room_id, $guest_access ) = @_;

matrix_put_room_state_synced( $user, $room_id,
type => "m.room.guest_access",
content => { guest_access => $guest_access }
);
}

push @EXPORT, qw( matrix_get_room_membership );

sub matrix_get_room_membership
Expand All @@ -610,7 +620,7 @@ sub matrix_get_room_membership
}


push @EXPORT, qw( matrix_set_room_history_visibility );
push @EXPORT, qw( matrix_set_room_history_visibility matrix_set_room_history_visibility_synced );

sub matrix_set_room_history_visibility
{
Expand All @@ -626,6 +636,20 @@ sub matrix_set_room_history_visibility
);
}

sub matrix_set_room_history_visibility_synced
{
my ( $user, $room_id, $history_visibility ) = @_;

if ( $history_visibility eq 'default') {
return Future->done();
}

matrix_put_room_state_synced( $user, $room_id,
type => "m.room.history_visibility",
content => { history_visibility => $history_visibility }
);
}

push @EXPORT, qw( expect_4xx_or_empty_chunk);

sub expect_4xx_or_empty_chunk
Expand Down
36 changes: 18 additions & 18 deletions tests/30rooms/30history-visibility.pl
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ sub test_history_visibility

matrix_set_room_history_visibility( $creator, $room_id, $visibility )
->then( sub {
matrix_set_room_guest_access($creator, $room_id, "can_join");
matrix_set_room_guest_access_synced($creator, $room_id, "can_join");
})->then( sub {
matrix_send_room_text_message( $creator, $room_id, body => "Before join" )
matrix_send_room_text_message_synced( $creator, $room_id, body => "Before join" )
->on_done( sub { ( $before_join_event_id ) = @_ } )
})->then( sub {
my $rq = matrix_get_room_messages( $joiner, $room_id, limit => 10 );
Expand All @@ -69,12 +69,12 @@ sub test_history_visibility
$rq->followed_by( \&expect_4xx_or_empty_chunk );
}
})->then( sub {
matrix_invite_user_to_room( $creator, $joiner, $room_id );
matrix_invite_user_to_room_synced( $creator, $joiner, $room_id );
})->then( sub {
matrix_send_room_text_message( $creator, $room_id, body => "After invite" )
matrix_send_room_text_message_synced( $creator, $room_id, body => "After invite" )
->on_done( sub { ( $after_invite_event_id ) = @_ } )
})->then( sub {
matrix_join_room( $joiner, $room_id );
matrix_join_room_synced( $joiner, $room_id );
})->then( sub {
matrix_get_room_messages( $joiner, $room_id, limit => 10 )
})->then( sub {
Expand Down Expand Up @@ -142,7 +142,7 @@ sub test_history_visibility
->then( sub {
( $room_id ) = @_;

matrix_set_room_history_visibility( $user, $room_id, "world_readable" );
matrix_set_room_history_visibility_synced( $user, $room_id, "world_readable" );
})->then( sub {
matrix_initialsync_room( $nonjoined_user, $room_id )
})->then( sub {
Expand Down Expand Up @@ -253,7 +253,7 @@ sub test_history_visibility

matrix_send_room_text_message( $user, $room_id, body => "private" );
})->then( sub {
matrix_set_room_history_visibility( $user, $room_id, "world_readable" );
matrix_set_room_history_visibility_synced( $user, $room_id, "world_readable" );
})->then( sub {
Future->needs_all(
matrix_send_room_text_message( $user, $room_id, body => "public" ),
Expand Down Expand Up @@ -283,7 +283,7 @@ sub test_history_visibility
do => sub {
my ( $user, $room_id ) = @_;

matrix_set_room_history_visibility( $user, $room_id, "world_readable" );
matrix_set_room_history_visibility_synced( $user, $room_id, "world_readable" );
},

check => sub {
Expand All @@ -304,7 +304,7 @@ sub test_history_visibility
do => sub {
my ( $user, $room_id ) = @_;

matrix_set_room_history_visibility( $user, $room_id, "world_readable" );
matrix_set_room_history_visibility_synced( $user, $room_id, "world_readable" );
},

check => sub {
Expand Down Expand Up @@ -357,7 +357,7 @@ sub test_history_visibility

matrix_send_room_text_message( $creating_user, $room_id, body => "private" )
})->then( sub {
matrix_set_room_history_visibility( $creating_user, $room_id, "world_readable" );
matrix_set_room_history_visibility_synced( $creating_user, $room_id, "world_readable" );
})->then( sub {
matrix_send_room_text_message_synced( $creating_user, $room_id, body => "public" );
})->then( sub {
Expand Down Expand Up @@ -394,8 +394,8 @@ sub test_history_visibility
my ( $user, $room_id, $nonjoined_user ) = @_;

Future->needs_all(
matrix_set_room_history_visibility( $user, $room_id, "world_readable" ),
matrix_set_room_guest_access( $user, $room_id, "can_join" ),
matrix_set_room_history_visibility_synced( $user, $room_id, "world_readable" ),
matrix_set_room_guest_access_synced( $user, $room_id, "can_join" ),
)->then( sub {
matrix_join_room( $nonjoined_user, $room_id );
})->then( sub {
Expand All @@ -417,7 +417,7 @@ sub test_history_visibility
do => sub {
my ( $user, $room_id, $nonjoined_user ) = @_;

matrix_set_room_guest_access( $user, $room_id, "can_join" )
matrix_set_room_guest_access_synced( $user, $room_id, "can_join" )
->then( sub {
matrix_send_room_text_message( $nonjoined_user, $room_id, body => "sup" )
->main::expect_http_403;
Expand All @@ -432,7 +432,7 @@ sub test_history_visibility
do => sub {
my ( $user, $room_id, $joining_user ) = @_;

matrix_set_room_guest_access( $user, $room_id, "can_join" )
matrix_set_room_guest_access_synced( $user, $room_id, "can_join" )
->then( sub {
matrix_send_room_text_message( $user, $room_id, body => "shared" );
})->then( sub {
Expand Down Expand Up @@ -494,15 +494,15 @@ sub test_history_visibility
do => sub {
my ( $user, $room_id, $joining_user ) = @_;

matrix_set_room_history_visibility( $user, $room_id, "joined" )
matrix_set_room_history_visibility_synced( $user, $room_id, "joined" )
->then( sub {
matrix_send_room_text_message( $user, $room_id, body => "1" );
})->then( sub {
matrix_set_room_history_visibility( $user, $room_id, "invited" )
matrix_set_room_history_visibility_synced( $user, $room_id, "invited" )
})->then( sub {
matrix_send_room_text_message( $user, $room_id, body => "2" );
})->then( sub {
matrix_set_room_history_visibility( $user, $room_id, "shared" )
matrix_set_room_history_visibility_synced( $user, $room_id, "shared" )
})->then( sub {
matrix_send_room_text_message( $user, $room_id, body => "3" );
})->then( sub {
Expand Down Expand Up @@ -540,7 +540,7 @@ sub test_history_visibility
do => sub {
my ( $user, $room_id, $room_alias, $another_user, $remote_user, $room_alias_name ) = @_;

matrix_set_room_history_visibility( $user, $room_id, "joined" )
matrix_set_room_history_visibility_synced( $user, $room_id, "joined" )
->then( sub {
# Send some m.room.message that the remote server will not be able to see
repeat( sub {
Expand Down