From afb6109d9f84d0992efaa31e2585a29fbbad5d00 Mon Sep 17 00:00:00 2001 From: Serhy Date: Fri, 18 Jun 2021 14:09:03 +0300 Subject: [PATCH] Update e2e tests after RNN upgrade Signed-off-by: Serhy --- .../account_management/test_create_account.py | 8 ++--- .../atomic/account_management/test_keycard.py | 9 ++---- .../atomic/account_management/test_profile.py | 31 ++++++++++--------- .../test_wallet_management.py | 21 +++++++++---- .../tests/atomic/chats/test_commands.py | 1 - .../tests/atomic/chats/test_one_to_one.py | 12 +++---- test/appium/tests/atomic/chats/test_public.py | 1 - .../dapps_and_browsing/test_browsing.py | 22 +++++++------ .../transactions/test_dapps_transactions.py | 4 +-- .../transactions/test_keycard_wallet.py | 4 +-- .../tests/atomic/transactions/test_wallet.py | 1 - .../test_multiple_driver_tests.py | 1 - test/appium/views/base_view.py | 20 +++++++++--- test/appium/views/chat_view.py | 1 + test/appium/views/sign_in_view.py | 6 ++-- test/appium/views/wallet_view.py | 3 +- 16 files changed, 79 insertions(+), 66 deletions(-) diff --git a/test/appium/tests/atomic/account_management/test_create_account.py b/test/appium/tests/atomic/account_management/test_create_account.py index 119f89561c..2a74bef110 100644 --- a/test/appium/tests/atomic/account_management/test_create_account.py +++ b/test/appium/tests/atomic/account_management/test_create_account.py @@ -11,7 +11,6 @@ class TestCreateAccount(SingleDeviceTestCase): @marks.testrail_id(5356) @marks.critical - @marks.skip def test_switch_users_special_char_password_and_add_new_account_logcat(self): sign_in = SignInView(self.driver) @@ -44,9 +43,9 @@ class TestCreateAccount(SingleDeviceTestCase): sign_in.just_fyi('Create another multiaccount') if sign_in.ok_button.is_element_displayed(): sign_in.ok_button.click() + sign_in.back_button.click() sign_in.your_keys_more_icon.click() sign_in.generate_new_key_button.click() - sign_in.generate_key_button.click() sign_in.next_button.click() sign_in.next_button.click() sign_in.create_password_input.set_value(common_password) @@ -133,7 +132,6 @@ class TestCreateAccount(SingleDeviceTestCase): @marks.testrail_id(5363) @marks.high - @marks.skip def test_pass_phrase_validation(self): sign_in = SignInView(self.driver) sign_in.get_started_button.click_until_presence_of_element(sign_in.access_key_button) @@ -165,7 +163,7 @@ class TestCreateAccount(SingleDeviceTestCase): sign_in.just_fyi("check that seed phrase is required (can't be empty)") sign_in.enter_seed_phrase_button.click() sign_in.next_button.click() - if sign_in.reencrypt_your_key_button.is_element_displayed(): + if sign_in.element_by_translation_id('keycard-recovery-success-header').is_element_displayed(): self.errors.append("Possible to create account with empty seed phrase") for validation in validations: sign_in.just_fyi("Checking %s" % validation.get('case')) @@ -195,7 +193,7 @@ class TestCreateAccount(SingleDeviceTestCase): sign_in.just_fyi('check that "Next" is disabled unless we use allowed count of words') if words_count != 12 or 15 or 18 or 21 or 24: sign_in.next_button.click() - if sign_in.reencrypt_your_key_button.is_element_displayed(): + if sign_in.element_by_translation_id('keycard-recovery-success-header').is_element_displayed(): self.errors.append("Possible to create account with wrong count (%s) of words" % words_count) sign_in.just_fyi('check behavior for popup "Custom seed phrase"') diff --git a/test/appium/tests/atomic/account_management/test_keycard.py b/test/appium/tests/atomic/account_management/test_keycard.py index b177ad8e4d..5e1db8049e 100644 --- a/test/appium/tests/atomic/account_management/test_keycard.py +++ b/test/appium/tests/atomic/account_management/test_keycard.py @@ -8,7 +8,6 @@ class TestCreateAccount(SingleDeviceTestCase): @marks.testrail_id(6645) @marks.critical - @marks.skip def test_restore_account_migrate_multiaccount_to_keycard(self): sign_in = SignInView(self.driver) seed = basic_user['passphrase'] @@ -17,6 +16,7 @@ class TestCreateAccount(SingleDeviceTestCase): profile.logout() home.just_fyi("Checking keycard banner and starting migrate multiaccount to keycard") + sign_in.back_button.click() sign_in.multi_account_on_login_button.wait_for_visibility_of_element(30) sign_in.get_multiaccount_by_position(1).click() if not sign_in.get_keycard_banner.is_element_displayed(): @@ -86,7 +86,6 @@ class TestCreateAccount(SingleDeviceTestCase): if sign_in.get_keycard_banner.is_element_displayed(): self.errors.append("Get a keycard banner is shown on migrated keycard multiaccount") keycard.one_button.wait_for_visibility_of_element(10) - keycard.connect_selected_card_button.click() keycard.enter_default_pin() if not sign_in.home_button.is_element_displayed(10): self.driver.fail('Keycard user is not logged in') @@ -363,6 +362,7 @@ class TestCreateAccount(SingleDeviceTestCase): profile_view.logout() sign_in.just_fyi('Create new multiaccount') + sign_in.back_button.click() sign_in.your_keys_more_icon.click() sign_in.generate_new_key_button.click() sign_in.generate_key_button.click() @@ -413,7 +413,6 @@ class TestKeycardCreateMultiaccountMultipleDevice(MultipleDeviceTestCase): @marks.testrail_id(5689) @marks.critical - @marks.skip def test_keycard_create_login_resotore_unlock_same_seed(self): self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) @@ -449,7 +448,6 @@ class TestKeycardCreateMultiaccountMultipleDevice(MultipleDeviceTestCase): device_1.multi_account_on_login_button.click() if not keycard_flow.element_by_text_part(default_username).is_element_displayed(): self.errors.append("%s is not found on keycard login screen!" % default_username) - keycard_flow.connect_selected_card_button.click() keycard_flow.enter_default_pin() if not device_1.home_button.is_element_displayed(10): self.errors.append('Keycard user is not logged in') @@ -476,10 +474,9 @@ class TestKeycardCreateMultiaccountMultipleDevice(MultipleDeviceTestCase): device_1.seedphrase_input.set_value(seed_phrase) device_1.next_button.click() device_1.element_by_translation_id(id="unlock", uppercase=True).click() - keycard_flow.connect_selected_card_button.click() keycard_flow.enter_default_pin() device_1_home = device_1.home_button.click() device_1_home.plus_button.click() if not device_1_home.start_new_chat_button.is_element_displayed(): self.errors.append("Can't proceed using account after it's re-recover twice.") - self.errors.verify_no_errors() \ No newline at end of file + self.errors.verify_no_errors() diff --git a/test/appium/tests/atomic/account_management/test_profile.py b/test/appium/tests/atomic/account_management/test_profile.py index b587ad9dc2..10da0351c2 100644 --- a/test/appium/tests/atomic/account_management/test_profile.py +++ b/test/appium/tests/atomic/account_management/test_profile.py @@ -20,6 +20,7 @@ class TestProfileSingleDevice(SingleDeviceTestCase): profile.logout() if sign_in.ok_button.is_element_displayed(): sign_in.ok_button.click() + sign_in.back_button.click() sign_in.your_keys_more_icon.click() sign_in.generate_new_key_button.click() sign_in.generate_key_button.click() @@ -117,7 +118,6 @@ class TestProfileSingleDevice(SingleDeviceTestCase): @marks.testrail_id(5502) @marks.critical - @marks.skip def test_can_add_existing_ens(self): home = SignInView(self.driver).recover_access(ens_user['passphrase']) profile = home.profile_button.click() @@ -285,7 +285,6 @@ class TestProfileSingleDevice(SingleDeviceTestCase): @marks.critical @marks.testrail_id(5419) @marks.flaky - @marks.skip def test_logcat_backup_recovery_phrase(self): sign_in = SignInView(self.driver) home = sign_in.create_user() @@ -319,6 +318,7 @@ class TestProfileSingleDevice(SingleDeviceTestCase): home.just_fyi("Try to restore same account from seed phrase (should be possible only to unlock existing account)") profile.logout() + sign_in.back_button.click() sign_in.access_key_button.click() sign_in.enter_seed_phrase_button.click() sign_in.seedphrase_input.click() @@ -391,14 +391,13 @@ class TestProfileSingleDevice(SingleDeviceTestCase): @marks.testrail_id(5738) @marks.high - @marks.skip def test_dapps_permissions(self): home = SignInView(self.driver).create_user() account_name = home.status_account_name home.just_fyi('open Status Test Dapp, allow all and check permissions in Profile') - home.open_status_test_dapp() - home.dapp_tab_button.click() + web_view = home.open_status_test_dapp() + dapp_view = home.dapp_tab_button.click() profile = home.profile_button.click() profile.privacy_and_security_button.click() profile.dapp_permissions_button.click() @@ -411,7 +410,11 @@ class TestProfileSingleDevice(SingleDeviceTestCase): profile.just_fyi('revoke access and check that they are asked second time') profile.revoke_access_button.click() profile.back_button.click() - dapp_view = profile.dapp_tab_button.click() + profile.dapp_tab_button.click() + + web_view.open_tabs_button.click() + web_view.empty_tab_button.click() + dapp_view.open_url(test_dapp_url) if not dapp_view.element_by_text_part(account_name).is_element_displayed(): self.errors.append('Wallet permission is not asked') @@ -938,7 +941,6 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): @marks.testrail_id(5762) @marks.high - @marks.skip def test_pair_devices_sync_one_to_one_contacts_nicknames_public_chat(self): self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) @@ -973,7 +975,8 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): device_1_profile.open_contact_from_profile(basic_user['username']) nickname = 'my_basic_user' device_1_chat.set_nickname(nickname) - device_1_profile.close_button.double_click() + device_1_profile.close_button.click() + device_1.back_button.click() device_2.just_fyi('go to profile > Devices, set device name, discover device 2 to device 1') device_2_profile.discover_and_advertise_device(device_2_name) @@ -1039,7 +1042,6 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): @marks.testrail_id(6226) @marks.critical - @marks.skip def test_ens_mentions_pn_and_nickname_in_public_and_1_1_chats(self): self.create_drivers(2) device_1, device_2 = self.drivers[0], self.drivers[1] @@ -1106,9 +1108,9 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): home_1.element_by_text_part(username_2).click() if home_1.element_starts_with_text(user_1['ens'] +'.stateofus.eth').is_element_differs_from_template('mentioned.png', 2): self.errors.append('Mention is not highlighted!') - chat_1.element_starts_with_text(user_1['ens'] +'.stateofus.eth','button').click() - 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!') + + # Close Device1 driver session since it's not needed anymore + self.drivers[0].quit() home_2.just_fyi('check that ENS name is shown in 1-1 chat without adding user as contact in header, profile, options') chat_2_one_to_one = chat_2.profile_send_message.click() @@ -1123,14 +1125,14 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): home_2.just_fyi('add user to contacts and check that ENS name is shown in contact') chat_2_one_to_one.profile_add_to_contacts.click() - chat_2.back_button.click() + chat_2.close_button.click() profile_2 = chat_2_one_to_one.profile_button.click() profile_2.open_contact_from_profile(ens_name) home_2.just_fyi('set nickname and recheck username in 1-1 header, profile, options, contacts') nickname = 'test user' + str(round(time())) chat_2.set_nickname(nickname) - profile_2.back_button.click() + profile_2.close_button.click() for name in (nickname, ens_name): if not profile_2.element_by_text(name).is_element_displayed(): self.errors.append('%s is not shown in contact list' % name) @@ -1151,7 +1153,6 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase): self.errors.verify_no_errors() - @marks.testrail_id(6228) @marks.high def test_mobile_data_usage_complex_settings(self): diff --git a/test/appium/tests/atomic/account_management/test_wallet_management.py b/test/appium/tests/atomic/account_management/test_wallet_management.py index 7d4a1a8f1c..5aa169b025 100644 --- a/test/appium/tests/atomic/account_management/test_wallet_management.py +++ b/test/appium/tests/atomic/account_management/test_wallet_management.py @@ -11,11 +11,19 @@ class TestWalletManagement(SingleDeviceTestCase): @marks.testrail_id(5335) @marks.high - @marks.skip def test_wallet_set_up(self): sign_in = SignInView(self.driver) sign_in.recover_access(transaction_senders['A']['passphrase']) wallet = sign_in.wallet_button.click() + + wallet.just_fyi("Initiating some transaction so the wallet signing phrase pop-up appears") + wallet.accounts_status_account.click() + send_transaction_view = wallet.send_transaction_button.click() + send_transaction_view.amount_edit_box.click() + send_transaction_view.amount_edit_box.set_value("0") + send_transaction_view.set_recipient_address("0x"+transaction_senders['A']['address']) + send_transaction_view.sign_transaction_button.click() + texts = list(map(sign_in.get_translation_by_key, ["this-is-you-signing", "three-words-description", "three-words-description-2"])) wallet.just_fyi('Check tests in set up wallet popup') @@ -28,6 +36,8 @@ class TestWalletManagement(SingleDeviceTestCase): wallet.just_fyi('Check popup will reappear if tap on "Remind me later"') wallet.remind_me_later_button.click() + send_transaction_view.cancel_button.click() + wallet.wallet_button.click() wallet.accounts_status_account.click() send_transaction = wallet.send_transaction_button.click() send_transaction.amount_edit_box.set_value('0') @@ -81,7 +91,6 @@ class TestWalletManagement(SingleDeviceTestCase): @marks.testrail_id(5346) @marks.high - @marks.skip def test_collectible_from_wallet(self): passphrase = wallet_users['F']['passphrase'] home = SignInView(self.driver).recover_access(passphrase=passphrase) @@ -104,11 +113,13 @@ class TestWalletManagement(SingleDeviceTestCase): send_transaction.select_asset_button.click() if send_transaction.asset_by_name("CryptoKitties").is_element_displayed(): self.errors.append('Collectibles can be sent from wallet') - wallet.close_button.double_click() + wallet.close_send_transaction_view_button.double_click() wallet.just_fyi('Check "Open in OpenSea"') wallet.element_by_translation_id("check-on-opensea").click() - + web_view = wallet.get_webview_view() + web_view.wait_for_d_aap_to_load(10) + wallet.swipe_by_custom_coordinates(0.5,0.8,0.5,0.7) wallet.element_by_text('Sign In').wait_and_click(60) if not wallet.allow_button.is_element_displayed(40): self.errors.append('Can not sign in in OpenSea dapp') @@ -181,7 +192,6 @@ class TestWalletManagement(SingleDeviceTestCase): @marks.testrail_id(6224) @marks.critical - @marks.skip def test_add_account_to_multiaccount_instance_generate_new(self): home = SignInView(self.driver).create_user() wallet = home.wallet_button.click() @@ -209,7 +219,6 @@ class TestWalletManagement(SingleDeviceTestCase): @marks.testrail_id(6244) @marks.high - @marks.skip def test_add_and_delete_watch_only_account_to_multiaccount_instance(self): home = SignInView(self.driver).create_user() wallet = home.wallet_button.click() diff --git a/test/appium/tests/atomic/chats/test_commands.py b/test/appium/tests/atomic/chats/test_commands.py index 2e4f1f03db..a5e636a74c 100644 --- a/test/appium/tests/atomic/chats/test_commands.py +++ b/test/appium/tests/atomic/chats/test_commands.py @@ -10,7 +10,6 @@ from views.sign_in_view import SignInView class TestCommandsMultipleDevices(MultipleDeviceTestCase): @marks.testrail_id(6253) @marks.critical - @marks.skip def test_send_eth_in_1_1_chat_transaction_push(self): sender = transaction_senders['A'] self.create_drivers(2) 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 98a5dd63e3..7bd25c61a4 100644 --- a/test/appium/tests/atomic/chats/test_one_to_one.py +++ b/test/appium/tests/atomic/chats/test_one_to_one.py @@ -198,7 +198,6 @@ class TestMessagesOneToOneChatMultiple(MultipleDeviceTestCase): @marks.testrail_id(5782) @marks.critical - @marks.skip def test_install_pack_and_send_sticker(self): self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) @@ -390,7 +389,6 @@ class TestMessagesOneToOneChatMultiple(MultipleDeviceTestCase): @marks.testrail_id(5373) @marks.high - @marks.skip def test_send_and_open_links_with_previews(self): self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) @@ -452,7 +450,7 @@ class TestMessagesOneToOneChatMultiple(MultipleDeviceTestCase): chat_2.element_by_translation_id("dont-ask").click() chat_1.element_by_translation_id("enable").wait_and_click() chat_1.element_by_translation_id("enable-all").wait_and_click() - chat_1.close_button.click() + chat_1.close_modal_view_from_chat_button.click() if not chat_1.get_preview_message_by_text(giphy_url).preview_image: self.errors.append("No preview is shown for %s" % giphy_url) for key in preview_urls: @@ -657,7 +655,6 @@ class TestMessagesOneToOneChatSingle(SingleDeviceTestCase): @marks.testrail_id(5403) @marks.critical - @marks.skip def test_start_chat_with_ens_mention_in_one_to_one(self): home = SignInView(self.driver).create_user() @@ -668,7 +665,8 @@ class TestMessagesOneToOneChatSingle(SingleDeviceTestCase): for element in (chat.profile_block_contact, chat.remove_from_contacts, chat.profile_send_message): if not element.is_element_displayed(): self.errors.append('Expected %s is not visible' % element.locator) - chat.get_back_to_home_view() + chat.close_button.click() + chat.home_button.click() home.just_fyi('Start new chat with ENS and check that ENS is resolved') ens = ens_user_ropsten['ens'] @@ -686,7 +684,7 @@ class TestMessagesOneToOneChatSingle(SingleDeviceTestCase): home.just_fyi('Set nickname and mention user by nickname in 1-1 chat') russian_nickname = 'МОЙ дорогой ДРУх' chat.set_nickname(russian_nickname) - chat.back_button.click() + chat.close_button.click() chat.select_mention_from_suggestion_list(russian_nickname + ' @' + ens) chat.chat_element_by_text('%s hey!' % russian_nickname).click() if not chat.profile_block_contact.is_element_displayed(): @@ -694,7 +692,7 @@ class TestMessagesOneToOneChatSingle(SingleDeviceTestCase): 'No redirect to user profile after tapping on message with mention (nickname) in 1-1 chat') home.just_fyi('My_profile button at Start new chat view opens own QR code with public key pop-up') - chat.back_button.click() + chat.close_button.click() home.home_button.double_click() home.plus_button.click() home.start_new_chat_button.click() diff --git a/test/appium/tests/atomic/chats/test_public.py b/test/appium/tests/atomic/chats/test_public.py index f992881d74..1a68527c01 100644 --- a/test/appium/tests/atomic/chats/test_public.py +++ b/test/appium/tests/atomic/chats/test_public.py @@ -60,7 +60,6 @@ class TestPublicChatMultipleDevice(MultipleDeviceTestCase): @marks.testrail_id(5360) @marks.critical - @marks.skip def test_unread_messages_counter_public_chat(self): self.create_drivers(2) driver_2 = self.drivers[1] diff --git a/test/appium/tests/atomic/dapps_and_browsing/test_browsing.py b/test/appium/tests/atomic/dapps_and_browsing/test_browsing.py index 5a8220c9c4..f963be3b9f 100644 --- a/test/appium/tests/atomic/dapps_and_browsing/test_browsing.py +++ b/test/appium/tests/atomic/dapps_and_browsing/test_browsing.py @@ -51,7 +51,6 @@ class TestBrowsing(SingleDeviceTestCase): @marks.testrail_id(6210) @marks.high - @marks.skip def test_open_blocked_secure_not_secure_inlalid_offline_urls(self): home = SignInView(self.driver).create_user() dapp = home.dapp_tab_button.click() @@ -67,28 +66,33 @@ class TestBrowsing(SingleDeviceTestCase): dapp_detail.continue_anyway_button.click() if dapp_detail.element_by_text('This site is blocked').is_element_displayed(): self.errors.append("Failed to open Dapp after 'Continue anyway' tapped for %s" % url) - home.tab.click() + dapp_detail.open_tabs_button.click() + dapp_detail.empty_tab_button.click() dapp.just_fyi('Checking connection is not secure warning') web_page = dapp.open_url('http://www.dvwa.co.uk') web_page.url_edit_box_lock_icon.click_until_presence_of_element(web_page.element_by_translation_id("browser-not-secure")) - home.dapp_tab_button.click() + dapp_detail.open_tabs_button.click() + dapp_detail.empty_tab_button.click() for url in ('https://www.bbc.com', 'https://instant.airswap.io'): dapp.just_fyi('Checking connection is secure for %s' % url) web_page = dapp.open_url(url) web_page.wait_for_d_aap_to_load() web_page.url_edit_box_lock_icon.click_until_presence_of_element(web_page.element_by_translation_id("browser-secure")) - home.dapp_tab_button.click() + dapp_detail.open_tabs_button.click() + dapp_detail.empty_tab_button.click() dapp.just_fyi('Checking opening invalid link') - home.dapp_tab_button.double_click() + # home.dapp_tab_button.double_click() browsing_view = dapp.open_url('invalid.takoe') browsing_view.element_by_translation_id("web-view-error").wait_for_element(20) browsing_view.dapp_tab_button.double_click() dapp.just_fyi('Checking offline state') home.toggle_airplane_mode() + dapp_detail.open_tabs_button.click() + dapp_detail.empty_tab_button.click() browsing_view = dapp.open_url('status.im') offline_texts = ['Unable to load page', 'ERR_INTERNET_DISCONNECTED'] for text in offline_texts: @@ -101,7 +105,6 @@ class TestBrowsing(SingleDeviceTestCase): @marks.testrail_id(5390) @marks.high - @marks.skip def test_delete_close_all_tabs(self): home_view = SignInView(self.driver).create_user() dapp_view = home_view.dapp_tab_button.click() @@ -112,7 +115,8 @@ class TestBrowsing(SingleDeviceTestCase): } for url in urls: browsing_view = dapp_view.open_url(url) - browsing_view.dapp_tab_button.double_click() + browsing_view.open_tabs_button.click() + browsing_view.empty_tab_button.click() home_view.just_fyi('Close one tab, relogin and check that it is not reappearing') browsing_view.remove_tab(name=urls['bbc.com']) home_view.relogin() @@ -134,7 +138,6 @@ class TestBrowsing(SingleDeviceTestCase): @marks.testrail_id(6633) @marks.high - @marks.skip def test_browser_managing_bookmarks(self): home_view = SignInView(self.driver).create_user() dapp_view = home_view.dapp_tab_button.click() @@ -150,7 +153,8 @@ class TestBrowsing(SingleDeviceTestCase): custom_name = 'Custom BBC' dapp_view.open_url('bbc.com') browsing_view.add_to_bookmarks(custom_name) - browsing_view.dapp_tab_button.click() + browsing_view.open_tabs_button.click() + browsing_view.empty_tab_button.click() if not browsing_view.element_by_text(custom_name).is_element_displayed(): self.driver.fail("Bookmark with custom name is not added!") diff --git a/test/appium/tests/atomic/transactions/test_dapps_transactions.py b/test/appium/tests/atomic/transactions/test_dapps_transactions.py index 32ac7b509a..1474b6585c 100644 --- a/test/appium/tests/atomic/transactions/test_dapps_transactions.py +++ b/test/appium/tests/atomic/transactions/test_dapps_transactions.py @@ -38,8 +38,7 @@ class TestTransactionDApp(SingleDeviceTestCase): @marks.testrail_id(5342) @marks.critical - @marks.skip - def test_sign_message_and_transactions_filters_from_daap(self): + def test_sign_message_and_2tx_in_batch_and_transactions_filters_from_daap(self): password = 'password_for_daap' home = SignInView(self.driver).recover_access(passphrase=transaction_senders['W']['passphrase'], password=password) @@ -51,6 +50,7 @@ class TestTransactionDApp(SingleDeviceTestCase): wallet.just_fyi("Checking signing message") send_transaction = status_test_dapp.sign_message_button.click() + status_test_dapp.set_up_wallet_when_sending_tx() if not send_transaction.element_by_text("Test message").is_element_displayed(): self.errors.append("No message shown when signing!") send_transaction.enter_password_input.send_keys(password) diff --git a/test/appium/tests/atomic/transactions/test_keycard_wallet.py b/test/appium/tests/atomic/transactions/test_keycard_wallet.py index b577c715cd..2b824ffcc6 100644 --- a/test/appium/tests/atomic/transactions/test_keycard_wallet.py +++ b/test/appium/tests/atomic/transactions/test_keycard_wallet.py @@ -31,7 +31,6 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase): @marks.testrail_id(6290) @marks.high - @marks.skip def test_keycard_fetching_balance_after_offline(self): sender = wallet_users['A'] sign_in_view = SignInView(self.driver) @@ -67,7 +66,6 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase): @marks.testrail_id(6291) @marks.critical - @marks.skip def test_keycard_can_see_all_transactions_in_history(self): address = wallet_users['D']['address'] passphrase = wallet_users['D']['passphrase'] @@ -95,7 +93,7 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase): self.errors.append('Transactions senders do not match!') if tx_to != expected_txs_list[tx_hash]['to']: self.errors.append('Transactions recipients do not match!') - transactions_details.back_button.click_until_presence_of_element(wallet_view.send_transaction_button) + transactions_details.close_button.click_until_presence_of_element(wallet_view.send_transaction_button) self.errors.verify_no_errors() diff --git a/test/appium/tests/atomic/transactions/test_wallet.py b/test/appium/tests/atomic/transactions/test_wallet.py index d78a90e584..635b23405a 100644 --- a/test/appium/tests/atomic/transactions/test_wallet.py +++ b/test/appium/tests/atomic/transactions/test_wallet.py @@ -472,7 +472,6 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase): @marks.testrail_id(6328) @marks.critical - @marks.skip def test_send_transaction_set_recipient_options(self): home = SignInView(self.driver).recover_access(wallet_users['D']['passphrase']) nickname = 'my_some_nickname' diff --git a/test/appium/tests/atomic/zzz_multiple_drivers_tests/test_multiple_driver_tests.py b/test/appium/tests/atomic/zzz_multiple_drivers_tests/test_multiple_driver_tests.py index 498a1e0479..6e6b99c8e8 100644 --- a/test/appium/tests/atomic/zzz_multiple_drivers_tests/test_multiple_driver_tests.py +++ b/test/appium/tests/atomic/zzz_multiple_drivers_tests/test_multiple_driver_tests.py @@ -10,7 +10,6 @@ class TestGroupChatMultipleDevice(MultipleDeviceTestCase): @marks.testrail_id(3998) @marks.high - @marks.skip def test_offline_add_new_group_chat_member(self): message_before_adding = 'message before adding new user' message_after_adding = 'message from new member' diff --git a/test/appium/views/base_view.py b/test/appium/views/base_view.py index f94f7df990..662008354b 100644 --- a/test/appium/views/base_view.py +++ b/test/appium/views/base_view.py @@ -45,15 +45,15 @@ class TabButton(Button): class Counter(Text): def __init__(self, driver, parent_locator): super().__init__(driver, - xpath="//*[@content-desc='%s']//android.view.ViewGroup/android.widget.TextView" % parent_locator) + xpath="%s/android.widget.TextView" % parent_locator) return Counter(self.driver, self.locator) @property def public_unread_messages(self): class PublicChatUnreadMessages(BaseElement): - def __init__(self, driver): - super().__init__(driver, accessibility_id="public-unread-badge") - return PublicChatUnreadMessages(self.driver) + def __init__(self, driver, parent_locator): + super().__init__(driver, xpath="%s/android.widget.TextView" % parent_locator) + return PublicChatUnreadMessages(self.driver, self.locator) class HomeButton(TabButton): @@ -254,7 +254,7 @@ class BaseView(object): self.apps_button = Button(self.driver, accessibility_id="Apps") self.status_app_icon = Button(self.driver, translation_id="status") self.airplane_mode_button = AirplaneModeButton(self.driver) - self.etest_nter_qr_edit_box = EnterQRcodeEditBox(self.driver) + self.enter_qr_edit_box = EnterQRcodeEditBox(self.driver) self.element_types = { 'base': BaseElement, @@ -403,6 +403,12 @@ class BaseView(object): element = Button(self.driver, xpath="//*[starts-with(@text,'%s')]" % text) return element.wait_for_element(wait_time) + def swipe_by_custom_coordinates(self, x_start, y_start, x_end, y_end): + """Uses percentage values based on device width/height""" + self.driver.info("*Swiping based on custom coordinates relative to device height/width*") + size = self.driver.get_window_size() + self.driver.swipe(size["width"] * x_start, size["height"] * y_start, size["width"] * x_end, size["height"] * y_end) + def swipe_up(self): self.driver.info("*Swiping up*") size = self.driver.get_window_size() @@ -475,6 +481,10 @@ class BaseView(object): from views.wallet_view import WalletView return WalletView(self.driver) + def get_webview_view(self): + from views.web_views.base_web_view import BaseWebView + return BaseWebView(self.driver) + @staticmethod def get_unique_amount(): return '0.00%s' % datetime.now().strftime('%-d%-H%-M%-S').strip('0') diff --git a/test/appium/views/chat_view.py b/test/appium/views/chat_view.py index 6fbed3cf25..39f9c67f94 100644 --- a/test/appium/views/chat_view.py +++ b/test/appium/views/chat_view.py @@ -401,6 +401,7 @@ class ChatView(BaseView): self.view_profile_by_avatar_button = Button(self.driver, accessibility_id="member-photo") self.user_options = Button(self.driver, accessibility_id="options") self.open_in_status_button = OpenInStatusButton(self.driver) + self.close_modal_view_from_chat_button = Button(self.driver, xpath="//androidx.appcompat.widget.LinearLayoutCompat") # Chat input self.chat_message_input = EditBox(self.driver, accessibility_id="chat-message-input") diff --git a/test/appium/views/sign_in_view.py b/test/appium/views/sign_in_view.py index ac6fc1b37b..4ef1949839 100644 --- a/test/appium/views/sign_in_view.py +++ b/test/appium/views/sign_in_view.py @@ -112,8 +112,8 @@ class SignInView(BaseView): self.sign_in_button = SignInButton(self.driver) self.access_key_button = AccessKeyButton(self.driver) self.generate_key_button = Button(self.driver, translation_id="generate-new-key") - self.your_keys_more_icon = Button(self.driver, accessibility_id="your-keys-more-icon") - self.generate_new_key_button = Button(self.driver, xpath="(//android.widget.ImageView[@content-desc='icon'])[2]") + self.your_keys_more_icon = Button(self.driver, xpath="//androidx.appcompat.widget.LinearLayoutCompat") + self.generate_new_key_button = Button(self.driver, accessibility_id="generate-a-new-key") self.create_password_input = EditBox(self.driver, xpath="(//android.widget.EditText[@content-desc='password-input'])[1]") self.confirm_your_password_input = EditBox(self.driver, @@ -138,7 +138,7 @@ class SignInView(BaseView): self.reencrypt_your_key_button = Button(self.driver, accessibility_id="onboarding-next-button") # migrate multiaccount - self.options_button = Button(self.driver, accessibility_id="sign-in-options") + self.options_button = Button(self.driver, xpath="//androidx.appcompat.widget.LinearLayoutCompat") self.manage_keys_and_storage_button = Button(self.driver, accessibility_id="manage-keys-and-storage-button") self.multi_account_on_login_button = MultiAccountOnLoginButton(self.driver) self.move_keystore_file_option = Button(self.driver, accessibility_id="move-keystore-file") diff --git a/test/appium/views/wallet_view.py b/test/appium/views/wallet_view.py index 3005d4445c..76a9a5b5af 100644 --- a/test/appium/views/wallet_view.py +++ b/test/appium/views/wallet_view.py @@ -73,7 +73,7 @@ class AccountColorButton(Button): def select_color_by_position(self, position: int): self.click() self.driver.find_element_by_xpath( - "((//android.widget.ScrollView)[last()]/*/*)[%s]" % str(position+1)).click() + "((//android.widget.ScrollView)[1]/*/*)[%s]" % str(position+1)).click() class WalletView(BaseView): @@ -125,6 +125,7 @@ class WalletView(BaseView): self.add_account_generate_account_button = Button(self.driver, accessibility_id="add-account-add-account-button") self.status_account_total_usd_value = Text(self.driver, accessibility_id="account-total-value") self.scan_qr_button = Button(self.driver, accessibility_id="accounts-qr-code") + self.close_send_transaction_view_button = Button(self.driver, xpath="//androidx.appcompat.widget.LinearLayoutCompat") # individual account settings self.account_settings_button = Button(self.driver, translation_id="account-settings")