mirror of
https://github.com/status-im/status-mobile.git
synced 2025-01-18 04:31:16 +00:00
497af38a7f
Replace all the usage of the button without component Use quo Fix tests List item in multiaccounts Use list items in contacts Fix welcome screen button Experiment long press Big list item Remove old bottom sheet Use bottom sheet Keycard Add error to list item Stickers panel button Images panel Fix z-index in profile Fix android crash Fix signing list item Try fixing test iOs gas sheet keyboard Disable root alert in e2e keycard signing sheet height Clean up bottom sheet events Replace flat list in profile Memorise the manual-close value for bottom sheet Mailserver QR scanner Fix e2e tests E2e fix 2 Fix e2e 3 Remove extra fn Reduce bridging time for animation Trick android layout Try hooks Fix profile missing ens-name Disable press on control in list-view allow disabling animations in list item Use simple list in wallet assets settings TBD - this screen should be rewritten from scratch. Now on every interaction the full list is re-rendered, also it makes the wallet main screen to re-render. Fix send sheet Handle long press in main thread UI fixes perf Update e2e fix missing user name in image long press Signed-off-by: Gheorghe Pinzaru <feross95@gmail.com>
149 lines
7.4 KiB
Python
149 lines
7.4 KiB
Python
|
|
from tests import marks, unique_password, common_password
|
|
from tests.base_test_case import SingleDeviceTestCase
|
|
from tests.users import transaction_senders, transaction_recipients, basic_user
|
|
from views.send_transaction_view import SendTransactionView
|
|
from views.sign_in_view import SignInView
|
|
from decimal import Decimal
|
|
|
|
|
|
class TestTransactionDApp(SingleDeviceTestCase):
|
|
|
|
@marks.testrail_id(5309)
|
|
@marks.critical
|
|
def test_send_transaction_from_daap(self):
|
|
sender = transaction_senders['K']
|
|
sign_in_view = SignInView(self.driver)
|
|
home_view = sign_in_view.recover_access(sender['passphrase'], unique_password)
|
|
address = sender['address']
|
|
initial_balance = self.network_api.get_balance(address)
|
|
wallet_view = home_view.wallet_button.click()
|
|
wallet_view.set_up_wallet()
|
|
initial_amount_STT = wallet_view.get_asset_amount_by_name('STT')
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.assets_button.click()
|
|
send_transaction_view = status_test_dapp.request_stt_button.click()
|
|
send_transaction_view.sign_transaction(unique_password)
|
|
self.network_api.verify_balance_is_updated(initial_balance, address)
|
|
status_test_dapp.wallet_button.click()
|
|
|
|
send_transaction_view.just_fyi('Verify that wallet balance is updated')
|
|
wallet_view.wait_balance_is_changed('STT', initial_amount_STT)
|
|
|
|
send_transaction_view.just_fyi('Check logcat for sensitive data')
|
|
values_in_logcat = send_transaction_view.find_values_in_logcat(password=unique_password)
|
|
if values_in_logcat:
|
|
self.driver.fail(values_in_logcat)
|
|
|
|
@marks.testrail_id(5342)
|
|
@marks.critical
|
|
def test_sign_message_from_daap(self):
|
|
password = 'password_for_daap'
|
|
sign_in_view = SignInView(self.driver)
|
|
home_view = sign_in_view.create_user(password=password)
|
|
wallet_view = home_view.wallet_button.click()
|
|
wallet_view.set_up_wallet()
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.transactions_button.click()
|
|
send_transaction_view = status_test_dapp.sign_message_button.click()
|
|
send_transaction_view.find_full_text('Test message')
|
|
send_transaction_view.enter_password_input.send_keys(password)
|
|
send_transaction_view.sign_button.click()
|
|
if not status_test_dapp.element_by_text_part('Signed message').is_element_displayed():
|
|
self.driver.fail('Message was not signed')
|
|
|
|
send_transaction_view.just_fyi('Check logcat for sensitive data')
|
|
values_in_logcat = send_transaction_view.find_values_in_logcat(password=password)
|
|
if values_in_logcat:
|
|
self.driver.fail(values_in_logcat)
|
|
|
|
@marks.testrail_id(5333)
|
|
@marks.low
|
|
def test_deploy_contract_from_daap(self):
|
|
sender = transaction_senders['L']
|
|
sign_in_view = SignInView(self.driver)
|
|
home_view = sign_in_view.recover_access(sender['passphrase'])
|
|
wallet_view = home_view.wallet_button.click()
|
|
wallet_view.set_up_wallet()
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.transactions_button.click()
|
|
send_transaction_view = status_test_dapp.deploy_contract_button.click()
|
|
send_transaction_view.sign_transaction(default_gas_price=False)
|
|
for text in 'Contract deployed at: ', 'Call contract get function', \
|
|
'Call contract set function', 'Call function 2 times in a row':
|
|
if not status_test_dapp.element_by_text(text).is_element_displayed(180):
|
|
self.driver.fail('Contract was not created')
|
|
|
|
@marks.testrail_id(5784)
|
|
@marks.medium
|
|
def test_sign_typed_message(self):
|
|
sender = transaction_senders['W']
|
|
sign_in_view = SignInView(self.driver)
|
|
home_view = sign_in_view.recover_access(sender['passphrase'])
|
|
wallet_view = home_view.wallet_button.click()
|
|
wallet_view.set_up_wallet()
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.transactions_button.click_until_presence_of_element(status_test_dapp.sign_typed_message_button)
|
|
send_transaction_view = status_test_dapp.sign_typed_message_button.click()
|
|
send_transaction_view.enter_password_input.send_keys(common_password)
|
|
send_transaction_view.sign_button.click_until_presence_of_element(send_transaction_view.ok_button)
|
|
status_test_dapp.find_text_part('0xde3048417e5881acc9ca8466ab0b3e2f9f965a70acabbda2d140e95a28b13d2d'
|
|
'2d38eba6c0a5bfdc50e5d59e0ed3226c749732fd4a9374b57f34121eaff2a5081c')
|
|
|
|
@marks.testrail_id(5743)
|
|
@marks.high
|
|
def test_send_two_transactions_in_batch_in_dapp(self):
|
|
sender = transaction_senders['W']
|
|
sign_in_view = SignInView(self.driver)
|
|
home_view = sign_in_view.recover_access(sender['passphrase'])
|
|
wallet_view = home_view.wallet_button.click()
|
|
wallet_view.set_up_wallet()
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.transactions_button.click_until_presence_of_element(status_test_dapp.send_two_tx_in_batch_button)
|
|
send_transaction_view = status_test_dapp.send_two_tx_in_batch_button.click()
|
|
send_transaction_view.sign_transaction()
|
|
|
|
wallet_view.just_fyi('Check that second "Send transaction" screen appears')
|
|
if not send_transaction_view.sign_with_password.is_element_displayed(10):
|
|
self.driver.fail('Second send transaction screen did not appear!')
|
|
|
|
send_transaction_view.sign_transaction()
|
|
|
|
@marks.testrail_id(5744)
|
|
@marks.critical
|
|
def test_send_two_transactions_one_after_another_in_dapp(self):
|
|
sender = transaction_senders['Z']
|
|
sign_in_view = SignInView(self.driver)
|
|
home_view = sign_in_view.recover_access(sender['passphrase'])
|
|
wallet_view = home_view.wallet_button.click()
|
|
wallet_view.set_up_wallet()
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.transactions_button.click()
|
|
send_transaction_view = status_test_dapp.send_two_tx_one_by_one_button.click()
|
|
send_transaction_view.sign_transaction()
|
|
|
|
send_transaction_view.just_fyi('Check that second "Send transaction" screen appears')
|
|
if not send_transaction_view.sign_with_password.is_element_displayed(20):
|
|
self.driver.fail('Second send transaction screen did not appear!')
|
|
|
|
send_transaction_view.sign_transaction()
|
|
|
|
@marks.testrail_id(5677)
|
|
@marks.high
|
|
def test_onboarding_screen_when_requesting_tokens_for_recovered_account(self):
|
|
signin_view = SignInView(self.driver)
|
|
home_view = signin_view.recover_access(passphrase=transaction_senders['U']['passphrase'])
|
|
status_test_dapp = home_view.open_status_test_dapp()
|
|
status_test_dapp.wait_for_d_aap_to_load()
|
|
status_test_dapp.assets_button.click()
|
|
send_transaction_view = status_test_dapp.request_stt_button.click()
|
|
if not send_transaction_view.onboarding_message.is_element_displayed():
|
|
self.driver.fail('It seems onboarding screen is not shown.')
|
|
|