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
6 changes: 4 additions & 2 deletions test/e2e/driver/toplevel_window.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
def maximize(object_name):
def _maximize() -> bool:
try:
toplevelwindow.ToplevelWindow.byName(object_name).maximize()
window = toplevelwindow.ToplevelWindow.byName(object_name).window
squish.setWindowState(window, squish.WindowState.Maximize)
return True
except RuntimeError:
return False
Expand All @@ -18,7 +19,8 @@ def _maximize() -> bool:
def minimize(object_name):
def _minimize() -> bool:
try:
toplevelwindow.ToplevelWindow.byName(object_name).minimize()
window = toplevelwindow.ToplevelWindow.byName(object_name).window
squish.setWindowState(window, squish.WindowState.Minimize)
return True
except RuntimeError:
return False
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/gui/components/changes_detected_popup.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def __init__(self):
@allure.step('Update permission')
def update_permission(self):
self._update_permission_button.click()
self.wait_until_hidden()
self.wait_until_hidden(timeout_msec=configs.timeouts.PROCESS_TIMEOUT_SEC * 1000)


class CustomSortOrderChangesDetectedToastMessage(ChangesDetectedToastMessage):
Expand Down
6 changes: 4 additions & 2 deletions test/e2e/gui/elements/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ class Window(QObject):

def prepare(self) -> 'Window':
self.maximize()
self.on_top_level()
self.set_focus()
# self.on_top_level()
return self

@property
Expand All @@ -27,8 +28,9 @@ def maximize(self):

@allure.step("Minimize {0}")
def minimize(self):
title = self.title
assert driver.toplevel_window.minimize(self.real_name), 'Minimize failed'
LOG.info('Window %s was minimized', self.title)
LOG.info('Window %s was minimized', title)

@allure.step("Set focus on {0}")
def set_focus(self):
Expand Down
2 changes: 0 additions & 2 deletions test/e2e/gui/screens/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,7 @@ def open_edit_group_name_form(self):

@allure.step('Choose leave group option')
def leave_group(self):
time.sleep(2)
self.open_more_options()
time.sleep(2)
self._leave_group_item.click()
return LeaveGroupPopup().wait_until_appears()

Expand Down
64 changes: 25 additions & 39 deletions test/e2e/tests/communities/test_communities_kick_ban.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import time

import allure
import pytest
from allure_commons._allure import step

Expand All @@ -11,10 +10,12 @@
from scripts.utils.generators import random_text_message
import configs.testpath
from gui.main_window import MainWindow
from helpers.multiple_instances_helper import switch_to_aut, authorize_user_in_aut, get_chat_key, send_contact_request_from_settings, accept_contact_request_from_settings


@pytest.mark.case(703252, 703252, 736991)
@pytest.mark.communities
# TODO: investigate the reason of failures on CI https://github.com/status-im/status-desktop/issues/19284
def test_community_admin_ban_kick_member_and_delete_message(multiple_instances):
user_one: UserAccount = RandomUser()
user_two: UserAccount = RandomUser()
Expand All @@ -25,43 +26,29 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances):
with multiple_instances(user_data=None) as aut_one, multiple_instances(user_data=None) as aut_two:
with step(f'Launch multiple instances with authorized users {user_one.name} and {user_two.name}'):
for aut, account in zip([aut_one, aut_two], [user_one, user_two]):
aut.attach()
main_screen.wait_until_appears(configs.timeouts.APP_LOAD_TIMEOUT_MSEC).prepare()
main_screen.authorize_user(account)
authorize_user_in_aut(aut, main_screen, account)

with step(f'User {user_two.name}, get chat key'):
aut_two.attach()
main_screen.prepare()
profile_popup = main_screen.left_panel.open_online_identifier().open_profile_popup_from_online_identifier()
chat_key = profile_popup.copy_chat_key
main_screen.left_panel.click()
chat_key = get_chat_key(aut_two, main_screen)
main_screen.minimize()

