From ab2519428fa11531cffe6e367a896f2357ea6bf0 Mon Sep 17 00:00:00 2001 From: "radostin.dimitrov" Date: Wed, 17 Apr 2019 12:12:21 +0300 Subject: [PATCH] fixed some issues about room link test; make join link test more compact --- apps/roster/src/test/room_test.erl | 67 ++++++++++++------------------ 1 file changed, 27 insertions(+), 40 deletions(-) diff --git a/apps/roster/src/test/room_test.erl b/apps/roster/src/test/room_test.erl index 0ae7efa41..6b760c596 100644 --- a/apps/roster/src/test/room_test.erl +++ b/apps/roster/src/test/room_test.erl @@ -9,6 +9,7 @@ link/0, test_joinlink/0 ]). +-define(BLANK_LINK, <<"UNDEFINED">>). check_alias_increment() -> %% check alias on group create and member update @@ -123,10 +124,13 @@ link() -> #'Room'{status = add, unread = U} = roster_client:send_receive(AClientId, Counter + 1, #'Room'{status = add, id = RoomID, admins = [EM]}), true = is_integer(U), -%% Create link - #'Link'{status = update, name = <>} = - roster_client:send_receive(AClientId, #'Link'{status = update, type=group, entity_id = RoomID, name = []}), - #'Room'{links=L, readers = [_|_]} = roster_client:send_receive(AClientId, #'Room'{id = RoomID, status = get}), +%% Get the room link by RoomId + {ok, #'Room'{links = LinkId}} = kvs:get('Room', Room), +%% Assert linkId by Link get request + #'Room'{links=LinkId, readers = [_|_]} = roster_client:send_receive(AClientId, 1, #'Link'{type = group, status = get, name = LinkId}), +%% Update the link from the administrator and compare it with the old one. + #'Room'{links = LinkId} =/= + roster_client:send_receive(AClientId, 1, #'Link'{type = group, status = update, name = LinkId, entity_id = Room}), %%add member with message size roster:purge_user(FPhone = <<"6789000">>), @@ -163,7 +167,6 @@ reg_by_phone(Phones, #'muc'{} = Feed) -> {PhoneId, ClientId, #'Member'{presence = online, feed_id = Feed, phone_id = PhoneId, status = Aff}, Token} end || {Phone, Aff} <- Phones]. --define(BLANK_LINK, <<"UNDEFINED">>). test_joinlink() -> RoomName = RoomId = <<"test_room_joinlink">>, @@ -181,58 +184,42 @@ test_joinlink() -> RoomInit = #'Room'{status = create, type = group, id = RoomId, name = RoomName, admins = [Owner#'Member'{alias = <<"Radostin">>}], members = [hd(Members)]}, #'Room'{id = RoomId,links = LinkId, - admins = [RoomOwner = #'Member'{phone_id = APhoneId}], + admins = [_RoomOwner = #'Member'{phone_id = APhoneId}], members = [#'Member'{phone_id = BPhoneId}]} = roster_client:send_receive(AClientId, GroupACounter, RoomInit), %% Test: get room info with fake room link - roster_link:io_error_code(room_not_found) == test_get(?BLANK_LINK, BClientId), + roster_link:io_error_code(room_not_found) == +roster_client:send_receive(BClientId, 1, #'Link'{type = group, status = get, name = ?BLANK_LINK}), %% Test: get room info with correct room link - kvs:get('Room', RoomId) == #ok{code = test_get(LinkId,BClientId)}, + kvs:get('Room', RoomId) == #ok{code = roster_client:send_receive(BClientId, 1, #'Link'{type = group, status = get,name = LinkId})}, GroupBMembers = [{<<"9000000003">>, member}, {<<"9000000004">>, member}], - GroupBCounter = length(GroupBMembers), - [{CPhoneId, CClientId, CMember, _}, {DPhoneId, DClientId, _, _}] = - GroupBPCs = reg_by_phone(GroupBMembers, Feed), +% GroupBCounter = length(GroupBMembers), + [{CPhoneId, CClientId, _, _}, {_, DClientId, _, _}] = + _GroupBPCs = reg_by_phone(GroupBMembers, Feed), %% Test: join room - #'Room'{members = Room2Members} = test_join(LinkId, CClientId), + #'Room'{members = Room2Members} = roster_client:send_receive(CClientId, 1, #'Link'{type = group, status = join, name = LinkId}), true == lists:keymember(CPhoneId, #'Member'.phone_id, Room2Members), %% Test: update old link and try to join with new one - #'Link'{name = LinkId1} = test_update(LinkId,RoomId,AClientId), - test_join(LinkId1, DClientId), -%% Test: Delete joinlink + #'Link'{name = LinkId1} = roster_client:send_receive(AClientId, 1, #'Link'{ entity_id = RoomId ,type = group, status = update, name = LinkId}), + roster_client:send_receive(DClientId, 1, #'Link'{type = group, status = join, name = LinkId1}), +%%% Test: Delete joinlink %% Non admin user - roster_link:io_error_code(invalid_data) == test_delete([], RoomId, DClientId), + roster_link:io_error_code(invalid_data) == roster_client:send_receive(DClientId, 1, #'Link'{ entity_id = RoomId,type = group, status = delete, name = []}), %% Admin user, unavailable link - roster_link:io_error_code(invalid_data) == test_delete(LinkId, RoomId, AClientId), + roster_link:io_error_code(invalid_data) == +roster_client:send_receive(AClientId, 1, #'Link'{ entity_id = RoomId,type = group, status = delete, name = LinkId}), %% All valid, successful deletion - #'Link'{ entity_id = RoomId, name = [], status = delete} = test_delete(LinkId1, RoomId, AClientId), + #'Link'{ entity_id = RoomId, name = [], status = delete} = +roster_client:send_receive(AClientId, 1, #'Link'{ entity_id = RoomId,type = group, status = delete, name = LinkId1}), %% Test join: unexisting link [{_, EClientId, _, _}] = reg_by_phone([{<<"9000000005">>, member}], #muc{}), -roster_link:io_error_code(room_not_found) == test_join(LinkId1, EClientId), +roster_link:io_error_code(room_not_found) == roster_client:send_receive(EClientId, 1, #'Link'{type = group, status = join, name = LinkId1}), +%% Disconnect users +[ roster_client:stop_client(CId) || CId <- GroupAClientIds ++ [CClientId,DClientId,EClientId]], ok. -test_join(LinkId, ClientId) -> - Link = #'Link'{type = group, - status = join, name = LinkId}, -roster_client:send_receive(ClientId, 1, Link). - -test_get(LinkId, ClientId) -> - Link = #'Link'{type = group, - status = get,name = LinkId}, -roster_client:send_receive(ClientId, 1, Link). - -test_update(LinkId, RoomId, ClientId) -> - Link = #'Link'{ entity_id = RoomId,type = group, - status = update, name = LinkId}, -roster_client:send_receive(ClientId, 1, Link). - -test_delete(LinkId, RoomId, ClientId) -> - Link = #'Link'{ entity_id = RoomId,type = group, - status = delete, name = LinkId}, -roster_client:send_receive(ClientId, 1, Link). - - suite() -> [ check_alias_increment(), -- GitLab