e2e: added delivered for group chats and check for PNs

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
This commit is contained in:
Churikova Tetiana 2021-03-17 10:28:23 +01:00
parent 66a4ab5aef
commit 4e0ec35ea5
No known key found for this signature in database
GPG Key ID: 0D4EA7B33B47E6D8
3 changed files with 41 additions and 18 deletions

View File

@ -409,8 +409,8 @@ class TestProfileSingleDevice(SingleDeviceTestCase):
self.errors.append("Mail client is not opened when submitting bug") self.errors.append("Mail client is not opened when submitting bug")
profile.click_system_back_button() profile.click_system_back_button()
profile.request_a_feature_button.click() profile.request_a_feature_button.click()
if not profile.element_by_text("#status").is_element_displayed(): if not profile.element_by_text("#support").is_element_displayed():
self.errors.append("Status channel is not suggested for requesting a feature") self.errors.append("Support channel is not suggested for requesting a feature")
self.errors.verify_no_errors() self.errors.verify_no_errors()
@marks.testrail_id(5738) @marks.testrail_id(5738)
@ -1060,13 +1060,15 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
@marks.testrail_id(6226) @marks.testrail_id(6226)
@marks.critical @marks.critical
def test_ens_mentions_and_nickname_in_public_and_1_1_chats(self): def test_ens_mentions_pn_and_nickname_in_public_and_1_1_chats(self):
self.create_drivers(2) self.create_drivers(2)
device_1, device_2 = self.drivers[0], self.drivers[1] device_1, device_2 = self.drivers[0], self.drivers[1]
sign_in_1, sign_in_2 = SignInView(device_1), SignInView(device_2) sign_in_1, sign_in_2 = SignInView(device_1), SignInView(device_2)
user_1 = ens_user user_1 = ens_user
home_1 = sign_in_1.recover_access(user_1['passphrase']) home_1 = sign_in_1.recover_access(user_1['passphrase'], enable_notifications=True)
home_2 = sign_in_2.create_user() home_2 = sign_in_2.create_user()
publuc_key_2, username_2 = home_2.get_public_key_and_username(return_username=True)
home_2.home_button.double_click()
home_1.just_fyi('switching to mainnet and add ENS') home_1.just_fyi('switching to mainnet and add ENS')
profile_1 = sign_in_1.profile_button.click() profile_1 = sign_in_1.profile_button.click()
@ -1107,6 +1109,7 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
chat_1.send_message(message_text_2) chat_1.send_message(message_text_2)
if not chat_2.wait_for_element_starts_with_text(ens_name): if not chat_2.wait_for_element_starts_with_text(ens_name):
self.errors.append('ENS username is not shown in public chat') self.errors.append('ENS username is not shown in public chat')
home_1.put_app_to_background()
home_2.just_fyi('check that can mention user with ENS name') home_2.just_fyi('check that can mention user with ENS name')
chat_2.select_mention_from_suggestion_list(user_1['ens']) chat_2.select_mention_from_suggestion_list(user_1['ens'])
@ -1117,6 +1120,10 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
for element in (chat_2.element_by_text(user_1['username']), chat_2.profile_add_to_contacts): for element in (chat_2.element_by_text(user_1['username']), chat_2.profile_add_to_contacts):
if not element.is_element_displayed(): if not element.is_element_displayed():
self.errors.append('Was not redirected to user profile after tapping on mention!') self.errors.append('Was not redirected to user profile after tapping on mention!')
home_1.just_fyi('check that PN is received and after tap you are redirected to public chat')
home_1.open_notification_bar()
home_1.element_by_text_part('%s in #%s' % (username_2, chat_name)).click()
chat_1.element_starts_with_text(user_1['ens'] +'.stateofus.eth','button').click() chat_1.element_starts_with_text(user_1['ens'] +'.stateofus.eth','button').click()
if not profile_1.contacts_button.is_element_displayed(): if not profile_1.contacts_button.is_element_displayed():
self.errors.append('Was not redirected to own profile after tapping on mention of myself from another user!') self.errors.append('Was not redirected to own profile after tapping on mention of myself from another user!')

View File