with step(f'User {user_one.name}, send contact request to {user_two.name}'):
aut_one.attach()
main_screen.prepare()
settings = main_screen.left_panel.open_settings()
messaging_settings = settings.left_panel.open_messaging_settings()
contacts_settings = messaging_settings.open_contacts_settings()
contact_request_popup = contacts_settings.open_contact_request_form()
contact_request_popup.send(chat_key, f'Hello {user_two.name}')
send_contact_request_from_settings(aut_one, main_screen, chat_key, f'Hello {user_two.name}')
main_screen.minimize()

with step(f'User {user_two.name}, accept contact request from {user_one.name}'):
aut_two.attach()
main_screen.prepare()
settings = main_screen.left_panel.open_settings()
messaging_settings = settings.left_panel.open_messaging_settings()
contacts_settings = messaging_settings.open_contacts_settings()
contacts_settings.accept_contact_request(user_one.name)
accept_contact_request_from_settings(aut_two, main_screen, user_one.name)

with step(f'User {user_two.name}, create community and invite {user_one.name}'):
main_screen.left_panel.create_community(community_data=community)
community_screen = main_screen.left_panel.select_community(community.name)
add_members = community_screen.left_panel.open_add_members_popup()
add_members.invite([user_one.name], message=random_text_message())
main_screen.minimize()


with step(f'User {user_one.name}, accept invitation from {user_two.name}'):
aut_one.attach()
main_screen.prepare()
switch_to_aut(aut_one, main_screen)
messages_view = main_screen.left_panel.open_messages_screen()
assert driver.waitFor(lambda: user_two.name in messages_view.left_panel.get_chats_names,
10000)
Expand All @@ -78,8 +65,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances):
main_screen.minimize()

with step(f'User {user_two.name}, ban {user_one.name} from the community'):
aut_two.attach()
main_screen.prepare()
switch_to_aut(aut_two, main_screen)
community_setting = community_screen.left_panel.open_community_settings()
members = community_setting.left_panel.open_members()
members.ban_member(user_one.name).confirm_banning()
Expand All @@ -96,28 +82,29 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances):
with step(f'User {user_two.name}, see {user_one.name} in banned members list'):
community_screen.right_panel.click_banned_button()
assert driver.waitFor(lambda: user_one.name not in members_list, timeout)
main_screen.minimize()

with step(f'User {user_one.name} tries to join community when being banned by {user_two.name}'):
aut_one.attach()
main_screen.prepare()
switch_to_aut(aut_one, main_screen)
chat = messages_view.left_panel.click_chat_by_name(user_two.name)
banned_community_screen = chat.open_banned_community(community.name, 0)
assert banned_community_screen.community_banned_member_panel.is_visible
assert banned_community_screen.banned_title() == f"You've been banned from {community.name}"
main_screen.left_panel.open_community_context_menu(community.name).leave_community_option.click()
# TODO: think of better check here assert not main_screen.left_panel.communities()
main_screen.minimize()


with step(f'User {user_two.name}, unban {user_one.name} in banned members list'):
aut_two.attach()
main_screen.prepare()
switch_to_aut(aut_two, main_screen)
members.unban_member(user_one.name)
toast_messages = main_screen.wait_for_toast_notifications()
assert user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name in toast_messages, \
f"{user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name} is not found in {toast_messages}"
# toast_messages = main_screen.wait_for_toast_notifications()
# assert user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name in toast_messages, \
# f"{user_one.name + ToastMessages.UNBANNED_USER_TOAST.value + community.name} is not found in {toast_messages}"
main_screen.minimize()

with step(f'User {user_one.name} joins community again'):
aut_one.attach()
main_screen.prepare()
switch_to_aut(aut_one, main_screen)
chat1 = messages_view.left_panel.click_chat_by_name(user_two.name)
community_screen = chat1.open_banned_community(community.name, 0)
# toast_messages = main_screen.wait_for_toast_notifications()
Expand All @@ -137,8 +124,7 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances):
main_screen.minimize()

with step(f'User {user_two.name}, kick {user_one.name} from the community'):
aut_two.attach()
main_screen.prepare()
switch_to_aut(aut_two, main_screen)
MembersListPanel().click_all_members_button()
kick_popup = members.open_kick_member_popup(user_one.name)
kick_popup.confirm_kicking()
Expand All @@ -150,10 +136,10 @@ def test_community_admin_ban_kick_member_and_delete_message(multiple_instances):

