Wallet modal tests
Signed-off-by: yevh-berdnyk <ie.berdnyk@gmail.com>
This commit is contained in:
parent
eaa4ef985b
commit
746d580e34
|
@ -53,7 +53,8 @@
|
||||||
(toolbar/nav-back-count {:home? true})
|
(toolbar/nav-back-count {:home? true})
|
||||||
[toolbar-content/toolbar-content-view]
|
[toolbar-content/toolbar-content-view]
|
||||||
[toolbar/actions [{:icon :icons/wallet
|
[toolbar/actions [{:icon :icons/wallet
|
||||||
:icon-opts {:color :black}
|
:icon-opts {:color :black
|
||||||
|
:accessibility-label :wallet-modal-button}
|
||||||
:handler #(re-frame/dispatch [:navigate-to-modal :wallet-modal])}
|
:handler #(re-frame/dispatch [:navigate-to-modal :wallet-modal])}
|
||||||
{:icon :icons/options
|
{:icon :icons/options
|
||||||
:icon-opts {:color :black
|
:icon-opts {:color :black
|
||||||
|
|
|
@ -96,7 +96,8 @@
|
||||||
(re-frame/dispatch [:remove-browser browser-id]))))]
|
(re-frame/dispatch [:remove-browser browser-id]))))]
|
||||||
[toolbar-content url browser error? url-editing?]
|
[toolbar-content url browser error? url-editing?]
|
||||||
[toolbar.view/actions [{:icon :icons/wallet
|
[toolbar.view/actions [{:icon :icons/wallet
|
||||||
:icon-opts {:color :black}
|
:icon-opts {:color :black
|
||||||
|
:accessibility-label :wallet-modal-button}
|
||||||
:handler #(re-frame/dispatch [:navigate-to-modal :wallet-modal])}]]]
|
:handler #(re-frame/dispatch [:navigate-to-modal :wallet-modal])}]]]
|
||||||
[react/view components.styles/flex
|
[react/view components.styles/flex
|
||||||
[components.webview-bridge/webview-bridge
|
[components.webview-bridge/webview-bridge
|
||||||
|
|
|
@ -38,7 +38,8 @@
|
||||||
[toolbar/content-wrapper]
|
[toolbar/content-wrapper]
|
||||||
[toolbar/actions
|
[toolbar/actions
|
||||||
[{:icon (if modal-history? :icons/wallet :icons/transaction-history)
|
[{:icon (if modal-history? :icons/wallet :icons/transaction-history)
|
||||||
:icon-opts {:color :white}
|
:icon-opts {:color :white
|
||||||
|
:accessibility-label (if modal-history? :wallet-modal-button :transaction-history-button)}
|
||||||
:handler #(re-frame/dispatch [:set-in [:wallet :modal-history?] (not modal-history?)])}]]]])
|
:handler #(re-frame/dispatch [:set-in [:wallet :modal-history?] (not modal-history?)])}]]]])
|
||||||
|
|
||||||
(defn- total-section [value currency]
|
(defn- total-section [value currency]
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from tests import marks, transaction_users
|
||||||
|
from tests.base_test_case import SingleDeviceTestCase
|
||||||
|
from views.sign_in_view import SignInView
|
||||||
|
|
||||||
|
|
||||||
|
@marks.wallet_modal
|
||||||
|
class TestWalletModal(SingleDeviceTestCase):
|
||||||
|
|
||||||
|
@marks.testrail_id(3794)
|
||||||
|
def test_wallet_modal_public_chat(self):
|
||||||
|
user = transaction_users['A_USER']
|
||||||
|
sign_in = SignInView(self.driver)
|
||||||
|
sign_in.recover_access(user['passphrase'], user['password'])
|
||||||
|
wallet = sign_in.wallet_button.click()
|
||||||
|
wallet.set_up_wallet()
|
||||||
|
usd_value = wallet.get_usd_total_value()
|
||||||
|
eth_value = wallet.get_eth_value()
|
||||||
|
stt_value = wallet.get_stt_value()
|
||||||
|
home = wallet.home_button.click()
|
||||||
|
chat = home.join_public_chat(home.get_public_chat_name())
|
||||||
|
wallet_modal = chat.wallet_modal_button.click()
|
||||||
|
if wallet_modal.address_text.text != '0x' + user['address']:
|
||||||
|
self.errors.append('Wallet address is not shown in wallet modal')
|
||||||
|
if wallet_modal.get_usd_total_value() != usd_value:
|
||||||
|
self.errors.append('Total value in USD is not correct in wallet modal')
|
||||||
|
if wallet_modal.get_eth_value() != eth_value:
|
||||||
|
self.errors.append('ETH value is not correct in wallet modal')
|
||||||
|
if wallet_modal.get_stt_value() != stt_value:
|
||||||
|
self.errors.append('STT value is not correct in wallet modal')
|
||||||
|
if not wallet_modal.transaction_history_button.is_element_displayed():
|
||||||
|
self.errors.append('Transaction history button is not visible in wallet modal')
|
||||||
|
self.verify_no_errors()
|
||||||
|
|
||||||
|
@marks.testrail_id(3795)
|
||||||
|
def test_wallet_modal_dapp(self):
|
||||||
|
user = transaction_users['B_USER']
|
||||||
|
sign_in = SignInView(self.driver)
|
||||||
|
sign_in.recover_access(user['passphrase'], user['password'])
|
||||||
|
wallet = sign_in.wallet_button.click()
|
||||||
|
wallet.set_up_wallet()
|
||||||
|
usd_value = wallet.get_usd_total_value()
|
||||||
|
eth_value = wallet.get_eth_value()
|
||||||
|
stt_value = wallet.get_stt_value()
|
||||||
|
home = wallet.home_button.click()
|
||||||
|
start_new_chat = home.plus_button.click()
|
||||||
|
start_new_chat.open_d_app_button.click()
|
||||||
|
start_new_chat.element_by_text('Airswap').click()
|
||||||
|
start_new_chat.open_button.click()
|
||||||
|
wallet_modal = start_new_chat.wallet_modal_button.click()
|
||||||
|
if wallet_modal.address_text.text != '0x' + user['address']:
|
||||||
|
self.errors.append('Wallet address is not shown in wallet modal')
|
||||||
|
if wallet_modal.get_usd_total_value() != usd_value:
|
||||||
|
self.errors.append('Total value in USD is not correct in wallet modal')
|
||||||
|
if wallet_modal.get_eth_value() != eth_value:
|
||||||
|
self.errors.append('ETH value is not correct in wallet modal')
|
||||||
|
if wallet_modal.get_stt_value() != stt_value:
|
||||||
|
self.errors.append('STT value is not correct in wallet modal')
|
||||||
|
if not wallet_modal.transaction_history_button.is_element_displayed():
|
||||||
|
self.errors.append('Transaction history button is not visible in wallet modal')
|
||||||
|
self.verify_no_errors()
|
||||||
|
|
||||||
|
@marks.testrail_id(3797)
|
||||||
|
def test_wallet_modal_transaction_history(self):
|
||||||
|
user = transaction_users['B_USER']
|
||||||
|
sign_in = SignInView(self.driver)
|
||||||
|
home = sign_in.recover_access(user['passphrase'], user['password'])
|
||||||
|
start_new_chat = home.plus_button.click()
|
||||||
|
start_new_chat.open_d_app_button.click()
|
||||||
|
start_new_chat.element_by_text('Airswap').click()
|
||||||
|
start_new_chat.open_button.click()
|
||||||
|
wallet_modal = start_new_chat.wallet_modal_button.click()
|
||||||
|
transaction_history = wallet_modal.transaction_history_button.click()
|
||||||
|
if transaction_history.transactions_table.get_transactions_number() < 1:
|
||||||
|
pytest.fail('Transactions history is not shown')
|
||||||
|
|
||||||
|
@marks.testrail_id(3800)
|
||||||
|
def test_close_and_open_wallet_modal(self):
|
||||||
|
user = transaction_users['B_USER']
|
||||||
|
sign_in = SignInView(self.driver)
|
||||||
|
home = sign_in.recover_access(user['passphrase'], user['password'])
|
||||||
|
start_new_chat = home.plus_button.click()
|
||||||
|
start_new_chat.open_d_app_button.click()
|
||||||
|
start_new_chat.element_by_text('Airswap').click()
|
||||||
|
start_new_chat.open_button.click()
|
||||||
|
web_view = start_new_chat.get_base_web_view()
|
||||||
|
wallet_modal = start_new_chat.wallet_modal_button.click()
|
||||||
|
if not wallet_modal.usd_total_value.is_element_displayed():
|
||||||
|
pytest.fail("Wallet modal doesn't contain balance")
|
||||||
|
transaction_history = wallet_modal.transaction_history_button.click()
|
||||||
|
if transaction_history.transactions_table.get_transactions_number() < 1:
|
||||||
|
pytest.fail('Transactions history is not shown')
|
||||||
|
transaction_history.cross_icon.click()
|
||||||
|
if not web_view.browser_previous_page_button.is_element_displayed():
|
||||||
|
pytest.fail('Modal wallet was not closed')
|
||||||
|
web_view.cross_icon.click()
|
||||||
|
chat = home.join_public_chat(home.get_public_chat_name())
|
||||||
|
chat.wallet_modal_button.click()
|
||||||
|
if not wallet_modal.usd_total_value.is_element_displayed():
|
||||||
|
pytest.fail("Wallet modal was not opened")
|
|
@ -31,7 +31,7 @@ class TestBrowsing(SingleDeviceTestCase):
|
||||||
start_new_chat.confirm()
|
start_new_chat.confirm()
|
||||||
browsing_view = home_view.get_base_web_view()
|
browsing_view = home_view.get_base_web_view()
|
||||||
browsing_view.find_text_part('Unable to load page')
|
browsing_view.find_text_part('Unable to load page')
|
||||||
browsing_view.browser_cross_icon.click()
|
browsing_view.cross_icon.click()
|
||||||
if home_view.element_by_text('Browser').is_element_displayed():
|
if home_view.element_by_text('Browser').is_element_displayed():
|
||||||
pytest.fail('Browser entity is shown for an invalid link')
|
pytest.fail('Browser entity is shown for an invalid link')
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ class TestBrowsing(SingleDeviceTestCase):
|
||||||
browsing_view = home_view.get_base_web_view()
|
browsing_view = home_view.get_base_web_view()
|
||||||
browsing_view.url_edit_box_lock_icon.click()
|
browsing_view.url_edit_box_lock_icon.click()
|
||||||
browsing_view.find_full_text(connection_is_secure_text)
|
browsing_view.find_full_text(connection_is_secure_text)
|
||||||
browsing_view.browser_cross_icon.click()
|
browsing_view.cross_icon.click()
|
||||||
start_new_chat_view = home_view.plus_button.click()
|
start_new_chat_view = home_view.plus_button.click()
|
||||||
start_new_chat_view.open_d_app_button.click()
|
start_new_chat_view.open_d_app_button.click()
|
||||||
start_new_chat_view.element_by_text('Airswap').click()
|
start_new_chat_view.element_by_text('Airswap').click()
|
||||||
|
@ -75,7 +75,7 @@ class TestBrowsing(SingleDeviceTestCase):
|
||||||
start_new_chat.enter_url_editbox.set_value('google.com')
|
start_new_chat.enter_url_editbox.set_value('google.com')
|
||||||
start_new_chat.confirm()
|
start_new_chat.confirm()
|
||||||
browsing_view = home_view.get_base_web_view()
|
browsing_view = home_view.get_base_web_view()
|
||||||
browsing_view.browser_cross_icon.click()
|
browsing_view.cross_icon.click()
|
||||||
home_view.get_chat_with_user('Browser').swipe_and_delete()
|
home_view.get_chat_with_user('Browser').swipe_and_delete()
|
||||||
home_view.relogin()
|
home_view.relogin()
|
||||||
if home_view.get_chat_with_user('Browser').is_element_present(20):
|
if home_view.get_chat_with_user('Browser').is_element_present(20):
|
||||||
|
|
|
@ -101,7 +101,7 @@ class TestTransactionDApp(SingleDeviceTestCase):
|
||||||
status_test_dapp.request_eth_button.click()
|
status_test_dapp.request_eth_button.click()
|
||||||
status_test_dapp.element_by_text('Faucet request recieved').wait_for_visibility_of_element()
|
status_test_dapp.element_by_text('Faucet request recieved').wait_for_visibility_of_element()
|
||||||
status_test_dapp.ok_button.click()
|
status_test_dapp.ok_button.click()
|
||||||
status_test_dapp.browser_cross_icon.click()
|
status_test_dapp.cross_icon.click()
|
||||||
wallet_view = sign_in_view.wallet_button.click()
|
wallet_view = sign_in_view.wallet_button.click()
|
||||||
wallet_view.set_up_wallet()
|
wallet_view.set_up_wallet()
|
||||||
wallet_view.wait_balance_changed_on_wallet_screen()
|
wallet_view.wait_balance_changed_on_wallet_screen()
|
||||||
|
|
|
@ -14,6 +14,7 @@ dapps = pytest.mark.dapps
|
||||||
message_reliability = pytest.mark.message_reliability
|
message_reliability = pytest.mark.message_reliability
|
||||||
transaction = pytest.mark.transaction
|
transaction = pytest.mark.transaction
|
||||||
wallet = pytest.mark.wallet
|
wallet = pytest.mark.wallet
|
||||||
|
wallet_modal = pytest.mark.wallet_modal
|
||||||
sign_in = pytest.mark.sign_in
|
sign_in = pytest.mark.sign_in
|
||||||
skip = pytest.mark.skip
|
skip = pytest.mark.skip
|
||||||
logcat = pytest.mark.logcat
|
logcat = pytest.mark.logcat
|
||||||
|
|
|
@ -222,6 +222,23 @@ class ProgressBar(BaseElement):
|
||||||
self.locator = self.Locator.xpath_selector(parent_locator + '//android.widget.ProgressBar')
|
self.locator = self.Locator.xpath_selector(parent_locator + '//android.widget.ProgressBar')
|
||||||
|
|
||||||
|
|
||||||
|
class WalletModalButton(BaseButton):
|
||||||
|
def __init__(self, driver):
|
||||||
|
super(WalletModalButton, self).__init__(driver)
|
||||||
|
self.locator = self.Locator.accessibility_id('wallet-modal-button')
|
||||||
|
|
||||||
|
def navigate(self):
|
||||||
|
from views.wallet_view import WalletView
|
||||||
|
return WalletView(self.driver)
|
||||||
|
|
||||||
|
|
||||||
|
class CrossIcon(BaseButton):
|
||||||
|
|
||||||
|
def __init__(self, driver):
|
||||||
|
super(CrossIcon, self).__init__(driver)
|
||||||
|
self.locator = self.Locator.xpath_selector('(//android.view.ViewGroup[@content-desc="icon"])[1]')
|
||||||
|
|
||||||
|
|
||||||
class BaseView(object):
|
class BaseView(object):
|
||||||
def __init__(self, driver):
|
def __init__(self, driver):
|
||||||
self.driver = driver
|
self.driver = driver
|
||||||
|
@ -246,12 +263,15 @@ class BaseView(object):
|
||||||
self.discard_button = DiscardButton(self.driver)
|
self.discard_button = DiscardButton(self.driver)
|
||||||
self.confirm_button = ConfirmButton(self.driver)
|
self.confirm_button = ConfirmButton(self.driver)
|
||||||
self.connection_status = ConnectionStatusText(self.driver)
|
self.connection_status = ConnectionStatusText(self.driver)
|
||||||
|
self.cross_icon = CrossIcon(self.driver)
|
||||||
|
|
||||||
self.apps_button = AppsButton(self.driver)
|
self.apps_button = AppsButton(self.driver)
|
||||||
self.status_app_icon = StatusAppIcon(self.driver)
|
self.status_app_icon = StatusAppIcon(self.driver)
|
||||||
|
|
||||||
self.test_fairy_warning = TestFairyWarning(self.driver)
|
self.test_fairy_warning = TestFairyWarning(self.driver)
|
||||||
|
|
||||||
|
self.wallet_modal_button = WalletModalButton(self.driver)
|
||||||
|
|
||||||
self.element_types = {
|
self.element_types = {
|
||||||
'base': BaseElement,
|
'base': BaseElement,
|
||||||
'button': BaseButton,
|
'button': BaseButton,
|
||||||
|
|
|
@ -72,7 +72,7 @@ class STTAssetText(BaseText):
|
||||||
class UsdTotalValueText(BaseText):
|
class UsdTotalValueText(BaseText):
|
||||||
def __init__(self, driver):
|
def __init__(self, driver):
|
||||||
super(UsdTotalValueText, self).__init__(driver)
|
super(UsdTotalValueText, self).__init__(driver)
|
||||||
self.locator = self.Locator.xpath_selector("//*[@text='USD']/../android.widget.TextView[1]")
|
self.locator = self.Locator.accessibility_id('total-amount-value-text')
|
||||||
|
|
||||||
|
|
||||||
class SendTransactionRequestButton(BaseButton):
|
class SendTransactionRequestButton(BaseButton):
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
from views.base_view import *
|
import time
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from views.base_element import BaseElement, BaseEditBox, BaseButton
|
||||||
|
from views.base_view import BaseView
|
||||||
|
|
||||||
|
|
||||||
class ProgressBarIcon(BaseElement):
|
class ProgressBarIcon(BaseElement):
|
||||||
|
|
||||||
|
@ -9,6 +12,13 @@ class ProgressBarIcon(BaseElement):
|
||||||
self.locator = self.Locator.xpath_selector("//android.widget.ProgressBar")
|
self.locator = self.Locator.xpath_selector("//android.widget.ProgressBar")
|
||||||
|
|
||||||
|
|
||||||
|
class WebLinkEditBox(BaseEditBox):
|
||||||
|
|
||||||
|
def __init__(self, driver):
|
||||||
|
super(WebLinkEditBox, self).__init__(driver)
|
||||||
|
self.locator = self.Locator.xpath_selector("//android.widget.EditText")
|
||||||
|
|
||||||
|
|
||||||
class BackToHomeButton(BaseButton):
|
class BackToHomeButton(BaseButton):
|
||||||
def __init__(self, driver):
|
def __init__(self, driver):
|
||||||
super(BackToHomeButton, self).__init__(driver)
|
super(BackToHomeButton, self).__init__(driver)
|
||||||
|
@ -46,17 +56,6 @@ class AlwaysButton(BaseButton):
|
||||||
self.locator = self.Locator.text_part_selector('ALWAYS')
|
self.locator = self.Locator.text_part_selector('ALWAYS')
|
||||||
|
|
||||||
|
|
||||||
class BrowserCrossIcon(BaseButton):
|
|
||||||
|
|
||||||
def __init__(self, driver):
|
|
||||||
super(BrowserCrossIcon, self).__init__(driver)
|
|
||||||
self.locator = self.Locator.xpath_selector('(//android.view.ViewGroup[@content-desc="icon"])[1]')
|
|
||||||
|
|
||||||
def navigate(self):
|
|
||||||
from views.home_view import HomeView
|
|
||||||
return HomeView(self.driver)
|
|
||||||
|
|
||||||
|
|
||||||
class URLEditBoxLockIcon(BaseEditBox):
|
class URLEditBoxLockIcon(BaseEditBox):
|
||||||
|
|
||||||
def __init__(self, driver):
|
def __init__(self, driver):
|
||||||
|
@ -80,7 +79,6 @@ class BaseWebView(BaseView):
|
||||||
|
|
||||||
self.web_view_browser = WebViewBrowserButton(self.driver)
|
self.web_view_browser = WebViewBrowserButton(self.driver)
|
||||||
self.always_button = AlwaysButton(self.driver)
|
self.always_button = AlwaysButton(self.driver)
|
||||||
self.browser_cross_icon = BrowserCrossIcon(self.driver)
|
|
||||||
self.browser_refresh_page_button = BrowserRefreshPageButton(self.driver)
|
self.browser_refresh_page_button = BrowserRefreshPageButton(self.driver)
|
||||||
|
|
||||||
def wait_for_d_aap_to_load(self, wait_time=35):
|
def wait_for_d_aap_to_load(self, wait_time=35):
|
||||||
|
|
Loading…
Reference in New Issue