@ -10,10 +10,10 @@ class TestGroupChatMultipleDevice(MultipleDeviceTestCase):
@marks.testrail_id(3994) @marks.testrail_id(3994)
@marks.high @marks.high
def test_create_new_group_chat(self): def test_create_new_group_chat_messaging_pn_delived(self):
self.create_drivers(2) self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1])
device_1_home, device_2_home = device_1.create_user(), device_2.create_user() device_1_home, device_2_home = device_1.create_user(), device_2.create_user(enable_notifications=True)
device_1_key, device_1_username = device_1.get_public_key_and_username(True) device_1_key, device_1_username = device_1.get_public_key_and_username(True)
device_1.home_button.click() device_1.home_button.click()
chat_name = device_1_home.get_random_chat_name() chat_name = device_1_home.get_random_chat_name()
@ -52,13 +52,22 @@ class TestGroupChatMultipleDevice(MultipleDeviceTestCase):
if not device_2_chat.chat_element_by_text(message): if not device_2_chat.chat_element_by_text(message):
self.errors.append('%s system message is not shown' % message) self.errors.append('%s system message is not shown' % message)
device_2.just_fyi('Join to group chat, check system messages and send messages to group chat') device_2.just_fyi('Join to group chat, check system messages and send messages to group chat, check message status is delivered')
device_2_chat.join_chat_button.click() device_2_chat.join_chat_button.click()
for chat in (device_1_chat, device_2_chat): for chat in (device_1_chat, device_2_chat):
if not chat.chat_element_by_text(join_system_message).is_element_displayed(): if not chat.chat_element_by_text(join_system_message).is_element_displayed():
self.errors.append('System message after joining group chat is not shown') self.errors.append('System message after joining group chat is not shown')
for chat in (device_1_chat, device_2_chat): message_1 = "Message from device: %s" % device_1_chat.driver.number
chat.send_message("Message from device: %s" % chat.driver.number) device_1_chat.send_message(message_1)
if device_1_chat.chat_element_by_text(message_1).status != 'delivered':
self.errors.append('Message status is not delivered, it is %s!' % device_1_chat.chat_element_by_text(message_1).status)
device_2_home.put_app_to_background()
device_2_home.just_fyi('check that PN is received and after tap you are redirected to public chat')
device_2_home.open_notification_bar()
device_2_home.element_by_text_part("Message from device: %s" % device_1_chat.driver.number).click()
device_2_chat.send_message("Message from device: %s" % device_2_chat.driver.number)
for chat in (device_1_chat, device_2_chat): for chat in (device_1_chat, device_2_chat):
for chat_driver in (device_1_chat, device_2_chat): for chat_driver in (device_1_chat, device_2_chat):
if not chat.chat_element_by_text( if not chat.chat_element_by_text(

View File

@ -57,32 +57,39 @@ class TestPublicChatMultipleDevice(MultipleDeviceTestCase):
@marks.critical @marks.critical
def test_unread_messages_counter_public_chat(self): def test_unread_messages_counter_public_chat(self):
self.create_drivers(2) self.create_drivers(2)
device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) driver_2 = self.drivers[1]
home_1, home_2 = device_1.create_user(), device_2.create_user() home_1, home_2 = SignInView(self.drivers[0]).create_user(), SignInView(self.drivers[1]).create_user()
chat_name = home_1.get_random_chat_name() chat_name = home_1.get_random_chat_name()
chat_1, chat_2 = home_1.join_public_chat(chat_name), home_2.join_public_chat(chat_name) chat_1, chat_2 = home_1.join_public_chat(chat_name), home_2.join_public_chat(chat_name)
home_1.get_back_to_home_view() home_1.get_back_to_home_view()
message, message_2 = 'test message', 'test message2'
chat_2.send_message(message)
message = 'test message' home_1.just_fyi("Check unread message indicator on home, on chat element and that it is not shown after reading messages")
chat_2.chat_message_input.send_keys(message)
chat_2.send_message_button.click()
if not home_1.home_button.public_unread_messages.is_element_displayed(): if not home_1.home_button.public_unread_messages.is_element_displayed():
self.errors.append('New messages public chat badge is not shown on Home button') self.errors.append('New messages public chat badge is not shown on Home button')
chat_element = home_1.get_chat('#' + chat_name) chat_element = home_1.get_chat('#' + chat_name)
if not chat_element.new_messages_public_chat.is_element_displayed(): if not chat_element.new_messages_public_chat.is_element_displayed():
self.errors.append('New messages counter is not shown in public chat') self.errors.append('New messages counter is not shown in public chat')
chat_element.click() chat_element.click()
home_1.get_back_to_home_view() home_1.home_button.double_click()
if home_1.home_button.public_unread_messages.is_element_displayed(): if home_1.home_button.public_unread_messages.is_element_displayed():
self.errors.append('New messages public chat badge is shown on Home button') self.errors.append('New messages public chat badge is shown on Home button')
if chat_element.new_messages_public_chat.is_element_displayed(): if chat_element.new_messages_public_chat.is_element_displayed():
self.errors.append('Unread messages badge is shown in public chat while while there are no unread messages') self.errors.append('Unread messages badge is shown in public chat while while there are no unread messages')
[home.get_chat('#' + chat_name).click() for home in (home_1,home_2)]
chat_1.send_message(message_2)
chat_2.chat_element_by_text(message_2).wait_for_element(20)
home_2.just_fyi("Check that unread message indicator is not reappeared after relogin")
driver_2.close_app()
driver_2.launch_app()
SignInView(driver_2).sign_in()
chat_element = home_2.get_chat('#' + chat_name)
if chat_element.new_messages_public_chat.is_element_displayed():
self.errors.append('New messages counter is shown after relogin')
self.errors.verify_no_errors() self.errors.verify_no_errors()
@marks.testrail_id(6270) @marks.testrail_id(6270)