with step(f'User {user_two.name}, does not see {user_one.name} in members list'):
assert driver.waitFor(lambda: user_one.name not in community_screen.right_panel.members, timeout)
main_screen.minimize()

with step(f'User {user_one.name} can rejoin community after being kicked'):
aut_one.attach()
main_screen.prepare()
switch_to_aut(aut_one, main_screen)
messages_view = main_screen.left_panel.open_messages_screen()
chat = messages_view.left_panel.click_chat_by_name(user_two.name)
community_screen = chat.click_community_invite(community.name, 0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import configs
import driver
from configs import get_platform
from constants import permission_data, RandomCommunity
from constants.community import ToastMessages, PermissionsElements
from gui.components.changes_detected_popup import PermissionsChangesDetectedToastMessage
Expand All @@ -15,6 +16,7 @@

@pytest.mark.case(703632, 705014, 705016)
@pytest.mark.critical
# TODO: https://github.com/status-im/status-desktop/issues/19285
def test_add_edit_remove_duplicate_permissions(main_screen: MainWindow):
with step('Create community and select it'):
community = RandomCommunity()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
@pytest.mark.communities
@pytest.mark.smoke
@pytest.mark.critical
@pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994")
# @pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994")
def test_create_edit_join_community_pin_unpin_message(multiple_instances):
user_one: UserAccount = RandomUser()
user_two: UserAccount = RandomUser()
Expand All @@ -35,9 +35,11 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances):

with step(f'User {user_two.name}, get chat key'):
chat_key = get_chat_key(aut_two, main_screen)
main_screen.minimize()

with step(f'User {user_one.name}, send contact request to {user_two.name}'):
send_contact_request_from_settings(aut_one, main_screen, chat_key, f'Hello {user_two.name}')
main_screen.minimize()

with step(f'User {user_two.name}, accept contact request from {user_one.name}'):
accept_contact_request_from_settings(aut_two, main_screen, user_one.name)
Expand Down Expand Up @@ -121,6 +123,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances):
community_screen = main_screen.left_panel.select_community(new_name)
add_members = community_screen.left_panel.open_add_members_popup()
add_members.invite([user_one.name], message=random_text_message())
main_screen.minimize()

with step(f'User {user_one.name}, accept invitation from {user_two.name}'):
switch_to_aut(aut_one, main_screen)
Expand All @@ -139,6 +142,7 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances):
with step(f'User {user_one.name}, see two members in community members list'):
assert driver.waitFor(lambda: user_two.name in community_screen.right_panel.members, 10000)
assert driver.waitFor(lambda: '2' in community_screen.left_panel.members)
main_screen.minimize()

with step(f'User {user_two.name}, see two members in community members list'):
switch_to_aut(aut_two, main_screen)
Expand Down Expand Up @@ -167,17 +171,20 @@ def test_create_edit_join_community_pin_unpin_message(multiple_instances):
message = messages_screen.chat.find_message_by_text(second_message_text, 0)
message.hover_message().pin_message()


with step(f'User {user_one.name} see the {second_message_text} as pinned'):
switch_to_aut(aut_one, main_screen)
message = messages_screen.chat.find_message_by_text(second_message_text, 1)
assert driver.waitFor(lambda: message.message_is_pinned, configs.timeouts.APP_LOAD_TIMEOUT_MSEC)
assert message.pinned_info_text + message.user_name_in_pinned_message == 'Pinned by' + user_two.name
assert message.get_message_color() == ColorCodes.ORANGE.value


with step(f'User {user_two.name} unpin message from pinned messages popup'):
switch_to_aut(aut_two, main_screen)
pinned_msgs = messages_screen.tool_bar.open_pinned_messages_popup()
pinned_msgs.unpin_message().close()
main_screen.minimize()

with step(f'User {user_one.name} see the {second_message_text} as unpinned'):
switch_to_aut(aut_one, main_screen)
Expand Down
12 changes: 10 additions & 2 deletions test/e2e/tests/crtitical_tests_prs/test_messaging_1x1_chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

