status-react/test/appium/tests/atomic/dapps_and_browsing/test_deep_links.py

84 lines
3.7 KiB
Python

from selenium.common.exceptions import NoSuchElementException
from tests import marks, test_dapp_url
from tests.base_test_case import SingleDeviceTestCase
from tests.users import basic_user, ens_user
from views.sign_in_view import SignInView
class TestDeepLinks(SingleDeviceTestCase):
@marks.testrail_id(5396)
@marks.high
def test_open_public_chat_using_deep_link(self):
sign_in_view = SignInView(self.driver)
sign_in_view.create_user()
self.driver.close_app()
chat_name = sign_in_view.get_random_chat_name()
deep_link = 'status-im://%s' % chat_name
sign_in_view.open_weblink_and_login(deep_link)
chat_view = sign_in_view.get_chat_view()
try:
assert chat_view.user_name_text.text == '#' + chat_name
except (AssertionError, NoSuchElementException):
self.driver.fail("Public chat '%s' is not opened" % chat_name)
@marks.testrail_id(5441)
@marks.medium
def test_open_user_profile_using_deep_link(self):
sign_in_view = SignInView(self.driver)
sign_in_view.create_user()
profile = sign_in_view.profile_button.click()
profile.switch_network('Mainnet with upstream RPC')
for user_ident in ens_user['ens'], ens_user['ens_another_domain'], ens_user['public_key'],:
self.driver.close_app()
deep_link = 'status-im://u/%s' % user_ident
sign_in_view.open_weblink_and_login(deep_link)
chat_view = sign_in_view.get_chat_view()
for text in ens_user['username'], 'Add to contacts':
if not chat_view.element_by_text(text).scroll_to_element(10):
self.driver.fail("User profile screen is not opened")
@marks.testrail_id(5442)
@marks.medium
def test_open_dapp_using_deep_link(self):
sign_in_view = SignInView(self.driver)
sign_in_view.create_user()
self.driver.close_app()
dapp_name = test_dapp_url
dapp_deep_link = 'status-im://b/%s' % dapp_name
sign_in_view.open_weblink_and_login(dapp_deep_link)
web_view = sign_in_view.get_chat_view()
try:
test_dapp_view = web_view.open_in_status_button.click()
test_dapp_view.allow_button.is_element_present()
except NoSuchElementException:
self.driver.fail("DApp '%s' is not opened!" % dapp_name)
@marks.testrail_id(5780)
@marks.medium
def test_open_own_user_profile_using_deep_link(self):
sign_in_view = SignInView(self.driver)
sign_in_view.recover_access(passphrase=basic_user['passphrase'])
self.driver.close_app()
deep_link = 'status-im://u/%s' % basic_user['public_key']
sign_in_view.open_weblink_and_login(deep_link)
profile_view = sign_in_view.get_profile_view()
if profile_view.default_username_text.text != basic_user['username'] \
or not profile_view.contacts_button.is_element_displayed() \
or not profile_view.share_my_profile_button.is_element_displayed():
self.driver.fail("Own profile screen is not opened!")
@marks.testrail_id(5781)
@marks.medium
def test_deep_link_with_invalid_user_public_key(self):
sign_in_view = SignInView(self.driver)
sign_in_view.create_user()
self.driver.close_app()
deep_link = 'status-im://u/%s' % basic_user['public_key'][:-10]
sign_in_view.open_weblink_and_login(deep_link)
home_view = sign_in_view.get_home_view()
home_view.plus_button.click_until_presence_of_element(home_view.start_new_chat_button)
if not home_view.start_new_chat_button.is_element_present():
self.driver.fail("Can't navigate to start new chat after app opened from deep link with invalid public key")