2020-10-30 14:40:14 +00:00
|
|
|
from tests import marks, test_dapp_name
|
2018-07-26 18:58:05 +00:00
|
|
|
from tests.base_test_case import SingleDeviceTestCase
|
2018-09-17 08:50:01 +00:00
|
|
|
from tests.users import basic_user
|
2018-07-26 18:58:05 +00:00
|
|
|
from views.sign_in_view import SignInView
|
|
|
|
|
|
|
|
|
|
|
|
class TestDApps(SingleDeviceTestCase):
|
|
|
|
|
2018-09-28 15:30:06 +00:00
|
|
|
@marks.testrail_id(5353)
|
|
|
|
@marks.critical
|
2018-07-26 18:58:05 +00:00
|
|
|
def test_filters_from_daap(self):
|
|
|
|
sign_in_view = SignInView(self.driver)
|
2018-12-25 15:39:05 +00:00
|
|
|
home_view = sign_in_view.create_user()
|
|
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
2018-07-26 18:58:05 +00:00
|
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
|
|
status_test_dapp.transactions_button.click()
|
2021-03-02 10:20:00 +00:00
|
|
|
status_test_dapp.test_filters_button.scroll_and_click()
|
2018-07-26 18:58:05 +00:00
|
|
|
for element in status_test_dapp.element_by_text('eth_uninstallFilter'), status_test_dapp.ok_button:
|
|
|
|
if element.is_element_displayed(10):
|
2019-10-21 12:48:45 +00:00
|
|
|
self.driver.fail("'Test filters' button produced an error")
|
2018-07-26 18:58:05 +00:00
|
|
|
|
2018-09-28 15:30:06 +00:00
|
|
|
@marks.testrail_id(5397)
|
|
|
|
@marks.high
|
2018-07-26 18:58:05 +00:00
|
|
|
def test_request_public_key_status_test_daap(self):
|
|
|
|
user = basic_user
|
|
|
|
sign_in_view = SignInView(self.driver)
|
2018-12-25 15:39:05 +00:00
|
|
|
home_view = sign_in_view.recover_access(passphrase=user['passphrase'])
|
2019-01-09 14:54:58 +00:00
|
|
|
status_test_dapp = home_view.open_status_test_dapp(allow_all=False)
|
2019-10-04 13:50:44 +00:00
|
|
|
status_test_dapp.status_api_button.click_until_presence_of_element(status_test_dapp.request_contact_code_button)
|
|
|
|
status_test_dapp.request_contact_code_button.click_until_presence_of_element(status_test_dapp.deny_button)
|
2018-08-27 18:24:51 +00:00
|
|
|
status_test_dapp.deny_button.click()
|
2018-07-26 18:58:05 +00:00
|
|
|
if status_test_dapp.element_by_text(user['public_key']).is_element_displayed():
|
2019-10-21 12:48:45 +00:00
|
|
|
self.driver.fail('Public key is returned but access was not allowed')
|
2019-10-04 13:50:44 +00:00
|
|
|
status_test_dapp.request_contact_code_button.click_until_presence_of_element(status_test_dapp.deny_button)
|
2018-08-27 18:24:51 +00:00
|
|
|
status_test_dapp.allow_button.click()
|
2018-07-26 18:58:05 +00:00
|
|
|
if not status_test_dapp.element_by_text(user['public_key']).is_element_displayed():
|
2019-10-21 12:48:45 +00:00
|
|
|
self.driver.fail('Public key is not returned')
|
|
|
|
|
2021-02-05 11:29:35 +00:00
|
|
|
|
|
|
|
@marks.testrail_id(6635)
|
|
|
|
@marks.medium
|
|
|
|
def test_webview_camera_permission(self):
|
|
|
|
web_view_camera_url = 'https://simpledapp.status.im/webviewtest/webviewcamera.html'
|
|
|
|
home = SignInView(self.driver).create_user()
|
|
|
|
self.driver.set_clipboard_text(web_view_camera_url)
|
|
|
|
dapp = home.dapp_tab_button.click()
|
|
|
|
dapp.enter_url_editbox.click()
|
|
|
|
dapp.paste_text()
|
|
|
|
dapp.confirm()
|
|
|
|
|
|
|
|
from views.web_views.base_web_view import BaseWebView
|
|
|
|
camera_dapp = BaseWebView(self.driver)
|
|
|
|
camera_dapp.just_fyi("Check camera request blocked (because it's not enabled in app yet)")
|
|
|
|
camera_request_blocked = home.get_translation_by_key("page-camera-request-blocked")
|
|
|
|
if not dapp.element_by_text_part(camera_request_blocked).is_element_displayed():
|
|
|
|
self.driver.fail("There is no pop-up notifying that camera access need to be granted in app")
|
|
|
|
camera_dapp.swipe_down()
|
|
|
|
if not camera_dapp.camera_image_in_dapp.is_element_image_similar_to_template('blank_camera_image.png'):
|
|
|
|
self.driver.fail("Even camera permissions not allowed - acccess to camera granted")
|
|
|
|
|
|
|
|
profile = home.profile_button.click()
|
|
|
|
profile.privacy_and_security_button.click()
|
|
|
|
|
|
|
|
camera_dapp.just_fyi("Enable camera requests in Dapps")
|
|
|
|
camera_permission_requests = home.get_translation_by_key("webview-camera-permission-requests")
|
|
|
|
if profile.element_by_text_part(camera_permission_requests).is_element_displayed():
|
|
|
|
profile.element_by_text_part('Webview camera permission requests').click()
|
|
|
|
home.dapp_tab_button.click(desired_element_text='webview')
|
|
|
|
|
|
|
|
camera_dapp.just_fyi("Check DApp asks now to allow camera aceess but Deny in DApp")
|
|
|
|
camera_dapp.browser_refresh_page_button.click()
|
|
|
|
camera_dapp.deny_button.click()
|
|
|
|
if not camera_dapp.camera_image_in_dapp.is_element_image_similar_to_template('blank_camera_image.png'):
|
|
|
|
self.driver.fail("Even camera access Denied to Dapp, - acccess to camera granted")
|
|
|
|
|
|
|
|
camera_dapp.just_fyi("Check DApp asks now to allow camera aceess and Allow access to DApp")
|
|
|
|
camera_dapp.browser_refresh_page_button.click()
|
|
|
|
camera_dapp.allow_button.click()
|
|
|
|
if camera_dapp.camera_image_in_dapp.is_element_image_similar_to_template('blank_camera_image.png'):
|
|
|
|
self.driver.fail("Even camera access Accepted to Dapp, - camera view is not shown")
|
|
|
|
|
|
|
|
camera_dapp.just_fyi("Relogin and check camera access still needs to be allowed")
|
|
|
|
home.profile_button.click()
|
|
|
|
profile.relogin()
|
|
|
|
home.dapp_tab_button.click()
|
|
|
|
camera_dapp.open_tabs_button.click()
|
|
|
|
dapp.element_by_text_part("https").click()
|
|
|
|
if not camera_dapp.allow_button.is_element_displayed():
|
|
|
|
self.driver.fail("No request to camera access after relogin")
|
|
|
|
|
2020-09-02 15:57:19 +00:00
|
|
|
@marks.testrail_id(6323)
|
|
|
|
@marks.medium
|
2020-11-23 12:07:24 +00:00
|
|
|
@marks.flaky
|
2020-09-02 15:57:19 +00:00
|
|
|
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()
|
2020-09-09 15:06:07 +00:00
|
|
|
if not dapp_view.allow_button.is_element_displayed(30):
|
2020-09-02 15:57:19 +00:00
|
|
|
self.driver.fail('No permission is asked for dapp, so IPNS name is not resolved')
|
|
|
|
|
2019-10-18 13:23:36 +00:00
|
|
|
@marks.testrail_id(6232)
|
|
|
|
@marks.medium
|
|
|
|
def test_switching_accounts_in_dapp(self):
|
|
|
|
sign_in_view = SignInView(self.driver)
|
|
|
|
home_view = sign_in_view.create_user()
|
|
|
|
wallet_view = sign_in_view.wallet_button.click()
|
|
|
|
|
|
|
|
wallet_view.just_fyi('create new account in multiaccount')
|
|
|
|
wallet_view.set_up_wallet()
|
2020-11-11 15:37:27 +00:00
|
|
|
status_account = home_view.status_account_name
|
2020-01-16 15:47:04 +00:00
|
|
|
account_name = 'Subaccount'
|
2019-10-18 13:23:36 +00:00
|
|
|
wallet_view.add_account(account_name)
|
|
|
|
address = wallet_view.get_wallet_address(account_name)
|
|
|
|
|
|
|
|
sign_in_view.just_fyi('can see two accounts in DApps')
|
|
|
|
dapp_view = sign_in_view.dapp_tab_button.click()
|
|
|
|
dapp_view.select_account_button.click()
|
|
|
|
for text in 'Select the account', status_account, account_name:
|
|
|
|
if not dapp_view.element_by_text_part(text).is_element_displayed():
|
|
|
|
self.driver.fail("No expected element %s is shown in menu" % text)
|
|
|
|
|
|
|
|
sign_in_view.just_fyi('add permission to Status account')
|
|
|
|
dapp_view.enter_url_editbox.click()
|
|
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
|
|
|
|
|
|
sign_in_view.just_fyi('check that permissions from previous account was removed once you choose another')
|
|
|
|
dapp_view.select_account_button.click()
|
|
|
|
dapp_view.select_account_by_name(account_name).wait_for_element(30)
|
|
|
|
dapp_view.select_account_by_name(account_name).click()
|
|
|
|
profile_view = dapp_view.profile_button.click()
|
|
|
|
profile_view.privacy_and_security_button.click()
|
|
|
|
profile_view.dapp_permissions_button.click()
|
|
|
|
if profile_view.element_by_text(test_dapp_name).is_element_displayed():
|
|
|
|
self.errors.append("Permissions for %s are not removed" % test_dapp_name)
|
|
|
|
|
|
|
|
sign_in_view.just_fyi('check that can change account')
|
2020-12-14 17:39:29 +00:00
|
|
|
profile_view.dapp_tab_button.click(desired_element_text='Allow')
|
|
|
|
if not status_test_dapp.element_by_text_part(account_name).is_element_displayed():
|
2019-10-18 13:23:36 +00:00
|
|
|
self.errors.append("No expected account %s is shown in authorize web3 popup for wallet" % account_name)
|
2020-12-14 17:39:29 +00:00
|
|
|
status_test_dapp.allow_button.click()
|
2020-11-09 15:27:43 +00:00
|
|
|
dapp_view.profile_button.click(desired_element_text='DApp permissions')
|
2019-10-18 13:23:36 +00:00
|
|
|
profile_view.element_by_text(test_dapp_name).click()
|
|
|
|
for text in 'Chat key', account_name:
|
2020-12-14 17:39:29 +00:00
|
|
|
if not dapp_view.element_by_text_part(text).is_element_displayed():
|
2019-10-18 13:23:36 +00:00
|
|
|
self.errors.append("Access is not granted to %s" % text)
|
|
|
|
|
|
|
|
sign_in_view.just_fyi('check correct account is shown for transaction if sending from DApp')
|
2020-12-14 17:39:29 +00:00
|
|
|
profile_view.dapp_tab_button.click(desired_element_text='Accounts')
|
2019-10-18 13:23:36 +00:00
|
|
|
status_test_dapp.assets_button.click()
|
|
|
|
send_transaction_view = status_test_dapp.request_stt_button.click()
|
2019-12-09 15:33:59 +00:00
|
|
|
address = send_transaction_view.get_formatted_recipient_address(address)
|
2019-10-18 13:23:36 +00:00
|
|
|
if not send_transaction_view.element_by_text(address).is_element_displayed():
|
|
|
|
self.errors.append("Wallet address %s in not shown in 'From' on Send Transaction screen" % address)
|
|
|
|
|
2020-01-16 15:47:04 +00:00
|
|
|
sign_in_view.just_fyi('Relogin and check multiaccount loads fine')
|
|
|
|
send_transaction_view.cancel_button.click()
|
|
|
|
sign_in_view.profile_button.click()
|
|
|
|
sign_in_view.relogin()
|
|
|
|
sign_in_view.wallet_button.click()
|
|
|
|
if not wallet_view.element_by_text(account_name).is_element_displayed():
|
|
|
|
self.errors.append("Subaccount is gone after relogin in Wallet!")
|
2020-12-14 17:39:29 +00:00
|
|
|
sign_in_view.profile_button.click()
|
|
|
|
profile_view.privacy_and_security_button.click()
|
|
|
|
profile_view.dapp_permissions_button.click()
|
|
|
|
profile_view.element_by_text(test_dapp_name).click()
|
|
|
|
if not profile_view.element_by_text(account_name).is_element_displayed():
|
2020-01-16 15:47:04 +00:00
|
|
|
self.errors.append("Subaccount is not selected after relogin in Dapps!")
|
2019-10-29 08:25:57 +00:00
|
|
|
self.errors.verify_no_errors()
|
2019-10-18 13:23:36 +00:00
|
|
|
|