e2e account settings

Signed-off-by: Churikova Tetiana <churikova.tm@gmail.com>
This commit is contained in:
Churikova Tetiana 2019-10-25 16:33:56 +02:00
parent f72452d04f
commit 5561aff955
No known key found for this signature in database
GPG Key ID: 0D4EA7B33B47E6D8
3 changed files with 67 additions and 5 deletions

View File

@ -33,18 +33,18 @@ def get_username(device_home):
def create_new_group_chat(device_1_home, device_2_home, chat_name):
# device 2: get public key and default username
device_2_home.just_fyi('get public key and default username')
device_2_public_key = device_2_home.get_public_key()
device_2_default_username = get_username(device_2_home)
# device 1: add device 2 as contact
device_1_home.just_fyi('add device 2 as contact')
device_1_chat = device_1_home.add_contact(device_2_public_key)
device_1_chat.get_back_to_home_view()
# device 1: create group chat with some user
device_1_home.just_fyi('create group chat with some user')
device_1_chat = device_1_home.create_group_chat([device_2_default_username], chat_name)
# device 2: open group chat
device_2_home.just_fyi('navigate to group chat')
device_2_chat = device_2_home.get_chat_with_user(chat_name).click()
return device_1_chat, device_2_chat
@ -66,6 +66,13 @@ class TestGroupChatMultipleDevice(MultipleDeviceTestCase):
device_1_home, device_2_home = create_users(self.drivers[0], self.drivers[1])
chat_name = device_1_home.get_public_chat_name()
device_1_home.plus_button.click()
device_1_home.new_group_chat_button.click()
if not device_1_home.element_by_text('Invite friends').is_element_displayed():
self.errors.append("No placeholder is shown when there are no contacts")
device_1_home.get_back_to_home_view()
device_1_chat, device_2_chat = create_and_join_group_chat(device_1_home, device_2_home, chat_name)
for chat in (device_1_chat, device_2_chat):

View File

@ -1,4 +1,5 @@
import random
import string
from support.utilities import get_merged_txs_list
from tests import marks, unique_password, common_password
@ -518,6 +519,38 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
self.driver.fail('Total wallet balance %s != of Status account (%s) + SubAccount (%s)' % (
total_eth_from_two_accounts, balance_of_status_account, balance_of_sub_account))
@marks.testrail_id(6235)
@marks.medium
def test_can_change_account_settings(self):
sign_in_view = SignInView(self.driver)
sign_in_view.create_user()
wallet_view = sign_in_view.wallet_button.click()
wallet_view.set_up_wallet()
status_account_address = wallet_view.get_wallet_address()
wallet_view.account_options_button.click()
wallet_view.just_fyi('open Account Settings screen and check that all elements are shown')
wallet_view.account_settings_button.click()
for text in 'On Status tree', status_account_address, "m/44'/60'/0'/0/0":
if not wallet_view.element_by_text(text).is_element_displayed():
self.errors.append("'%s' text is not shown on Account Settings screen!" % text)
wallet_view.just_fyi('change account name/color and verified applied changes')
account_name = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(10))
wallet_view.account_name_input.send_keys(account_name)
wallet_view.account_color_button.select_color_by_position(1)
wallet_view.apply_settings_button.click()
wallet_view.element_by_text('This device').scroll_to_element()
wallet_view.back_button.click()
wallet_view.back_button.click()
account_button = wallet_view.get_account_by_name(account_name)
if not account_button.is_element_displayed():
self.driver.fail('Account name was not changed')
if not account_button.color_matches('multi_account_color.png'):
self.driver.fail('Account color does not match expected')
self.verify_no_errors()
@marks.transaction
class TestTransactionWalletMultipleDevice(MultipleDeviceTestCase):

View File

@ -69,6 +69,11 @@ class OptionsButton(BaseButton):
super(OptionsButton, self).__init__(driver)
self.locator = self.Locator.accessibility_id('options-menu-button')
class AccountOptionsButton(BaseButton):
def __init__(self, driver, account_name):
super(AccountOptionsButton, self).__init__(driver)
self.locator = self.Locator.xpath_selector('(//*[@text="%s"]/..//*[@content-desc="icon"])[2]' % account_name)
class ManageAssetsButton(BaseButton):
def __init__(self, driver):
@ -305,7 +310,7 @@ class AccountColorButton(BaseButton):
def __init__(self, driver):
super(AccountColorButton, self).__init__(driver)
self.locator = self.Locator.xpath_selector("//android.widget.TextView[@text='Account color']"
"/following-sibling::android.view.ViewGroup")
"/following-sibling::android.view.ViewGroup[1]")
def select_color_by_position(self, position: int):
self.click()
@ -318,6 +323,15 @@ class FinishButton(BaseButton):
super(FinishButton, self).__init__(driver)
self.locator = self.Locator.text_selector('Finish')
class AccountSettingsButton(BaseButton):
def __init__(self, driver):
super(AccountSettingsButton, self).__init__(driver)
self.locator = self.Locator.text_selector('Account settings')
class ApplySettingsButton(BaseButton):
def __init__(self, driver):
super(ApplySettingsButton, self).__init__(driver)
self.locator = self.Locator.text_selector('Apply')
class WalletView(BaseView):
def __init__(self, driver):
@ -368,6 +382,11 @@ class WalletView(BaseView):
self.account_color_button = AccountColorButton(self.driver)
self.finish_button = FinishButton(self.driver)
# individual account settings
self.account_settings_button = AccountSettingsButton(self.driver)
self.apply_settings_button = ApplySettingsButton(self.driver)
self.account_options_button = AccountOptionsButton(self.driver, account_name='Status account')
def get_usd_total_value(self):
import re
return float(re.sub('[~,]', '', self.usd_total_value.text))
@ -429,6 +448,9 @@ class WalletView(BaseView):
def asset_checkbox_by_name(self, asset_name):
return AssetCheckBox(self.driver, asset_name)
def account_options_by_name(self, account_name):
return AccountOptionsButton(self.driver, account_name)
def select_asset(self, *args):
self.multiaccount_more_options.click()
self.manage_assets_button.click()