diff --git a/test/appium/tests/atomic/account_management/test_profile.py b/test/appium/tests/atomic/account_management/test_profile.py index ca6b6fddf5..93ed42e2b1 100644 --- a/test/appium/tests/atomic/account_management/test_profile.py +++ b/test/appium/tests/atomic/account_management/test_profile.py @@ -577,3 +577,50 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): self.errors.append('Profile picture was not updated after changing when devices are paired') self.verify_no_errors() + + @marks.testrail_id(6226) + @marks.critical + def test_ens_in_public_chat(self): + self.create_drivers(2) + device_1, device_2 = self.drivers[0], self.drivers[1] + sign_in_1, sign_in_2 = SignInView(device_1), SignInView(device_2) + user_1 = ens_user + home_1 = sign_in_1.recover_access(user_1['passphrase']) + home_2 = sign_in_2.create_user() + + profile_1 = sign_in_1.profile_button.click() + profile_1.switch_network('Mainnet with upstream RPC') + home_1.profile_button.click() + profile_1.element_by_text('ENS usernames').click() + dapp_view_1 = DappsView(device_1) + dapp_view_1.element_by_text('Get started').click() + dapp_view_1.ens_name.set_value(ens_user['ens']) + dapp_view_1.check_ens_name.click() + dapp_view_1.check_ens_name.click() + dapp_view_1.element_by_text('Ok, got it').click() + dapp_view_1.back_button.click() + profile_1.home_button.click() + + chat_name = home_1.get_public_chat_name() + chat_2 = home_2.join_public_chat(chat_name) + chat_1 = home_1.join_public_chat(chat_name) + message_text_1 = 'test message 1' + chat_1.send_message(message_text_1) + if chat_2.chat_element_by_text(message_text_1).username.text != user_1['username']: + self.errors.append('Default username is not shown in public chat') + chat_2.send_message('message from device 2') + + chat_1.get_back_to_home_view() + home_1.profile_button.click() + profile_1.element_by_text('Your ENS name').click() + profile_1.show_ens_name_in_chats.click() + profile_1.back_button.click() + profile_1.home_button.click() + home_1.get_chat_with_user('#' + chat_name).click() + message_text_2 = 'message test text 1' + chat_1.send_message(message_text_2) + if chat_2.chat_element_by_text(message_text_2).username.text != user_1['ens'] or chat_2.chat_element_by_text( + message_text_1).username.text != user_1['ens']: + self.errors.append('ENS username is not shown in public chat') + + self.verify_no_errors() diff --git a/test/appium/tests/atomic/chats/test_one_to_one.py b/test/appium/tests/atomic/chats/test_one_to_one.py index 8b7dda3ec6..c55fd84f01 100644 --- a/test/appium/tests/atomic/chats/test_one_to_one.py +++ b/test/appium/tests/atomic/chats/test_one_to_one.py @@ -663,62 +663,54 @@ class TestMessagesOneToOneChatSingle(SingleDeviceTestCase): @marks.testrail_id(5782) @marks.high def test_install_pack_and_send_sticker(self): - user = transaction_recipients['J'] sign_in = SignInView(self.driver) - home = sign_in.recover_access(user['passphrase']) - home.join_public_chat(home.get_public_chat_name()) + home = sign_in.create_user() + chat_name = home.get_public_chat_name() + home.join_public_chat(chat_name) chat = sign_in.get_chat_view() + if chat.show_stickers_button.is_element_displayed(): + self.errors.append('Sticker button is shown while on Ropsten') + chat.get_back_to_home_view() + profile = home.profile_button.click() + profile.switch_network('Mainnet with upstream RPC') + home.get_chat_with_user('#' + chat_name).click() chat.show_stickers_button.click() chat.get_stickers.click() - chat.element_by_text('Install').click() - transaction_view = chat.get_send_transaction_view() - transaction_view.back_button.click() + chat.install_sticker_pack_by_name('Status Cat') + chat.back_button.click() time.sleep(2) chat.swipe_left() chat.sticker_icon.click() - chat.chat_item.is_element_displayed() + if not chat.chat_item.is_element_displayed(): + self.errors.append('Sticker was not sent') + chat.swipe_right() + if not chat.sticker_icon.is_element_displayed(): + self.errors.append('Sticker is not shown in recently used list') + self.verify_no_errors() @marks.testrail_id(5783) @marks.high def test_purchase_pack_and_send_sticker(self): sign_in_view = SignInView(self.driver) - home_view = sign_in_view.create_user() + home_view = sign_in_view.recover_access(ens_user['passphrase']) - wallet_view = home_view.wallet_button.click() - wallet_view.set_up_wallet() - wallet_address = wallet_view.get_wallet_address() - home_view = wallet_view.get_back_to_home_view() - - # get test ETH, switch to home and wallet to get updated balance - self.network_api.get_donate(wallet_address[2:]) - self.network_api.verify_balance_is_updated(initial_balance=0, recipient_address=wallet_address[2:]) - home_view.wallet_button.click() - wallet_view.get_back_to_home_view() - - # get STT, switch to home and wallet to get updated balance - status_test_dapp = home_view.open_status_test_dapp() - status_test_dapp.assets_button.click() - transaction_view = status_test_dapp.request_stt_button.click() - transaction_view.sign_transaction() - home_view = status_test_dapp.get_back_to_home_view() - wallet_view = home_view.wallet_button.click() - home_view = wallet_view.get_back_to_home_view() + # switch to Mainnet + profile_view = home_view.profile_button.click() + profile_view.switch_network('Mainnet with upstream RPC') # join to public chat, buy and install stickers - home_view.join_public_chat(home_view.get_public_chat_name()) - chat = sign_in_view.get_chat_view() + chat = home_view.join_public_chat(home_view.get_public_chat_name()) chat.show_stickers_button.click() chat.get_stickers.click() - chat.element_by_accessibility_id('sticker-pack-price').find_elements()[0].click() - transaction_view.sign_transaction() - chat.element_by_text('Install').wait_for_element(120).click() + chat.install_sticker_pack_by_name('Tozemoon') + chat.back_button.click() # check that can use installed pack - transaction_view.back_button.click() time.sleep(2) chat.swipe_left() chat.sticker_icon.click() - chat.chat_item.is_element_displayed() + if not chat.chat_item.is_element_displayed(): + self.driver.fail('Sticker was not sent') @marks.testrail_id(5403) @marks.critical diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index a5ea7a50b4..0ab4bb13e4 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -481,6 +481,10 @@ class BaseView(object): size = self.driver.get_window_size() self.driver.swipe(size["width"]*0.8, size["height"]*0.8, size["width"]*0.2, size["height"]*0.8) + def swipe_right(self): + size = self.driver.get_window_size() + self.driver.swipe(size["width"]*0.2, size["height"]*0.8, size["width"]*0.8, size["height"]*0.8) + def get_status_test_dapp_view(self): from views.web_views.status_test_dapp import StatusTestDAppView return StatusTestDAppView(self.driver) diff --git a/test/appium/views/chat_view.py b/test/appium/views/chat_view.py index 596b50fb56..3118a6cb3c 100644 --- a/test/appium/views/chat_view.py +++ b/test/appium/views/chat_view.py @@ -552,3 +552,10 @@ class ChatView(BaseView): def move_to_messages_by_time_marker(self, marker='Today'): self.driver.info("Moving to messages by time marker: '%s'" % marker) HistoryTimeMarker(self.driver, marker).scroll_to_element(depth=50, direction='up') + + def install_sticker_pack_by_name(self, pack_name: str): + element = BaseButton(self.driver) + element.locator = element.Locator.xpath_selector( + "//*[@content-desc='sticker-pack-name'][@text='%s']/..//*[@text='Install']" % pack_name) + element.click() + element.wait_for_invisibility_of_element() diff --git a/test/appium/views/profile_view.py b/test/appium/views/profile_view.py index 77c8926bb8..36f3f9372c 100644 --- a/test/appium/views/profile_view.py +++ b/test/appium/views/profile_view.py @@ -299,6 +299,7 @@ class RequestFeatureButton(BaseButton): super(RequestFeatureButton, self).__init__(driver) self.locator = self.Locator.accessibility_id("request-a-feature-button") + class FaqButton(BaseButton): def __init__(self, driver): @@ -429,11 +430,13 @@ class ContinueButton(BaseButton): super(ContinueButton, self).__init__(driver) self.locator = self.Locator.text_selector('Continue') + class SyncSettingsButton(BaseButton): def __init__(self, driver): super(SyncSettingsButton, self).__init__(driver) self.locator = self.Locator.xpath_selector('//*[@content-desc="sync-settings-button"]') + class GoToPairingSettingsButton(BaseButton): def __init__(self, driver): super(GoToPairingSettingsButton, self).__init__(driver) @@ -481,12 +484,20 @@ class RevokeAccessButton(BaseButton): super(RevokeAccessButton, self).__init__(driver) self.locator = self.Locator.text_selector('Revoke access') + class PrivacyAndSecurityButton(BaseButton): def __init__(self, driver): super(PrivacyAndSecurityButton, self).__init__(driver) self.locator = self.Locator.xpath_selector('//*[@content-desc="privacy-and-security-settings-button"]') +class ShowENSNameInChatsToggle(BaseButton): + def __init__(self, driver): + super(ShowENSNameInChatsToggle, self).__init__(driver) + self.locator = self.Locator.xpath_selector( + "//*[@text='Show my ENS username in chats']/following-sibling::*[1][name()='android.widget.Switch'] ") + + class ProfileView(BaseView): def __init__(self, driver): @@ -567,6 +578,8 @@ class ProfileView(BaseView): self.advertise_device_button = AdvertiseDeviceButton(self.driver) self.sync_all_button = SyncAllButton(self.driver) + self.show_ens_name_in_chats = ShowENSNameInChatsToggle(self.driver) + def switch_network(self, network): self.advanced_button.click() self.debug_mode_toggle.click() @@ -604,7 +617,6 @@ class ProfileView(BaseView): text = [i.text for i in self.recovery_phrase_table.find_elements()] return dict(zip(map(int, text[::2]), text[1::2])) - def backup_recovery_phrase(self): self.ok_continue_button.click() recovery_phrase = self.get_recovery_phrase()