mirror of
https://github.com/status-im/status-react.git
synced 2025-02-02 06:07:33 +00:00
e2e: nightly fixes
This commit is contained in:
parent
eb5711e9bc
commit
fe1cc2dc23
@ -13,9 +13,15 @@ class TestCreateAccount(SingleDeviceTestCase):
|
||||
seed = basic_user['passphrase']
|
||||
home = sign_in.recover_access(passphrase=seed)
|
||||
profile = home.profile_button.click()
|
||||
profile.logout()
|
||||
profile.privacy_and_security_button.click()
|
||||
profile.element_by_translation_id("manage-keys-and-storage").scroll_and_click()
|
||||
profile.logout_dialog.logout_button.wait_and_click()
|
||||
profile.logout_button.wait_for_invisibility_of_element(30)
|
||||
if not sign_in.element_by_translation_id("move-keystore-file").is_element_displayed():
|
||||
self.errors.append("Was not redirected to Key management screen when Manage keys from logged in state!")
|
||||
|
||||
home.just_fyi("Checking keycard banner and starting migrate multiaccount to keycard: no db saved")
|
||||
sign_in.close_button.click()
|
||||
sign_in.back_button.click()
|
||||
sign_in.multi_account_on_login_button.wait_for_visibility_of_element(30)
|
||||
sign_in.get_multiaccount_by_position(1).click()
|
||||
|
@ -574,8 +574,9 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
|
||||
def test_set_profile_picture(self):
|
||||
self.create_drivers(2)
|
||||
home_1, home_2 = SignInView(self.drivers[0]).create_user(), SignInView(self.drivers[1]).create_user()
|
||||
profile_1 = home_1.profile_button.click()
|
||||
public_key_1 = profile_1.get_public_key_and_username()
|
||||
profile_1, profile_2 = home_1.profile_button.click(), home_2.profile_button.click()
|
||||
public_key_1, public_key_2 = profile_1.get_public_key_and_username(), profile_2.get_public_key_and_username()
|
||||
profile_2.home_button.click()
|
||||
|
||||
profile_1.just_fyi("Set user Profile image from Gallery")
|
||||
profile_1.edit_profile_picture(file_name='sauce_logo.png')
|
||||
@ -585,14 +586,18 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
|
||||
if not profile_1.profile_picture.is_element_image_similar_to_template('sauce_logo_profile.png'):
|
||||
self.drivers[0].fail('Profile picture was not updated')
|
||||
|
||||
profile_1.just_fyi("Add user2 to contacts")
|
||||
profile_1.home_button.click()
|
||||
home_1.add_contact(public_key_2)
|
||||
home_1.home_button.click()
|
||||
|
||||
profile_1.just_fyi("Check user profile updated in chat")
|
||||
home = profile_1.home_button.click()
|
||||
message = "Text message"
|
||||
public_chat_name = home.get_random_chat_name()
|
||||
public_chat_name = home_1.get_random_chat_name()
|
||||
home_2.add_contact(public_key=public_key_1)
|
||||
home_2.home_button.click()
|
||||
public_chat_2 = home_2.join_public_chat(public_chat_name)
|
||||
public_chat_1 = home.join_public_chat(public_chat_name)
|
||||
public_chat_1 = home_1.join_public_chat(public_chat_name)
|
||||
public_chat_1.chat_message_input.send_keys(message)
|
||||
public_chat_1.send_message_button.click()
|
||||
if not public_chat_2.chat_element_by_text(message).member_photo.is_element_image_similar_to_template('sauce_logo.png'):
|
||||
@ -613,8 +618,13 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
|
||||
def test_show_profile_picture_of_setting(self):
|
||||
self.create_drivers(2)
|
||||
home_1, home_2 = SignInView(self.drivers[0]).create_user(), SignInView(self.drivers[1]).create_user()
|
||||
profile_1 = home_1.profile_button.click()
|
||||
profile_1, profile_2 = home_1.profile_button.click(), home_2.profile_button.click()
|
||||
public_key_1, default_username_1 = profile_1.get_public_key_and_username(return_username=True)
|
||||
public_key_2 = profile_2.get_public_key_and_username()
|
||||
|
||||
[profile.home_button.click() for profile in (profile_1, profile_2)]
|
||||
home_1.add_contact(public_key_2)
|
||||
home_1.profile_button.click()
|
||||
|
||||
profile_1.just_fyi("Set user Profile image from Gallery")
|
||||
profile_1.edit_profile_picture(file_name='sauce_logo.png')
|
||||
@ -654,11 +664,11 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
|
||||
if not home_2.get_chat(default_username_1).chat_image.is_element_image_similar_to_template('sauce_logo.png'):
|
||||
self.errors.append('User profile picture was not updated on Chats view')
|
||||
|
||||
profile_1.just_fyi('Check profile image updated in user profile view in Group chat views 4')
|
||||
group_chat_message = 'Trololo'
|
||||
profile_1.just_fyi('Check profile image updated in user profile view in Group chat views')
|
||||
group_chat_name, group_chat_message = 'new_group_chat', 'Trololo'
|
||||
group_chat_2 = home_2.create_group_chat(user_names_to_add=[default_username_1])
|
||||
group_chat_2.send_message('Message')
|
||||
group_chat_1 = home_1.get_chat('new_group_chat').click()
|
||||
group_chat_1 = home_1.get_chat(group_chat_name).click()
|
||||
group_chat_1.join_chat_button.click()
|
||||
group_chat_1.send_message(group_chat_message)
|
||||
if not group_chat_2.chat_element_by_text(group_chat_message).member_photo.is_element_image_similar_to_template('sauce_logo.png'):
|
||||
@ -691,9 +701,9 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
|
||||
|
||||
profile_2.just_fyi('Enable to see profile image from "Everyone" setting')
|
||||
home_2.profile_button.click()
|
||||
profile_2.appearance_button.click()
|
||||
profile_2.show_profile_pictures_of.click()
|
||||
profile_2.element_by_text('Everyone').click()
|
||||
profile_2.privacy_and_security_button.click()
|
||||
profile_2.show_profile_pictures_of.scroll_and_click()
|
||||
profile_2.element_by_translation_id("everyone").click()
|
||||
group_chat_1.send_message(group_chat_message)
|
||||
profile_2.home_button.click(desired_view='home')
|
||||
if not home_2.get_chat(default_username_1).chat_image.is_element_image_similar_to_template('sauce_logo.png'):
|
||||
@ -715,13 +725,14 @@ class TestProfileMultipleDevice(MultipleDeviceTestCase):
|
||||
profile_1.bootnodes_button.click()
|
||||
profile_1.add_bootnode_button.click()
|
||||
profile_1.specify_name_input.set_value('test')
|
||||
profile_1.bootnode_address_input.set_value('invalid_bootnode_address')
|
||||
if not profile_1.element_by_text_part('Invalid format').is_element_displayed():
|
||||
self.errors.append('Validation message about invalid format of bootnode is not shown')
|
||||
profile_1.save_button.click()
|
||||
if profile_1.add_bootnode_button.is_element_displayed():
|
||||
self.errors.append('User was navigated to another screen when tapped on disabled "Save" button')
|
||||
profile_1.bootnode_address_input.clear()
|
||||
# TODO: blocked as validation is missing for bootnodes
|
||||
# profile_1.bootnode_address_input.set_value('invalid_bootnode_address')
|
||||
# if not profile_1.element_by_text_part('Invalid format').is_element_displayed():
|
||||
# self.errors.append('Validation message about invalid format of bootnode is not shown')
|
||||
# profile_1.save_button.click()
|
||||
# if profile_1.add_bootnode_button.is_element_displayed():
|
||||
# self.errors.append('User was navigated to another screen when tapped on disabled "Save" button')
|
||||
# profile_1.bootnode_address_input.clear()
|
||||
profile_1.bootnode_address_input.set_value(bootnode_address)
|
||||
profile_1.save_button.click()
|
||||
profile_1.enable_bootnodes.click()
|
||||
|
@ -206,8 +206,7 @@ class TestMessagesOneToOneChatMultiple(MultipleDeviceTestCase):
|
||||
device_2.just_fyi("Create public chat on Device1, send message and edit it then")
|
||||
public_key_1, username_1 = home_1.get_public_key_and_username(return_username=True)
|
||||
public_key_2, username_2 = home_2.get_public_key_and_username(return_username=True)
|
||||
home_1.home_button.click()
|
||||
home_2.home_button.click()
|
||||
[home.home_button.click() for home in (home_1, home_2)]
|
||||
chat_name = home_1.get_random_chat_name()
|
||||
home_1.join_public_chat(chat_name)
|
||||
public_chat_1 = home_1.get_chat_view()
|
||||
|
@ -210,7 +210,7 @@ class TestPublicChatMultipleDevice(MultipleDeviceTestCase):
|
||||
if not timeline_1.element_by_text_part(expected_value).is_element_displayed():
|
||||
self.errors.append("Expected value %s is not shown" % expected_value)
|
||||
text_status = 'some text'
|
||||
timeline_1.set_new_status(text_status)
|
||||
timeline_1.set_new_status(status=text_status)
|
||||
for timestamp in ('Now', '1M', '2M'):
|
||||
if not timeline_1.element_by_text(timestamp).is_element_displayed():
|
||||
self.errors.append("Expected timestamp %s is not shown in timeline_1" % timestamp)
|
||||
@ -231,6 +231,7 @@ class TestPublicChatMultipleDevice(MultipleDeviceTestCase):
|
||||
self.errors.append("Expected value %s is not shown in other user profile without adding to contacts" % expected_value)
|
||||
|
||||
home_2.just_fyi('Add device1 to contacts and check that status will be shown in timeline_1')
|
||||
chat_2.close_button.scroll_and_click(direction='up')
|
||||
chat_2.close_button.click()
|
||||
chat_2.add_to_contacts.click()
|
||||
timeline_2 = chat_2.status_button.click()
|
||||
|
@ -119,7 +119,6 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
|
||||
wallet.close_button.click()
|
||||
sub_account_address = wallet.get_wallet_address(account_name)[2:]
|
||||
self.network_api.wait_for_confirmation_of_transaction(sub_account_address, transaction_amount_1)
|
||||
wallet.find_transaction_in_history(amount=transaction_amount)
|
||||
wallet.find_transaction_in_history(amount=format(float(transaction_amount_1),'.11f').rstrip('0'))
|
||||
|
||||
wallet.just_fyi("Check transactions on subaccount")
|
||||
|
@ -608,9 +608,8 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
|
||||
wallet.ok_got_it_button.wait_and_click(30)
|
||||
if not send_transaction.validation_error_element.is_element_displayed(10):
|
||||
self.errors.append('Validation icon is not shown when testing %s on %s' % (errors['sending_screen']['Network fee'],screen))
|
||||
send_transaction.sign_with_password.click()
|
||||
if send_transaction.enter_password_input.is_element_displayed():
|
||||
self.errors.append('Sign button is active when not enough ETH for gas')
|
||||
if not wallet.element_by_translation_id("tx-fail-description2").is_element_displayed():
|
||||
self.errors.append("No warning about failing tx is shown!")
|
||||
send_transaction.cancel_button.click()
|
||||
|
||||
screen = 'sending screen from DApp'
|
||||
@ -648,8 +647,9 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
|
||||
wallet.ok_got_it_button.wait_and_click(30)
|
||||
send_transaction.network_fee_button.click()
|
||||
send_transaction = wallet.get_send_transaction_view()
|
||||
fee_fields = (send_transaction.gas_limit_input, send_transaction.per_gas_tip_limit_input, send_transaction.per_gas_price_limit_input)
|
||||
[default_limit, default_tip, default_price] = [input.text for input in fee_fields]
|
||||
fee_fields = (send_transaction.per_gas_tip_limit_input, send_transaction.per_gas_price_limit_input)
|
||||
[default_tip, default_price] = [input.text for input in fee_fields]
|
||||
default_limit = '21000'
|
||||
|
||||
|
||||
|
||||
@ -721,6 +721,8 @@ class TestTransactionWalletSingleDevice(SingleDeviceTestCase):
|
||||
send_transaction.network_fee_button.click()
|
||||
send_transaction = wallet.get_send_transaction_view()
|
||||
|
||||
send_transaction.gas_limit_input.clear()
|
||||
send_transaction.gas_limit_input.set_value(default_limit)
|
||||
send_transaction.per_gas_price_limit_input.clear()
|
||||
send_transaction.per_gas_price_limit_input.click()
|
||||
send_transaction.per_gas_price_limit_input.send_keys('1')
|
||||
|
@ -2,6 +2,7 @@ import base64
|
||||
from io import BytesIO
|
||||
import os
|
||||
import time
|
||||
import emoji
|
||||
from timeit import timeit
|
||||
|
||||
from PIL import Image, ImageChops, ImageStat
|
||||
@ -271,6 +272,10 @@ class BaseElement(object):
|
||||
def get_translation_by_key(key):
|
||||
return transl[key]
|
||||
|
||||
@staticmethod
|
||||
def exclude_emoji(value):
|
||||
return 'emoji' if value in emoji.UNICODE_EMOJI else value
|
||||
|
||||
|
||||
class EditBox(BaseElement):
|
||||
|
||||
@ -278,10 +283,12 @@ class EditBox(BaseElement):
|
||||
super(EditBox, self).__init__(driver, **kwargs)
|
||||
|
||||
def send_keys(self, value):
|
||||
value = self.exclude_emoji(value)
|
||||
self.find_element().send_keys(value)
|
||||
self.driver.info("*Type '%s' to %s*" % (value, self.name))
|
||||
|
||||
def set_value(self, value):
|
||||
value = self.exclude_emoji(value)
|
||||
self.find_element().set_value(value)
|
||||
self.driver.info("*Type '%s' to %s*" % (value, self.name))
|
||||
|
||||
@ -306,7 +313,7 @@ class EditBox(BaseElement):
|
||||
action.press(x=x + 25, y=y - 50).release().perform()
|
||||
|
||||
def cut_text(self):
|
||||
self.driver.info('-Cut text in %s' % self.name)
|
||||
self.driver.info('*Cut text in %s*' % self.name)
|
||||
location = self.find_element().location
|
||||
x, y = location['x'], location['y']
|
||||
action = TouchAction(self.driver)
|
||||
|
@ -315,7 +315,7 @@ class BaseView(object):
|
||||
while not desired_element.is_element_present(1) and counter <= attempts:
|
||||
try:
|
||||
self.confirm()
|
||||
self.driver.info('Wait for %s' % desired_element.name)
|
||||
self.driver.info('*Wait for %s*' % desired_element.name)
|
||||
desired_element.wait_for_element(5)
|
||||
return
|
||||
except TimeoutException:
|
||||
|
@ -910,7 +910,8 @@ class ChatView(BaseView):
|
||||
|
||||
|
||||
def set_new_status(self, status='something is happening', image=False):
|
||||
self.driver.info("**Setting new status:%s, image set is: %s**" % (status, str(image)))
|
||||
status = BaseElement(self.driver).exclude_emoji(status)
|
||||
self.driver.info("**Setting new status:'%s', image set is: '%s'**" % (status, str(image)))
|
||||
self.timeline_add_new_status_button.click_until_presence_of_element(self.timeline_my_status_editbox)
|
||||
self.timeline_my_status_editbox.set_value(status)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user