diff --git a/test/appium/support/github_report.py b/test/appium/support/github_report.py index ce5733fa12..1e38d6564f 100644 --- a/test/appium/support/github_report.py +++ b/test/appium/support/github_report.py @@ -25,6 +25,13 @@ class GithubHtmlReport(BaseTestReport): passed_tests_html = str() if failed_tests: failed_tests_html = self.build_tests_table_html(failed_tests, run_id, failed_tests=True) + summary_html += "```\n" + ids_failed_test = [] + for i, test in enumerate(failed_tests): + if test.testrail_case_id: + ids_failed_test.append(test.testrail_case_id) + summary_html += 'IDs of failed tests: %s \n' % ', '.join(map(str, ids_failed_test)) + summary_html += "```\n" if passed_tests: passed_tests_html = self.build_tests_table_html(passed_tests, run_id, failed_tests=False) return title_html + summary_html + failed_tests_html + passed_tests_html @@ -55,7 +62,7 @@ class GithubHtmlReport(BaseTestReport): def build_test_row_html(self, index, test, run_id): test_rail_link = TestrailReport().get_test_result_link(run_id, test.testrail_case_id) if test_rail_link: - html = "%s. %s" % (index + 1, test_rail_link, test.name) + html = "%s. %s, id: %s " % (index + 1, test_rail_link, test.name, test.testrail_case_id) else: html = "%d. %s (TestRail link is not found)" % (index + 1, test.name) html += "" diff --git a/test/appium/tests/atomic/chats/test_keycard_commands.py b/test/appium/tests/atomic/chats/test_keycard_commands.py index e288a51ab3..84d88d98b5 100644 --- a/test/appium/tests/atomic/chats/test_keycard_commands.py +++ b/test/appium/tests/atomic/chats/test_keycard_commands.py @@ -97,7 +97,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase): @marks.testrail_id(6294) @marks.medium - def test_keycard_request_and_receive_stt_in_1_1_chat_offline(self): + def test_keycard_request_and_receive_stt_in_1_1_chat_offline_opened_from_push(self): sender = transaction_senders['D'] self.create_drivers(2) device_1, device_2 = SignInView(self.drivers[0]), SignInView(self.drivers[1]) @@ -112,7 +112,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase): wallet_1.select_asset('STT') wallet_1.home_button.click() - home_2 = device_2.recover_access(passphrase=sender['passphrase'], keycard=True) + home_2 = device_2.recover_access(passphrase=sender['passphrase'], keycard=True, enable_notifications=True) wallet_2 = home_2.wallet_button.click() wallet_2.set_up_wallet() wallet_2.home_button.click() @@ -125,6 +125,7 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase): profile_2 = wallet_2.profile_button.click() profile_2.airplane_mode_button.click() device_2.home_button.click() + device_2.click_system_home_button() chat_element = home_1.get_chat(sender['username']) chat_element.wait_for_visibility_of_element(30) chat_1 = chat_element.click() @@ -144,8 +145,11 @@ class TestCommandsMultipleDevices(MultipleDeviceTestCase): home_2.just_fyi('Check that transaction message is fetched from offline and sign transaction') profile_2.airplane_mode_button.click() - home_2.connection_status.wait_for_invisibility_of_element(60) - home_2.get_chat(recipient_username).click() + transaction_request_pn = 'Request transaction' + device_2.open_notification_bar() + if not device_2.element_by_text(transaction_request_pn).is_element_displayed(60): + self.errors.append("Push notification is not received after going back from offline") + device_2.element_by_text(transaction_request_pn).click() chat_2_sender_message = chat_2.chat_element_by_text('↑ Outgoing transaction') if not chat_2_sender_message.is_element_displayed(): self.driver.fail('No outgoing transaction in 1-1 chat is shown for sender after requesting STT') diff --git a/test/appium/tests/atomic/dapps_and_browsing/test_dapps.py b/test/appium/tests/atomic/dapps_and_browsing/test_dapps.py index 0de57fde41..5b8f48c59f 100644 --- a/test/appium/tests/atomic/dapps_and_browsing/test_dapps.py +++ b/test/appium/tests/atomic/dapps_and_browsing/test_dapps.py @@ -38,6 +38,23 @@ class TestDApps(SingleDeviceTestCase): if not status_test_dapp.element_by_text(user['public_key']).is_element_displayed(): self.driver.fail('Public key is not returned') + @marks.testrail_id(6323) + @marks.medium + def test_resolve_ipns_name(self): + user = basic_user + ipns_url = 'uniswap.eth' + sign_in_view = SignInView(self.driver) + home_view = sign_in_view.recover_access(passphrase=user['passphrase']) + profile_view = home_view.profile_button.click() + profile_view.switch_network() + self.driver.set_clipboard_text(ipns_url) + dapp_view = home_view.dapp_tab_button.click() + dapp_view.enter_url_editbox.click() + dapp_view.paste_text() + dapp_view.confirm() + if not dapp_view.allow_button.is_element_displayed(): + self.driver.fail('No permission is asked for dapp, so IPNS name is not resolved') + @marks.testrail_id(6232) @marks.medium def test_switching_accounts_in_dapp(self): diff --git a/test/appium/views/elements_templates/url_1.png b/test/appium/views/elements_templates/url_1.png index f3b28ef97f..bbed32470c 100644 Binary files a/test/appium/views/elements_templates/url_1.png and b/test/appium/views/elements_templates/url_1.png differ diff --git a/test/appium/views/sign_in_view.py b/test/appium/views/sign_in_view.py index 3fdc6961c9..869f2c6c39 100644 --- a/test/appium/views/sign_in_view.py +++ b/test/appium/views/sign_in_view.py @@ -281,7 +281,7 @@ class SignInView(BaseView): self.profile_button.wait_for_visibility_of_element(30) return self.get_home_view() - def recover_access(self, passphrase: str, password: str = common_password, keycard=False): + def recover_access(self, passphrase: str, password: str = common_password, keycard=False, enable_notifications=False): self.get_started_button.click_until_presence_of_element(self.access_key_button) recover_access_view = self.access_key_button.click() recover_access_view.enter_seed_phrase_button.click() @@ -298,7 +298,10 @@ class SignInView(BaseView): recover_access_view.confirm_your_password_input.set_value(password) recover_access_view.next_button.click_until_presence_of_element(self.maybe_later_button) self.maybe_later_button.wait_for_element(30) - self.maybe_later_button.click_until_presence_of_element(self.lets_go_button) + if enable_notifications: + self.enable_notifications_button.click_until_presence_of_element(self.lets_go_button) + else: + self.maybe_later_button.click_until_presence_of_element(self.lets_go_button) self.lets_go_button.click() self.profile_button.wait_for_visibility_of_element(30) return self.get_home_view()