diff --git a/test/appium/tests/atomic/chats/test_chats_management.py b/test/appium/tests/atomic/chats/test_chats_management.py index 673bac0d66..d339b1a0fe 100644 --- a/test/appium/tests/atomic/chats/test_chats_management.py +++ b/test/appium/tests/atomic/chats/test_chats_management.py @@ -1050,7 +1050,7 @@ class TestChatManagementMultipleDevice(MultipleDeviceTestCase): @marks.testrail_id(695771) @marks.medium - def test_open_user_profile_long_press_on_message(self): + def test_activity_center_group_chats_trusted_contacts(self): self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) message_from_sender = "Message sender" diff --git a/test/appium/tests/atomic/test_upgrade.py b/test/appium/tests/atomic/test_upgrade.py index 27a0c48f16..439018af78 100644 --- a/test/appium/tests/atomic/test_upgrade.py +++ b/test/appium/tests/atomic/test_upgrade.py @@ -1,4 +1,4 @@ -from tests import marks +from tests import marks, pytest_config_global from tests.base_test_case import SingleDeviceTestCase, MultipleDeviceTestCase from tests.users import upgrade_users from views.sign_in_view import SignInView @@ -8,7 +8,7 @@ import views.upgrade_dbs.chats.data as chat_data class TestUpgradeApplication(SingleDeviceTestCase): @marks.testrail_id(6284) - def test_unread_previews_public_chat_upgrade(self): + def test_unread_previews_public_chat_version_upgrade(self): sign_in = SignInView(self.driver) unread_one_to_one_name, unread_public_name = 'All Whopping Dassierat', '#before-upgrade' chats = chat_data.chats @@ -20,16 +20,15 @@ class TestUpgradeApplication(SingleDeviceTestCase): old_version = profile.app_version_text.text profile.upgrade_app() - - self.app = sign_in.driver.launch_app() home = sign_in.sign_in() home.profile_button.click() profile.about_button.click() new_version = profile.app_version_text.text - # Commented for releases only - # if new_version == old_version: - # self.errors.append('Upgraded app version is %s vs base version is %s ' % (new_version, old_version)) + if 'release' in pytest_config_global['apk_upgrade']: + if new_version == old_version: + self.errors.append('Upgraded app version is %s vs base version is %s ' % (new_version, old_version)) + home.home_button.click() home.just_fyi("Check chat previews") @@ -101,8 +100,7 @@ class TestUpgradeApplication(SingleDeviceTestCase): tag_message = public_chat.chat_element_by_text(messages['tag']) if tag_message.emojis_below_message(emoji='love', own=True) !=1: self.errors.append("Emojis are not displayed below tag message!") - if not public_chat.sticker_message.is_element_displayed(): - self.errors.append("Sticker is not displayed!") + public_chat.sticker_message.scroll_to_element() public_chat.element_starts_with_text(messages['tag']).click() public_chat.history_start_icon.wait_for_visibility_of_element(20) if not public_chat.user_name_text.text == messages['tag']: @@ -122,14 +120,19 @@ class TestUpgradeApplication(SingleDeviceTestCase): @marks.upgrade class TestUpgradeMultipleApplication(MultipleDeviceTestCase): - @marks.testrail_id(6285) - @marks.skip - def test_unread_previews_public_chat_upgrade(self): + @marks.testrail_id(695783) + def test_commands_audio_backward_compatibility_upgrade(self): self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) - device_2.create_user() + device_2_home = device_2.create_user() + device_2_public_key = device_2_home.get_public_key_and_username() + device_2_home.home_button.click() + user = upgrade_users['chats'] + device_1.just_fyi("Import db, upgrade") - home = device_1.import_db(user=upgrade_users['chats'], import_db_folder_name='chats') + home = device_1.import_db(user=user, import_db_folder_name='chats') + home.upgrade_app() + home = device_1.sign_in() device_1.just_fyi("**Check messages in 1-1 chat**") command_username = 'Royal Defensive Solenodon' @@ -140,10 +143,35 @@ class TestUpgradeMultipleApplication(MultipleDeviceTestCase): chat.scroll_to_start_of_history() if chat.audio_message_in_chat_timer.text != messages['audio']['length']: self.errors.append('Timer is not shown for audiomessage') - import time - time.sleep(100) - #device_1.just_fyi("Check messages in Activity centre") - # device_2.just_fyi("Create new multiaccount and send new message to device 1") - # device_1.just_fyi("Respond to message and check it is shown on device 2") + device_1.just_fyi('Check command messages') + commnad_messages = chat_data.chats[command_username]['commands'] + for key in commnad_messages: + device_1.just_fyi('Checking %s command messages' % key) + amount = commnad_messages[key]['value'] + chat.element_by_text(amount).scroll_to_element() + if 'incoming' in key: + message = chat.get_transaction_message_by_asset(amount, incoming=True) + else: + message = chat.get_transaction_message_by_asset(amount, incoming=False) + if not message.transaction_status != commnad_messages[key]['status']: + self.errors.append('%s case transaction status is not equal expected after upgrade' % key) + if key == 'outgoing_STT_sign': + if not message.sign_and_send.is_element_displayed(): + self.errors.append('No "sign and send" option is shown for %s' % key) + chat.home_button.click() + + #TODO: blocked until resolving importing unread messages to Activity centre + # device_1.just_fyi("Check messages in Activity centre") + device_2.just_fyi("Create upgraded and non-upgraded app can exchange messages") + message, response = "message after upgrade", "response" + device_1_chat = home.add_contact(device_2_public_key) + device_1_chat.send_message(message) + device_2_chat = device_2_home.get_chat(user['username']).click() + if not device_2_chat.chat_element_by_text(message).is_element_displayed(): + self.errors.append("Message sent from upgraded app is not shown on previous release!") + device_2_chat.send_message(response) + if not device_1_chat.chat_element_by_text(response).is_element_displayed(): + self.errors.append("Message sent from previous release is not shown on upgraded app!") + self.errors.verify_no_errors() diff --git a/test/appium/tests/users.py b/test/appium/tests/users.py index e427f399ba..f044a4a4e8 100644 --- a/test/appium/tests/users.py +++ b/test/appium/tests/users.py @@ -43,6 +43,7 @@ upgrade_users['chats'] = dict() upgrade_users['chats']['passphrase'] = 'identify level pink lift choose winner hour onion style festival rather salmon' upgrade_users['chats']['public_key'] = '0x045d8a344ffee0c5ce187d0248a9b8ffc4a12493c9d9e8b9a395f38' \ '825ebe55ac2350d9e7090e39e6c8d7020aaa799aefe563f1db5b6151370eae246558772ad9e' +upgrade_users['chats']['username']= 'Rapid Gleeful Cheetah' wallet_users = dict() diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index 0d81738352..dcb148d15f 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -584,6 +584,7 @@ class BaseView(object): def upgrade_app(self): self.driver.info("**Upgrading apk to apk_upgrade**") self.driver.install_app(pytest_config_global['apk_upgrade'], replace=True) + self.app = self.driver.launch_app() def search_by_keyword(self, keyword): self.driver.info('**Search for** `%s`' % keyword) diff --git a/test/appium/views/chat_view.py b/test/appium/views/chat_view.py index 11774aaeff..d739a70441 100644 --- a/test/appium/views/chat_view.py +++ b/test/appium/views/chat_view.py @@ -301,8 +301,10 @@ class PreviewMessage(ChatElementByText): class TransactionMessage(ChatElementByText): - def __init__(self, driver, text:str): + def __init__(self, driver, text:str, transaction_value): super().__init__(driver, text=text) + if transaction_value: + self.xpath = "//*[starts-with(@text,'%s')]/../*[@text='%s']/ancestor::android.view.ViewGroup[@content-desc='chat-item']" % (text, transaction_value) # Common statuses for incoming and outgoing transactions self.address_requested = self.get_translation_by_key("address-requested") self.confirmed = self.get_translation_by_key("status-confirmed") @@ -331,8 +333,8 @@ class TransactionMessage(ChatElementByText): class OutgoingTransaction(TransactionMessage): - def __init__(self, driver, account_name: str): - super().__init__(driver, text="↑ Outgoing transaction") + def __init__(self, driver, account_name: str, transaction_value): + super().__init__(driver, text="↑ Outgoing transaction", transaction_value=transaction_value) self.account_name = account_name self.address_request_accepted = self.get_translation_by_key("address-request-accepted") self.address_received = self.get_translation_by_key("address-received") @@ -355,8 +357,8 @@ class OutgoingTransaction(TransactionMessage): class IncomingTransaction(TransactionMessage): - def __init__(self, driver, account_name: str): - super().__init__(driver, text="↓ Incoming transaction") + def __init__(self, driver, account_name: str, transaction_value): + super().__init__(driver, text="↓ Incoming transaction", transaction_value=transaction_value) self.account_name = account_name self.shared_account = "Shared '%s'" % account_name @@ -490,17 +492,17 @@ class ChatView(BaseView): self.timeline_own_account_photo = Button(self.driver, accessibility_id="own-account-photo") - def get_outgoing_transaction(self, account=None): + def get_outgoing_transaction(self, account=None, transaction_value=None) -> object: if account is None: account = self.status_account_name - return OutgoingTransaction(self.driver, account) + return OutgoingTransaction(self.driver, account, transaction_value) - def get_incoming_transaction(self, account=None): + def get_incoming_transaction(self, account=None, transaction_value=None) -> object: if account is None: account = self.status_account_name - return IncomingTransaction(self.driver, account) + return IncomingTransaction(self.driver, account, transaction_value) - def get_preview_message_by_text(self, text=None): + def get_preview_message_by_text(self, text=None) -> object: self.driver.info('**Getting preview message for link:%s**' % text) return PreviewMessage(self.driver, text) @@ -650,7 +652,7 @@ class ChatView(BaseView): element.wait_for_invisibility_of_element() def scroll_to_start_of_history(self, depth=20): - self.driver.info('*Scrolling *') + self.driver.info('*Scrolling th the start of chat history*') for _ in range(depth): try: return self.history_start_icon.find_element() @@ -719,6 +721,13 @@ class ChatView(BaseView): self.first_image_from_gallery.click() self.timeline_send_my_status_button.click() + def get_transaction_message_by_asset(self, transaction_value, incoming=True) -> object: + if incoming: + transaction_message = self.get_incoming_transaction(account=None, transaction_value=transaction_value) + else: + transaction_message = self.get_outgoing_transaction(account=None, transaction_value=transaction_value) + return transaction_message + @staticmethod def get_resolved_chat_key(username, chat_key): return '%s • %s…%s' % (username, chat_key[:6], chat_key[-4:]) diff --git a/test/appium/views/upgrade_dbs/chats/data.py b/test/appium/views/upgrade_dbs/chats/data.py index 673f85479c..8a39c90fbc 100644 --- a/test/appium/views/upgrade_dbs/chats/data.py +++ b/test/appium/views/upgrade_dbs/chats/data.py @@ -1,3 +1,4 @@ +from tests import transl chats = { 'All Whopping Dassierat': { 'preview': 'unread 1-1', @@ -38,9 +39,6 @@ chats = { }, 'Thoughtful Stupendous Graywolf': { 'preview':'hey Thoughtful Stupendous Graywolf !', - 'messages':{ - - }, }, 'Royal Defensive Solenodon': { 'preview':'Request address for transaction accepted', @@ -49,27 +47,28 @@ chats = { 'length':'00:10', 'timestamp' : '1:02 PM' }, + }, + 'commands':{ 'incoming_ETH_shared':{ 'value':'0.01 ETH', 'status': "Shared 'Ethereum account'" }, 'incoming_ETH_confirmed': { 'value': '0.1 ETH', - 'status': "Confirmed" + 'status': transl["status-confirmed"] }, 'incoming_ETH_declined': { 'value': '20 ETH', - 'status': "Transaction declined" + 'status': transl["transaction-declined"] }, 'incoming_STT_confirmed': { 'value': '200 STT', - 'status': "Confirmed" + 'status': transl["status-confirmed"] }, 'outgoing_STT_sign': { - 'value': '200 STT', - 'status': "Address request accepted", - 'action': 'Sign and send' + 'value': '5 STT', + 'status': transl["address-request-accepted"], }, - } + }, } -} \ No newline at end of file +}