@pytest.mark.case(703087, 738732, 738734, 738742, 738744, 738745)
@pytest.mark.critical
@pytest.mark.skipif(get_platform() == 'Windows', reason="https://github.com/status-im/status-desktop/issues/18994")
# TODO: https://github.com/status-im/status-desktop/issues/19285
@pytest.mark.smoke
def test_1x1_chat_add_contact_in_settings(multiple_instances):
user_one: UserAccount = RandomUser()
Expand All @@ -48,6 +48,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):

with step(f'User {user_two.name}, get chat key'):
chat_key = get_chat_key(aut_two, main_window)
main_window.minimize()

with step(f'User {user_one.name}, send contact request to {user_two.name}'):
contacts_settings = send_contact_request_from_settings(aut_one, main_window, chat_key, f'Hello {user_two.name}')
Expand All @@ -57,6 +58,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
assert Messaging.CONTACT_REQUEST_SENT.value == contacts_settings.contact_items[0].object.contactText
assert len(contacts_settings.contact_items) == 1
assert str(contacts_settings.section_header.object.text) == 'Sent'
main_window.minimize()

with step(f'Verify that contact request was received by {user_two.name}'):
switch_to_aut(aut_two, main_window)
Expand Down Expand Up @@ -87,6 +89,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
assert str(contacts_settings.section_header.object.text) == 'Contacts'
assert user_one.name == contacts_settings.contact_items[0].contact
assert len(contacts_settings.contact_items) == 1
main_window.minimize()

with step(f'Verify that contact appeared in contacts list of {user_one.name} in messaging settings'):
switch_to_aut(aut_one, main_window)
Expand All @@ -100,11 +103,13 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
# Test is in contact settings, so we need to open messages from left panel
messages_screen = main_window.left_panel.open_messages_screen()
assert user_two.name in messages_screen.left_panel.get_chats_names
main_window.minimize()

with step(f'Verify that 1X1 chat with {user_one.name} appeared for {user_two.name}'):
switch_to_aut(aut_two, main_window)
messages_screen = main_window.left_panel.open_messages_screen()
assert user_one.name in messages_screen.left_panel.get_chats_names
main_window.minimize()

with step(f'User {user_one.name} send a message to {user_two.name}'):
switch_to_aut(aut_one, main_window)
Expand Down Expand Up @@ -134,6 +139,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
assert message_object.delegate_button.object.isEdited, \
f"Message status was not changed to edited"


with step(f'User {user_two.name} opens 1x1 chat with {user_one.name}'):
switch_to_aut(aut_two, main_window)
messages_screen.left_panel.click_chat_by_name(user_one.name)
Expand Down Expand Up @@ -192,6 +198,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
assert driver.waitFor(lambda: EMOJI_PATHES[occurrence - 1] in str(message.get_emoji_reactions_pathes()[0]),
timeout), \
f"Emoji reaction is not correct"
main_window.minimize()

with step(f'User {user_two.name}, also see emoji reaction on the last message'):
switch_to_aut(aut_two, main_window)
Expand All @@ -217,6 +224,7 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
messages = messages_screen.chat.messages(index=None)
assert len(messages) == 0, f"The history of messages is not empty"
assert user_two.name in messages_screen.left_panel.get_chats_names, f'{chat} is not present in chats list'
main_window.minimize()

with step(f'Verify chat history was not cleared for {user_two.name} '):
switch_to_aut(aut_two, main_window)
Expand All @@ -225,9 +233,9 @@ def test_1x1_chat_add_contact_in_settings(multiple_instances):
assert len(messages) != 0, f"The history of messages is empty"

with step(f'User {user_two.name} close chat'):
switch_to_aut(aut_two, main_window)
messages_screen.group_chat.close_chat()
assert user_one.name not in messages_screen.left_panel.get_chats_names, f'{chat} is present in chats list'
main_window.minimize()

with step(f'User {user_one.name} sees chat in the list'):
switch_to_aut(aut_one, main_window)
Expand Down
Loading