Goerli contracts, go-version bump: 3a46b051...3cd92fda

This commit is contained in:
Churikova Tetiana 2022-07-20 16:03:42 +02:00
parent a07bc82c37
commit 28a2113874
No known key found for this signature in database
GPG Key ID: 0D4EA7B33B47E6D8
38 changed files with 253 additions and 193 deletions

View File

@ -1,10 +1,10 @@
DEBUG_WEBVIEW=1
DEFAULT_NETWORK=testnet_rpc
DEFAULT_NETWORK=goerli_rpc
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.staging
GROUP_CHATS_ENABLED=1
LOG_LEVEL=info
LOG_LEVEL=debug
MAILSERVER_CONFIRMATIONS_ENABLED=0
PAIRING_POPUP_DISABLED=1
PFS_ENCRYPTION_ENABLED=1
@ -23,8 +23,8 @@ QR_READ_TEST_MENU=1
ENABLE_ROOT_ALERT=0
MAX_IMAGES_BATCH=5
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
VERIFY_ENS_CHAIN_ID=3
VERIFY_TRANSACTION_CHAIN_ID=5
VERIFY_ENS_CHAIN_ID=5
TEST_STATEOFUS=1
DATABASE_MANAGEMENT_ENABLED=1
COMMUNITIES_ENABLED=1

View File

@ -1,11 +1,11 @@
CACHED_WEBVIEWS_ENABLED=1
DEBUG_WEBVIEW=1
DEFAULT_NETWORK=testnet_rpc
DEFAULT_NETWORK=goerli_rpc
ETHEREUM_DEV_CLUSTER=1
EXTENSIONS=0
FLEET=eth.prod
GROUP_CHATS_ENABLED=1
LOG_LEVEL=info
LOG_LEVEL=debug
MAILSERVER_CONFIRMATIONS_ENABLED=1
MAINNET_WARNING_ENABLED=1
PFS_ENCRYPTION_ENABLED=1
@ -22,8 +22,8 @@ KEYCARD_TEST_MENU=0
ENABLE_ROOT_ALERT=1
DISABLE_WALLET_ON_MOBILE_NETWORK=1
APN_TOPIC=im.status.ethereum.pr
VERIFY_TRANSACTION_CHAIN_ID=3
VERIFY_ENS_CHAIN_ID=3
VERIFY_TRANSACTION_CHAIN_ID=5
VERIFY_ENS_CHAIN_ID=5
TEST_STATEOFUS=1
BLANK_PREVIEW=0
MAX_IMAGES_BATCH=5

View File

@ -139,10 +139,10 @@
{"mainnet_rpc" true}}}}))))
(testing "is on a different network"
(testing "it returns false when not enabled"
(is (not (model/custom-bootnodes-in-use? {:db {:networks/current-network "testnet_rpc"}}))))
(is (not (model/custom-bootnodes-in-use? {:db {:networks/current-network "goerli_rpc"}}))))
(testing "it returns true when enabled"
(is (not (model/custom-bootnodes-in-use?
{:db {:networks/current-network "testnet_rpc"
{:db {:networks/current-network "goerli_rpc"
:multiaccount {:custom-bootnodes-enabled?
{"mainnnet_rpc" true}}}}))))))

View File

@ -150,6 +150,7 @@
[chain-id]
(case chain-id
3 50
5 10
1 10))
(fx/defn register-name

View File

@ -4,18 +4,22 @@
(def contracts
{:status/snt
{:mainnet "0x744d70fdbe2ba4cf95131626614a1763df805b9e"
:testnet "0xc55cf4b03948d7ebc8b9e8bad92643703811d162"}
:testnet "0xc55cf4b03948d7ebc8b9e8bad92643703811d162"
:goerli "0x3D6AFAA395C31FCd391fE3D562E75fe9E8ec7E6a"}
:status/tribute-to-talk
{:testnet "0xC61aa0287247a0398589a66fCD6146EC0F295432"}
:status/stickers
{:testnet "0x8cc272396be7583c65bee82cd7b743c69a87287d"
:mainnet "0x0577215622f43a39f4bc9640806dfea9b10d2a36"}
:mainnet "0x0577215622f43a39f4bc9640806dfea9b10d2a36"
:goerli "0x07f7CB0C0a4ab3e0999AfE8b3997Da34880f05d0"}
:status/sticker-market
{:testnet "0x6CC7274aF9cE9572d22DFD8545Fb8c9C9Bcb48AD"
:mainnet "0x12824271339304d3a9f7e096e62a2a7e73b4a7e7"}
:mainnet "0x12824271339304d3a9f7e096e62a2a7e73b4a7e7"
:goerli "0xf1E149A7DF70D5Ff1E265daAa738d785D3274717"}
:status/sticker-pack
{:testnet "0xf852198d0385c4b871e0b91804ecd47c6ba97351"
:mainnet "0x110101156e8F0743948B2A61aFcf3994A8Fb172e"}})
:mainnet "0x110101156e8F0743948B2A61aFcf3994A8Fb172e"
:goerli "0x8D3fD2EA24bD53a8Bd2b1026727db8bbe9A8C8Af"}})
(defn get-address
[db contract]

View File

@ -6,6 +6,7 @@
(is (= (ethereum/chain-id->chain-keyword 1) :mainnet))
(is (= (ethereum/chain-id->chain-keyword 3) :testnet))
(is (= (ethereum/chain-id->chain-keyword 4) :rinkeby))
(is (= (ethereum/chain-id->chain-keyword 5) :goerli))
(is (= (ethereum/chain-id->chain-keyword 5777) :custom)))
(deftest coordinates

View File

@ -83,6 +83,10 @@
:symbol :SNT
:decimals 18}}
:testnet {"0xc55cf4b03948d7ebc8b9e8bad92643703811d162" {:address "0xc55cf4b03948d7ebc8b9e8bad92643703811d162"
:name "Status Test Token"
:symbol :STT
:decimals 18}}
:goerli {"0x3d6afaa395c31fcd391fe3d562e75fe9e8ec7e6a" {:address "0x3d6afaa395c31fcd391fe3d562e75fe9e8ec7e6a"
:name "Status Test Token"
:symbol :STT
:decimals 18}}})

View File

@ -7,6 +7,7 @@
(def ens-registries
{:mainnet "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
:testnet "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
:goerli "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
:rinkeby "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"})
(def default-address "0x0000000000000000000000000000000000000000")

View File

@ -30,7 +30,7 @@
(merge
{:mainnet "0xDB5ac1a559b02E12F29fC0eC0e37Be8E046DEF49"}
(when config/test-stateofus?
{:testnet "0x11d9F481effd20D76cEE832559bd9Aca25405841"})))
{:goerli "0xD1f7416F91E7Eb93dD96A61F12FC092aD6B67B11"})))
(def registrars-cache (atom {}))

View File

@ -28,6 +28,10 @@
:symbol :ETH
:symbol-display :ETHri
:decimals 18}
:goerli {:name "Goerli Ether"
:symbol :ETH
:symbol-display :ETHgo
:decimals 18}
:xdai {:name "xDAI"
:symbol :ETH
:symbol-display :xDAI

View File

@ -17,13 +17,15 @@
(def etherscan-supported?
#{(ethereum/chain-keyword->chain-id :mainnet)
(ethereum/chain-keyword->chain-id :testnet)
(ethereum/chain-keyword->chain-id :goerli)
(ethereum/chain-keyword->chain-id :rinkeby)})
(def binance-mainnet-chain-id (ethereum/chain-keyword->chain-id :bsc))
(def binance-testnet-chain-id (ethereum/chain-keyword->chain-id :bsc-testnet))
(def network->subdomain {3 "ropsten"
4 "rinkeby"})
4 "rinkeby"
5 "goerli"})
(defn get-transaction-details-url [chain-id hash]
{:pre [(number? chain-id) (string? hash)]

View File

@ -87,6 +87,7 @@
:wallet/visible-tokens {:testnet #{:STT
:HND}
:mainnet #{:SNT}
:goerli #{:STT}
:rinkeby #{:MOKSHA
:KDO}
:xdai #{}}

View File

@ -13,6 +13,7 @@
:mainnet (i18n/label :t/mainnet-network)
:testnet (i18n/label :t/ropsten-network)
:rinkeby (i18n/label :t/rinkeby-network)
:goerli (i18n/label :t/goerli-network)
:custom (i18n/label :t/custom))]
[quo/list-item
{:title name
@ -48,7 +49,7 @@
:default-value (get-in manage-network [:url :value])
:on-change-text #(re-frame/dispatch [::network/input-changed :url %])}]]]
[quo/list-header (i18n/label :t/network-chain)]
[list/flat-list {:data [:mainnet :testnet :rinkeby :custom]
[list/flat-list {:data [:mainnet :testnet :rinkeby :goerli :custom]
:key-fn (fn [_ i] (str i))
:render-data manage-network
:render-fn render-network-type}]

View File

@ -23,6 +23,7 @@
(def mainnet-rpc-url (str "https://mainnet.infura.io/v3/" INFURA_TOKEN))
(def testnet-rpc-url (str "https://ropsten.infura.io/v3/" INFURA_TOKEN))
(def goerli-rpc-url (str "https://goerli.infura.io/v3/" INFURA_TOKEN))
(def bootnodes-settings-enabled? (enabled? (get-config :BOOTNODES_SETTINGS_ENABLED "1")))
(def rpc-networks-only? (enabled? (get-config :RPC_NETWORKS_ONLY "1")))
(def mailserver-confirmations-enabled? (enabled? (get-config :MAILSERVER_CONFIRMATIONS_ENABLED)))
@ -57,7 +58,7 @@
(string/upper-case (get-config :LOG_LEVEL "")))
(def fleet (get-config :FLEET "eth.staging"))
(def apn-topic (get-config :APN_TOPIC "im.status.ethereum"))
(def default-network (get-config :DEFAULT_NETWORK "testnet_rpc"))
(def default-network (get-config :DEFAULT_NETWORK "goerli_rpc"))
(def pow-target (js/parseFloat (get-config :POW_TARGET "0.0001")))
(def pow-time (js/parseInt (get-config :POW_TIME "1")))
(def max-installations 2)
@ -67,12 +68,12 @@
(def verify-transaction-chain-id (js/parseInt (get-config :VERIFY_TRANSACTION_CHAIN_ID "1")))
(def verify-transaction-url (if (= :mainnet (ethereum/chain-id->chain-keyword verify-transaction-chain-id))
mainnet-rpc-url
testnet-rpc-url))
goerli-rpc-url))
(def verify-ens-chain-id (js/parseInt (get-config :VERIFY_ENS_CHAIN_ID "1")))
(def verify-ens-url (if (= :mainnet (ethereum/chain-id->chain-keyword verify-ens-chain-id))
mainnet-rpc-url
testnet-rpc-url))
goerli-rpc-url))
(def verify-ens-contract-address (get-config :VERIFY_ENS_CONTRACT_ADDRESS ((ethereum/chain-id->chain-keyword verify-ens-chain-id) ens/ens-registries)))
(def default-multiaccount
@ -137,7 +138,7 @@
:config {:NetworkId (ethereum/chain-keyword->chain-id :goerli)
:DataDir "/ethereum/goerli_rpc"
:UpstreamConfig {:Enabled true
:URL (str "https://goerli.infura.io/v3/" INFURA_TOKEN)}}}
:URL goerli-rpc-url}}}
{:id "bsc_testnet_rpc",
:chain-explorer-link "https://testnet.bscscan.com/address/",
:name "BSC testnet",

View File

@ -3,7 +3,7 @@
"_comment": "Instead use: scripts/update-status-go.sh <rev>",
"owner": "status-im",
"repo": "status-go",
"version": "v0.103.2",
"commit-sha1": "3a46b051149e567e2be48bd9eb8e6703b01ae86f",
"src-sha256": "1vbd71crazy4jq7pvwiv0vzw3nfa8wl22k88vga5ppz0nz196cm7"
"version": "v0.103.3",
"commit-sha1": "3cd92fda7875ae22244d40a589ea921bc61bdaef",
"src-sha256": "1m4954qhd1vqap74scn03hbp2wfxwsjq8n24japqp4scjcq6gngw"
}

View File

@ -16,7 +16,8 @@ import support.api.web3_api as w3
class NetworkApi(object):
def __init__(self):
self.network_url = 'http://api-ropsten.etherscan.io/api?'
# self.network_url = 'http://api-ropsten.etherscan.io/api?'
self.network_url = 'http://api-goerli.etherscan.io/api?'
self.faucet_url = 'https://faucet-ropsten.status.im/donate'
self.faucet_backup_address = w3.account_address
self.headers = {
@ -114,7 +115,7 @@ class NetworkApi(object):
self.log("Failed iterate transactions(Etherscan unexpected error): " + str(e))
continue
def wait_for_confirmation_of_transaction(self, address, amount, confirmations=3, token=False):
def wait_for_confirmation_of_transaction(self, address, amount, confirmations=6, token=False):
start_time = time.time()
if token:
token_info = "token transaction"

File diff suppressed because one or more lines are too long

View File

@ -57,8 +57,11 @@ mailserver_hk = 'mail-01.ac-cn-hongkong-c'
mailserver_gc = 'mail-01.gc-us-central1-a'
test_dapp_web_url = "status-im.github.io/dapp"
test_dapp_url = 'simpledapp.eth'
test_dapp_name = 'simpledapp.eth'
# TODO: temp due to goerli transition
# test_dapp_url = 'simpledapp.eth'
# test_dapp_name = 'simpledapp.eth'
test_dapp_url = 'https://bafybeidzlqpkbtvpjtxnzgew6ffxhozq5f4ojbk64iq3tjl7lkjue2biby.ipfs.infura-ipfs.io/'
test_dapp_name = 'bafybeidzlqpkbtvpjtxnzgew6ffxhozq5f4ojbk64iq3tjl7lkjue2biby.ipfs.infura-ipfs.io'
emojis = {'thumbs-up': 2, 'thumbs-down': 3, 'love': 1, 'laugh': 4, 'angry': 6, 'sad': 5}

View File

@ -4,7 +4,7 @@ import time
from tests import marks, common_password
from tests.base_test_case import MultipleSharedDeviceTestCase, create_shared_drivers
from tests.users import transaction_senders, basic_user, ens_user, ens_user_ropsten
from tests.users import transaction_senders, basic_user, ens_user, ens_user_message_sender
from views.sign_in_view import SignInView
import pytest
@ -1039,7 +1039,7 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
self.chat_2.just_fyi("Check that message is fetched for receiver")
self.home_2.get_chat(self.sender['username']).click()
chat_2_reciever_message = self.chat_2.get_incoming_transaction(transaction_value=amount)
chat_2_reciever_message.transaction_status.wait_for_element_text(chat_2_reciever_message.confirmed)
chat_2_reciever_message.transaction_status.wait_for_element_text(chat_2_reciever_message.confirmed, wait_time=60)
@marks.testrail_id(702155)
def test_ens_mention_nickname_1_1_chat(self):
@ -1118,13 +1118,13 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
else:
self.errors.append('No PN on mention in public chat! ')
self.home_2.click_system_back_button(2)
if self.home_2.element_starts_with_text(self.reciever['ens']).is_element_differs_from_template('ment_new.png',
if self.home_2.element_starts_with_text(self.reciever['ens']).is_element_differs_from_template('ment_new_1.png',
2):
self.errors.append('Mention is not highlighted!')
self.errors.verify_no_errors()
@marks.testrail_id(702157)
def test_sticker_1_1_public_chat(self):
def test_sticker_1_1_public_chat_mainnet(self):
self.home_2.status_in_background_button.click_if_shown()
[home.home_button.double_click() for home in (self.home_1, self.home_2)]
profile_2 = self.home_2.profile_button.click()
@ -1136,11 +1136,13 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
self.chat_2.sticker_icon.click()
if not self.chat_2.chat_item.is_element_displayed():
self.errors.append('Cannot use purchased stickers')
self.home_2.profile_button.click()
profile_2.switch_network('Goerli with upstream RPC')
self.home_1.just_fyi('Install free sticker pack and use it in 1-1 chat on Ropsten')
self.home_1.just_fyi('Install free sticker pack and use it in 1-1 chat on Goerli')
self.home_1.get_chat(self.ens).click()
self.chat_1.chat_message_input.clear()
self.chat_1.install_sticker_pack_by_name('Status Cat')
self.chat_1.install_sticker_pack_by_name()
self.chat_1.sticker_icon.click()
if not self.chat_1.sticker_message.is_element_displayed():
self.errors.append('Sticker was not sent')
@ -1156,16 +1158,17 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
if not self.chat_1.chat_item.is_element_displayed():
self.errors.append('Sticker was not sent from Recent')
self.home_2.just_fyi('Check that can install stickers by tapping on sticker message')
# self.home_2.just_fyi('Check that can install stickers by tapping on sticker message')
# TODO: disabled because of #13683
self.home_2.home_button.double_click()
self.home_2.get_chat(self.sender['username']).click()
self.chat_2.chat_item.click()
self.chat_2.element_by_text_part('Free').wait_and_click(40)
if self.chat_2.element_by_text_part('Free').is_element_displayed():
self.errors.append('Stickerpack was not installed')
# self.chat_2.chat_item.click()
# self.chat_2.element_by_text_part('Free').wait_and_click(40)
# if self.chat_2.element_by_text_part('Free').is_element_displayed():
# self.errors.append('Stickerpack was not installed')
self.chat_2.just_fyi('Check that can navigate to another user profile via long tap on sticker message')
self.chat_2.close_sticker_view_icon.click()
# self.chat_2.close_sticker_view_icon.click()
self.chat_2.chat_item.long_press_element()
self.chat_2.element_by_text('View Details').click()
self.chat_2.profile_send_message.wait_and_click()
@ -1180,7 +1183,7 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
chat = self.home_1.start_new_chat_button.click()
self.home_1.just_fyi("Validation: invalid public key and invalid ENS")
for invalid_chat_key in (basic_user['public_key'][:-1], ens_user_ropsten['ens'][:-2]):
for invalid_chat_key in (basic_user['public_key'][:-1], ens_user_message_sender['ens'][:-2]):
chat.public_key_edit_box.clear()
chat.public_key_edit_box.set_value(invalid_chat_key)
chat.confirm()
@ -1189,8 +1192,8 @@ class TestEnsStickersMultipleDevicesMerged(MultipleSharedDeviceTestCase):
self.home_1.just_fyi("Check that valid ENS is resolved")
chat.public_key_edit_box.clear()
chat.public_key_edit_box.set_value(ens_user_ropsten['ens'])
resolved_ens = '%s.stateofus.eth' % ens_user_ropsten['ens']
chat.public_key_edit_box.set_value(ens_user_message_sender['ens'])
resolved_ens = '%s.stateofus.eth' % ens_user_message_sender['ens']
if not chat.element_by_text(resolved_ens).is_element_displayed(10):
self.errors.append('ENS name is not resolved after pasting chat key')
self.home_1.close_button.click()

View File

@ -233,7 +233,7 @@ class TestRestoreOneDeviceMerged(MultipleSharedDeviceTestCase):
self.sign_in = SignInView(self.drivers[0])
self.passphrase = fill_string_with_char(self.user['passphrase'].upper(), ' ', 3, True, True)
self.password = basic_user['special_chars_password']
self.assets = ['ETH', 'YEENUS', 'STT']
self.home = self.sign_in.recover_access(passphrase=self.passphrase, password=self.password)
@marks.testrail_id(700748)
@ -392,8 +392,8 @@ class TestRestoreOneDeviceMerged(MultipleSharedDeviceTestCase):
self.errors.append("Was not redirected to Key management screen when Manage keys from logged in state!")
self.home.just_fyi("Checking keycard banner and starting migrate multiaccount to keycard: no db saved")
self.sign_in.close_button.click()
self.sign_in.navigate_up_button.click()
self.sign_in.close_button.click_if_shown()
self.sign_in.navigate_up_button.click_if_shown()
self.sign_in.multi_account_on_login_button.wait_for_visibility_of_element(30)
self.sign_in.get_multiaccount_by_position(1).click()
if not self.sign_in.get_keycard_banner.is_element_displayed():
@ -443,7 +443,7 @@ class TestRestoreOneDeviceMerged(MultipleSharedDeviceTestCase):
self.sign_in.just_fyi('Check that after migrating account with assets is restored')
wallet = self.sign_in.wallet_button.click()
for asset in ['ETH', 'ADI', 'STT']:
for asset in self.assets:
if wallet.get_asset_amount_by_name(asset) == 0:
self.errors.append('Asset %s was not restored' % asset)

View File

@ -1,7 +1,7 @@
import pytest
from tests import marks
from tests.base_test_case import MultipleSharedDeviceTestCase, create_shared_drivers
from tests.users import transaction_senders, basic_user, ens_user, ens_user_ropsten
from tests.users import transaction_senders, basic_user, ens_user, ens_user_message_sender
from views.sign_in_view import SignInView
@ -203,7 +203,7 @@ class TestPairingSyncMultipleDevicesMerged(MultipleSharedDeviceTestCase):
def test_pairing_sync_contacts_add_remove_set_nickname_ens(self):
[device.home_button.double_click() for device in (self.profile_1, self.profile_2)]
new_contact, new_nickname = transaction_senders['F'], "completely_new_nick"
self.home_1.add_contact(ens_user_ropsten['ens'])
self.home_1.add_contact(ens_user_message_sender['ens'])
self.home_1.home_button.click()
self.home_1.add_contact(new_contact['public_key'])
@ -211,7 +211,7 @@ class TestPairingSyncMultipleDevicesMerged(MultipleSharedDeviceTestCase):
self.profile_2.profile_button.double_click()
self.profile_2.contacts_button.scroll_to_element(direction='up')
self.profile_2.contacts_button.click()
for contact in (new_contact['username'], '@%s' % ens_user_ropsten['ens']):
for contact in (new_contact['username'], '@%s' % ens_user_message_sender['ens']):
if not self.profile_2.element_by_text(contact).is_element_displayed():
self.errors.append("'%s' new contact is not synced!" % contact)

View File

@ -5,7 +5,7 @@ from support.utilities import get_merged_txs_list
from tests import marks, common_password, pin, puk, pair_code
from tests.base_test_case import MultipleSharedDeviceTestCase, create_shared_drivers
from tests.users import transaction_senders, basic_user, wallet_users, ens_user_ropsten, ens_user
from tests.users import transaction_senders, basic_user, wallet_users, ens_user_message_sender, ens_user
from views.sign_in_view import SignInView
@ -22,13 +22,14 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
self.sign_in = SignInView(self.drivers[0])
self.home = self.sign_in.recover_access(self.user['passphrase'])
self.wallet = self.home.wallet_button.click()
self.assets = ('ETH', 'ADI', 'STT')
self.assets = ('ETH', 'YEENUS', 'STT')
self.token_8_dec = 'YEENUS'
[self.wallet.wait_balance_is_changed(asset) for asset in self.assets]
self.initial_balances = dict()
for asset in self.assets:
self.initial_balances[asset] = self.wallet.get_asset_amount_by_name(asset)
self.wallet.send_transaction(amount=self.amount_eth, recipient=self.recipient_address)
self.wallet.send_transaction(amount=self.amount_adi, recipient=self.recipient_address, asset_name='ADI')
self.wallet.send_transaction(amount=self.amount_adi, recipient=self.recipient_address, asset_name=self.token_8_dec)
@marks.testrail_id(700763)
def test_send_tx_eth_check_logcat(self):
@ -44,8 +45,8 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
self.wallet.driver.fail(values_in_logcat)
@marks.testrail_id(700764)
def test_send_tx_token_7_decimals(self):
asset = 'ADI'
def test_send_tx_token_8_decimals(self):
asset = self.token_8_dec
self.wallet.just_fyi("Checking tx with 7 decimals")
transaction_adi = self.wallet.find_transaction_in_history(amount=self.amount_adi, asset=asset, return_hash=True)
self.wallet.wallet_button.double_click()
@ -58,11 +59,12 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
status_test_dapp = self.home.open_status_test_dapp()
status_test_dapp.wait_for_d_aap_to_load()
self.wallet.just_fyi("Checking request STT")
status_test_dapp.assets_button.click()
status_test_dapp.request_stt_button.wait_for_element(60)
send_transaction = status_test_dapp.request_stt_button.click()
send_transaction.sign_transaction()
# TODO: temp due to goerli transition
# self.wallet.just_fyi("Checking request STT")
# status_test_dapp.assets_button.click()
# status_test_dapp.request_stt_button.wait_for_element(60)
# send_transaction = status_test_dapp.request_stt_button.click()
# send_transaction.sign_transaction()
self.wallet.just_fyi("Checking signing message")
status_test_dapp.transactions_button.click()
@ -102,7 +104,7 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
@marks.testrail_id(700765)
def test_send_tx_custom_token_18_decimals_invalid_password(self):
contract_address, name, symbol, decimals = '0x101848D5C5bBca18E6b4431eEdF6B95E9ADF82FA', 'Weenus 💪', 'WEENUS', '18'
contract_address, name, symbol, decimals = '0xaFF4481D10270F50f203E0763e2597776068CBc5', 'Weenus 💪', 'WEENUS', '18'
self.home.wallet_button.double_click()
self.wallet.just_fyi("Check that can add custom token")
@ -165,8 +167,8 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
account_name = 'my_acc_name'
account_address = '0x8c2E3Cd844848E79cFd4671cE45C12F210b630d7'
recent_add_to_fav_name = 'my_Recent_STT'
recent_add_to_fav_address = '0x58d8c3d70ce4fa4b9fb10a665c8712238746f2ff'
ens_status, ens_other = ens_user_ropsten, ens_user
recent_add_to_fav_address = '0xcf2272205cc0cf96cfbb9dd740bd681d1e86901e'
ens_status, ens_other = ens_user_message_sender, ens_user
basic_add_to_fav_name = 'my_basic_address'
self.drivers[0].reset()
@ -195,7 +197,7 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
send_tr.just_fyi('Set one of my accounts')
send_tr.chose_recipient_button.click_if_shown()
send_tr.element_by_translation_id("my-accounts").click()
send_tr.element_by_translation_id("my-accounts").scroll_and_click()
send_tr.element_by_text(account_name).click()
if send_tr.enter_recipient_address_text.text != send_tr.get_formatted_recipient_address(account_address):
self.errors.append('Added account is not resolved as recipient')
@ -203,11 +205,11 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
send_tr.just_fyi('Set contract address from recent and check smart contract error')
send_tr.chose_recipient_button.click()
send_tr.element_by_translation_id("recent").click()
send_tr.element_by_text('↓ 1000 MDS').click()
send_tr.element_by_text('↑ 0.02 ETHgo').scroll_and_click()
if not send_tr.element_by_translation_id("warning-sending-to-contract-descr").is_element_displayed():
self.driver.fail('No warning is shown at attempt to set as recipient smart contract')
send_tr.ok_button.click()
send_tr.element_by_text('↑ 0.001 ETHro').scroll_and_click()
send_tr.element_by_text('↓ 2 STT').scroll_and_click()
send_tr.add_to_favorites(recent_add_to_fav_name)
wallet.element_by_translation_id("recent").click()
@ -241,7 +243,7 @@ class TestSendTxDeviceMerged(MultipleSharedDeviceTestCase):
self.errors.append('ENS from contact is not resolved as recipient')
send_tr.just_fyi('Set different ENS options')
send_tr.set_recipient_address(ens_other['ens_another'])
send_tr.set_recipient_address(ens_other['ens'])
if send_tr.enter_recipient_address_text.text != send_tr.get_formatted_recipient_address(ens_other['address']):
self.errors.append('ENS address on another domain is not resolved as recipient')
send_tr.set_recipient_address('%s.stateofus.eth' % ens_status['ens'])
@ -277,7 +279,7 @@ class TestKeycardTxOneDeviceMerged(MultipleSharedDeviceTestCase):
self.home = self.sign_in.recover_access(passphrase=self.user['passphrase'], keycard=True)
self.wallet = self.home.wallet_button.click()
self.assets = ('ETH', 'ADI', 'STT')
self.assets = ('ETH', 'YEENUS', 'STT')
[self.wallet.wait_balance_is_changed(asset) for asset in self.assets]
self.initial_balances = dict()
for asset in self.assets:
@ -321,11 +323,13 @@ class TestKeycardTxOneDeviceMerged(MultipleSharedDeviceTestCase):
status_test_dapp = self.home.open_status_test_dapp()
status_test_dapp.wait_for_d_aap_to_load()
self.wallet.just_fyi("Requesting STT in dapp")
status_test_dapp.assets_button.click()
send_tx = status_test_dapp.request_stt_button.click()
send_tx.sign_transaction(keycard=True)
# TODO: temp due to goerli transition
# self.wallet.just_fyi("Requesting STT in dapp")
# status_test_dapp.assets_button.click()
# send_tx = status_test_dapp.request_stt_button.click()
# send_tx.sign_transaction(keycard=True)
send_tx = self.home.get_send_transaction_view()
self.wallet.just_fyi("Checking signing message")
status_test_dapp.transactions_button.click()
status_test_dapp.sign_message_button.click()
@ -357,9 +361,10 @@ class TestKeycardTxOneDeviceMerged(MultipleSharedDeviceTestCase):
self.sign_in.driver.fail('Second send transaction screen did not appear!')
send_tx.sign_transaction(keycard=True)
self.wallet.just_fyi('Verify that wallet balance is updated after receiving money from faucet')
self.home.wallet_button.click()
self.wallet.wait_balance_is_changed('STT', initial_balance=self.initial_balances['STT'])
# TODO: temp due to goerli transition
# self.wallet.just_fyi('Verify that wallet balance is updated after receiving money from faucet')
# self.home.wallet_button.click()
# self.wallet.wait_balance_is_changed('STT', initial_balance=self.initial_balances['STT'])
self.errors.verify_no_errors()
@marks.testrail_id(700770)
@ -385,14 +390,14 @@ class TestKeycardTxOneDeviceMerged(MultipleSharedDeviceTestCase):
self.sign_in.just_fyi("Check balance will be restored after going back online")
self.sign_in.toggle_airplane_mode()
wallet = self.home.wallet_button.click()
[wallet.wait_balance_is_changed(asset) for asset in ("ETH", "LXS")]
[wallet.wait_balance_is_changed(asset) for asset in ("ETH", "STT")]
self.wallet.just_fyi("Checking whole tx history after backing from offline")
self.wallet.accounts_status_account.click()
address = user['address']
ropsten_txs = self.network_api.get_transactions(address)
ropsten_tokens = self.network_api.get_token_transactions(address)
expected_txs_list = get_merged_txs_list(ropsten_txs, ropsten_tokens)
eth_txs = self.network_api.get_transactions(address)
token_txs = self.network_api.get_token_transactions(address)
expected_txs_list = get_merged_txs_list(eth_txs, token_txs)
transactions = self.wallet.transaction_history_button.click()
if self.wallet.element_by_translation_id("transactions-history-empty").is_element_displayed():
self.wallet.pull_to_refresh()

View File

@ -21,9 +21,9 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase):
self.sign_in.switch_to_mobile(before_login=True)
self.home = self.sign_in.recover_access(self.user['passphrase'])
self.wallet = self.home.wallet_button.click()
[self.wallet.wait_balance_is_changed(asset) for asset in ('ETH', 'MDS', 'STT')]
[self.wallet.wait_balance_is_changed(asset) for asset in ('ETH', 'YEENUS', 'STT')]
self.initial_balances = {'ETH': self.wallet.get_asset_amount_by_name('ETH'),
'ADI': 0,
'YEENUS': self.wallet.get_asset_amount_by_name('YEENUS'),
'STT': self.wallet.get_asset_amount_by_name('STT')}
@marks.testrail_id(700756)
@ -117,7 +117,7 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase):
@marks.testrail_id(700758)
def test_wallet_manage_assets(self):
asset = "HND"
asset = "ZEENUS"
self.sign_in.just_fyi("Getting back to main wallet view")
self.wallet.get_back_to_home_view()
@ -128,11 +128,9 @@ class TestWalletManagementDeviceMerged(MultipleSharedDeviceTestCase):
self.errors.append('%s asset is not shown in wallet' % asset)
self.sign_in.just_fyi("Check that 0 asset is not disappearing after relogin")
profile = self.wallet.profile_button.click()
profile.relogin()
self.wallet.reopen_app()
self.sign_in.wallet_button.click()
if not self.wallet.asset_by_name(asset).is_element_displayed():
self.errors.append('%s asset is not shown in wallet after relogin' % asset)
self.wallet.asset_by_name(asset).scroll_to_element()
self.sign_in.just_fyi("Deselecting asset")
self.wallet.multiaccount_more_options.click()

View File

@ -1,9 +1,11 @@
import time
import pytest
from tests import marks, common_password, used_fleet
from tests.base_test_case import create_shared_drivers, MultipleSharedDeviceTestCase
from views.sign_in_view import SignInView
from tests.users import basic_user, ens_user, ens_user_ropsten, transaction_senders, chat_users
from tests.users import basic_user, ens_user, ens_user_message_sender, transaction_senders, chat_users
@pytest.mark.xdist_group(name="one_1")
@ -14,7 +16,7 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
self.drivers, self.loop = create_shared_drivers(1)
self.sign_in = SignInView(self.drivers[0])
self.home = self.sign_in.create_user()
self.wiki_texts = ['Español', '日本語', 'Français', '中文', 'Português']
self.wiki_texts = ['Español', '日本語', '中文', 'Português']
@marks.testrail_id(702149)
def test_browser_can_access_images_by_link(self):
@ -78,30 +80,26 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
# Switching back to ropsten
web_page.profile_button.click()
profile.switch_network('Ropsten with upstream RPC')
profile.switch_network('Goerli with upstream RPC')
self.errors.verify_no_errors()
@marks.testrail_id(702179)
def test_browser_refresh_page(self):
dapp = self.home.dapp_tab_button.click()
url = 'app.uniswap.org'
dapp.just_fyi("Check refresh button")
url = 'status.im'
web_page = dapp.open_url(url)
dapp.allow_button.click_if_shown()
element_on_start_page = dapp.element_by_text('Select a token')
dapp.allow_button.click_if_shown()
element_on_start_page.scroll_and_click()
# when bottom sheet is opened, elements by text couldn't be found
element_on_start_page.wait_for_invisibility_of_element(20)
self.home.just_fyi("Open collapsed menu and check required element is shown")
web_page.open_right_collapsed_menu()
element_on_start_page = dapp.element_by_text('Get Involved')
element_on_start_page.wait_for_visibility_of_element(20)
self.home.just_fyi("Tap on Refresh and check that popup is closed")
web_page.browser_refresh_page_button.click()
if not element_on_start_page.is_element_displayed(30):
time.sleep(2)
if element_on_start_page.is_element_displayed(10):
self.errors.append("Page failed to be refreshed")
self.errors.verify_no_errors()
@marks.testrail_id(702151)
@ -187,21 +185,23 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
@marks.testrail_id(702159)
def test_profile_invite_friends(self):
chat_key = self.home.get_public_key_and_username()
self.home.home_button.double_click()
self.home.just_fyi("Check it via 'Invite friends' on home view")
self.home.invite_friends_button.click()
self.home.share_via_messenger()
self.home.element_by_text_part("Hey join me on Status: https://join.status.im/u/0x")
self.home.click_system_back_button()
if not self.home.element_by_text_part('Hey join me on Status: https://join.status.im/u/%s' % chat_key).is_element_displayed(20):
self.errors.append("No expected message in input field when sharing via 'Invite friend'")
self.home.click_system_back_button_until_element_is_shown()
self.home.just_fyi("Check it via bottom sheet menu")
self.home.plus_button.click()
self.home.chats_menu_invite_friends_button.click()
self.home.share_via_messenger()
self.home.element_by_text_part("Hey join me on Status: https://join.status.im/u/0x")
self.home.click_system_back_button()
if not self.home.element_by_text_part('Hey join me on Status: https://join.status.im/u/%s' % chat_key).is_element_displayed(20):
self.errors.append("No expected message in input field when sharing via 'bottom sheet'")
self.home.click_system_back_button_until_element_is_shown()
self.errors.verify_no_errors()
@marks.testrail_id(702160)
@ -215,8 +215,8 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
users = {
'scanning_ens_with_stateofus_domain_deep_link': {
'contact_code': 'https://join.status.im/u/%s.stateofus.eth' % ens_user_ropsten['ens'],
'username': ens_user_ropsten['username']
'contact_code': 'https://join.status.im/u/%s.stateofus.eth' % ens_user_message_sender['ens'],
'username': ens_user_message_sender['username']
},
'scanning_public_key': {
'contact_code': transaction_senders['A']['public_key'],
@ -289,8 +289,8 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
if not profile.element_by_text_part('custom_ropsten').is_element_displayed():
self.driver.fail("Network custom_ropsten was not added!")
profile.get_back_to_home_view()
# Switching back to Ropsten for the next cases
profile.switch_network('Ropsten with upstream RPC')
# Switching back to Goerli for the next cases
profile.switch_network('Goerli with upstream RPC')
self.errors.verify_no_errors()
@ -374,13 +374,11 @@ class TestBrowserProfileOneDevice(MultipleSharedDeviceTestCase):
profile = self.home.profile_button.click()
profile.advanced_button.click()
default_log_level = 'INFO'
default_log_level = 'DEBUG'
if not profile.element_by_text(default_log_level).is_element_displayed():
self.errors.append('%s is not selected by default' % default_log_level)
if self.home.find_values_in_geth('lvl=trce', 'lvl=dbug'):
if self.home.find_values_in_geth('lvl=trce'):
self.errors.append('"%s" is set, but found another entries!' % default_log_level)
if not self.home.find_values_in_geth('lvl=info'):
self.errors.append('"%s" is set, but no entries are found!' % default_log_level)
self.home.just_fyi('Set another loglevel and check that changes are applied')
profile.log_level_setting_button.click()

View File

@ -185,6 +185,7 @@ class TestTimelineHistoryNodesBootnodesMultipleDeviceMergedMedium(MultipleShared
self.errors.verify_no_errors()
@marks.testrail_id(702286)
@marks.xfail(reason="flaky; history was not fetched after enabling use_history_node - something needs investigation")
def test_profile_use_history_node_disable_enable(self):
[home.home_button.double_click() for home in (self.home_1, self.home_2)]
self.home_1.toggle_airplane_mode()
@ -224,7 +225,7 @@ class TestTimelineHistoryNodesBootnodesMultipleDeviceMergedMedium(MultipleShared
self.errors.verify_no_errors()
@marks.testrail_id(702287)
@marks.xfail(reason="may be failed due to #13333")
#@marks.xfail(reason="may be failed due to #13333")
def test_profile_can_not_connect_to_custom_history_node_add_delete(self):
self.home_1.profile_button.double_click()
self.home_2.home_button.double_click()
@ -716,6 +717,7 @@ class TestChatMediumMultipleDevice(MultipleSharedDeviceTestCase):
self.errors.verify_no_errors()
@pytest.mark.xdist_group(name="one_3")
@marks.medium
class TestGroupChatMultipleDeviceMediumMerged(MultipleSharedDeviceTestCase):

View File

@ -4,7 +4,7 @@ from selenium.common.exceptions import NoSuchElementException
from tests import marks, test_dapp_url
from tests.base_test_case import create_shared_drivers, MultipleSharedDeviceTestCase
from tests.users import dummy_user, transaction_senders, basic_user, \
ens_user_ropsten, ens_user
ens_user_message_sender, ens_user
from views.sign_in_view import SignInView
@ -22,11 +22,11 @@ class TestDeeplinkChatProfileOneDevice(MultipleSharedDeviceTestCase):
self.nickname = 'dummy_user'
self.search_list_1 = {
basic_user['username']: basic_user['username'],
ens_user_ropsten['username']: ens_user_ropsten['ens'],
ens_user_message_sender['username']: ens_user_message_sender['ens'],
self.public_chat_name: self.public_chat_name,
self.nickname: self.nickname,
dummy_user['username']: self.nickname,
ens_user_ropsten['ens']: ens_user_ropsten['ens']
ens_user_message_sender['ens']: ens_user_message_sender['ens']
}
self.public_chat = self.home.join_public_chat(self.public_chat_name)
self.public_chat.get_back_to_home_view()
@ -56,7 +56,7 @@ class TestDeeplinkChatProfileOneDevice(MultipleSharedDeviceTestCase):
@marks.testrail_id(702245)
def test_deep_link_open_user_profile(self):
for user_ident in ens_user['ens'], ens_user['ens_another'], ens_user['public_key']:
for user_ident in ens_user['ens'], ens_user['ens_upgrade'], ens_user['public_key']:
self.drivers[0].close_app()
deep_link = 'status-im://u/%s' % user_ident
self.sign_in.open_weblink_and_login(deep_link)
@ -148,8 +148,8 @@ class TestDeeplinkChatProfileOneDevice(MultipleSharedDeviceTestCase):
self.public_chat.set_nickname(self.nickname)
self.public_chat.home_button.click()
ens_name_status, ens_name_another_domain, public_chat_name = ens_user_ropsten['ens'], \
ens_user['ens_another'], 'some-pub-chat'
ens_name_status, ens_name_another_domain, public_chat_name = ens_user_message_sender['ens'], \
ens_user['ens'], 'some-pub-chat'
search_list_2 = {
ens_name_status: {
'home': {

View File

@ -1,8 +1,8 @@
import pytest
from tests import marks
from tests import marks, test_dapp_url
from tests.base_test_case import create_shared_drivers, MultipleSharedDeviceTestCase
from tests.users import transaction_senders, basic_user, ens_user_ropsten, ens_user
from tests.users import transaction_senders, basic_user, ens_user_message_sender, ens_user
from views.chat_view import ChatView
from views.profile_view import ProfileView
from views.send_transaction_view import SendTransactionView
@ -139,7 +139,7 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
camera_dapp.just_fyi("Relogin and check camera access still needs to be allowed")
self.home.profile_button.click()
profile.relogin()
profile.reopen_app()
self.home.dapp_tab_button.click()
camera_dapp.open_tabs_button.click()
dapp.element_by_text_part("https").click()
@ -155,16 +155,16 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
url_data = {
'ens_with_stateofus_domain_deep_link': {
'url': 'https://join.status.im/u/%s.stateofus.eth' % ens_user_ropsten['ens'],
'username': '@%s' % ens_user_ropsten['ens']
'url': 'https://join.status.im/u/%s.stateofus.eth' % ens_user_message_sender['ens'],
'username': '@%s' % ens_user_message_sender['ens']
},
'ens_without_stateofus_domain_deep_link': {
'url': 'https://join.status.im/u/%s' % ens_user_ropsten['ens'],
'username': '@%s' % ens_user_ropsten['ens']
'url': 'https://join.status.im/u/%s' % ens_user_message_sender['ens'],
'username': '@%s' % ens_user_message_sender['ens']
},
'ens_another_domain_deep_link': {
'url': 'status-im://u/%s' % ens_user['ens_another'],
'username': '@%s' % ens_user['ens_another']
'url': 'status-im://u/%s' % ens_user['ens'],
'username': '@%s' % ens_user['ens']
},
'own_profile_key_deep_link': {
'url': 'https://join.status.im/u/%s' % self.public_key,
@ -225,8 +225,8 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
url_data = {
'ens_without_stateofus_domain_deep_link': {
'url': 'https://join.status.im/u/%s' % ens_user_ropsten['ens'],
'username': '@%s' % ens_user_ropsten['ens']
'url': 'https://join.status.im/u/%s' % ens_user_message_sender['ens'],
'username': '@%s' % ens_user_message_sender['ens']
},
'other_user_profile_key_deep_link': {
@ -245,19 +245,19 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
'username': transaction_senders['A']['username']
},
'wallet_validation_wrong_address_transaction': {
'url': 'ethereum:0x744d70fdbe2ba4cf95131626614a1763df805b9e@3/transfer?address=blablabla&uint256=1e10',
'url': 'ethereum:0x744d70fdbe2ba4cf95131626614a1763df805b9e@5/transfer?address=blablabla&uint256=1e10',
'error': 'Invalid address',
},
'wallet_eip_ens_for_receiver': {
'url': 'ethereum:0xc55cf4b03948d7ebc8b9e8bad92643703811d162@3/transfer?address=nastya.stateofus.eth&uint256=1e-1',
'url': 'ethereum:0x3d6afaa395c31fcd391fe3d562e75fe9e8ec7e6a@5/transfer?address=%s.stateofus.eth&uint256=1e-1' % ens_user_message_sender['ens'],
'data': {
'asset': 'STT',
'amount': '0.1',
'address': '0x58d8…F2ff',
'address': '0x75fF…4184',
},
},
'wallet_eip_payment_link': {
'url': 'ethereum:pay-0xc55cf4b03948d7ebc8b9e8bad92643703811d162@3/transfer?address=0x3d597789ea16054a084ac84ce87f50df9198f415&uint256=1e1',
'url': 'ethereum:pay-0x3d6afaa395c31fcd391fe3d562e75fe9e8ec7e6a@5/transfer?address=0x3d597789ea16054a084ac84ce87f50df9198f415&uint256=1e1',
'data': {
'amount': '10',
'asset': 'STT',
@ -265,10 +265,10 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
},
},
'dapp_deep_link': {
'url': 'https://join.status.im/b/simpledapp.eth',
'url': 'https://join.status.im/b/%s' % test_dapp_url,
},
'dapp_deep_link_https': {
'url': 'https://join.status.im/b/https://simpledapp.eth',
'url': 'https://join.status.im/b/%s' % test_dapp_url,
},
'public_chat_deep_link': {
'url': 'https://join.status.im/baga-ma-2020',
@ -309,8 +309,7 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
wallet.home_button.click()
if 'dapp' in key:
self.home.open_in_status_button.click()
if not (chat.allow_button.is_element_displayed() or chat.element_by_text(
"Can't find web3 library").is_element_displayed()):
if not chat.allow_button.is_element_displayed():
self.errors.append('No allow button is shown in case of navigating to Status dapp!')
chat.dapp_tab_button.click()
chat.home_button.click()
@ -343,11 +342,11 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
url_data = {
'ens_for_receiver': {
'url': 'ethereum:0xc55cf4b03948d7ebc8b9e8bad92643703811d162@3/transfer?address=nastya.stateofus.eth&uint256=1e-1',
'url': 'ethereum:0x3D6AFAA395C31FCd391fE3D562E75fe9E8ec7E6a@5/transfer?address=%s.stateofus.eth&uint256=1e-1' % ens_user_message_sender['ens'],
'data': {
'asset': 'STT',
'amount': '0.1',
'address': '0x58d8…F2ff',
'address': '0x75fF…4184',
},
},
# 'gas_settings': {
@ -361,7 +360,7 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
# },
# },
'payment_link': {
'url': 'ethereum:pay-0xc55cf4b03948d7ebc8b9e8bad92643703811d162@3/transfer?address=0x3d597789ea16054a084ac84ce87f50df9198f415&uint256=1e1',
'url': 'ethereum:pay-0x3D6AFAA395C31FCd391fE3D562E75fe9E8ec7E6a@5/transfer?address=0x3d597789ea16054a084ac84ce87f50df9198f415&uint256=1e1',
'data': {
'amount': '10',
'asset': 'STT',
@ -369,7 +368,7 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
},
},
'validation_amount_too_presize': {
'url': 'ethereum:0xc55cf4b03948d7ebc8b9e8bad92643703811d162@3/transfer?address=0x101848D5C5bBca18E6b4431eEdF6B95E9ADF82FA&uint256=1e-19',
'url': 'ethereum:0x3D6AFAA395C31FCd391fE3D562E75fe9E8ec7E6a@5/transfer?address=0x101848D5C5bBca18E6b4431eEdF6B95E9ADF82FA&uint256=1e-19',
'data': {
'amount': '1e-19',
'asset': 'STT',
@ -379,10 +378,10 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
'send_transaction_validation_error': 'Amount is too precise',
},
'validation_amount_too_big': {
'url': 'ethereum:0x101848D5C5bBca18E6b4431eEdF6B95E9ADF82FA@3?value=1e25',
'url': 'ethereum:0x101848D5C5bBca18E6b4431eEdF6B95E9ADF82FA@5?value=1e25',
'data': {
'amount': '10000000',
'asset': 'ETHro',
'asset': 'ETHgo',
'address': '0x1018…82FA',
},
@ -393,12 +392,12 @@ class TestPermissionsScanQrOneDevice(MultipleSharedDeviceTestCase):
'error': 'Network does not match',
'data': {
'amount': '0.1',
'asset': 'ETHro',
'asset': 'ETHgo',
'address': '0x1018…82FA',
},
},
'validation_wrong_address': {
'url': 'ethereum:0x744d70fdbe2ba4cf95131626614a1763df805b9e@3/transfer?address=blablabla&uint256=1e10',
'url': 'ethereum:0x744d70fdbe2ba4cf95131626614a1763df805b9e@5/transfer?address=blablabla&uint256=1e10',
'error': 'Invalid address',
},
}

View File

@ -3,7 +3,7 @@ import random
from tests import marks, mailserver_ams, mailserver_gc, mailserver_hk, used_fleet, common_password,\
pair_code, unique_password
from tests.users import user_mainnet, chat_users, recovery_users, transaction_senders, basic_user,\
wallet_users, ens_user_ropsten, ens_user
wallet_users, ens_user_message_sender, ens_user
from tests.base_test_case import SingleDeviceTestCase
from views.sign_in_view import SignInView
import support.api.web3_api as w3
@ -44,7 +44,7 @@ class TestChatManagement(SingleDeviceTestCase):
sign_in.toggle_mobile_data()
sign_in.element_by_text_part('Stop syncing').wait_and_click(60)
sign_in.wallet_button.click()
if not wallet_view.element_by_text_part('LXS').is_element_displayed():
if not wallet_view.element_by_text_part('XEENUS').is_element_displayed():
self.errors.append('Token balance is not fetched while on cellular network!')
wallet_view.just_fyi('Add watch-only account when on cellular network')
@ -60,7 +60,7 @@ class TestChatManagement(SingleDeviceTestCase):
wallet_view.just_fyi('Check that balance is changed after go back to WI-FI')
sign_in.toggle_mobile_data()
for asset in ('ADI', 'STT'):
for asset in ('YEENUS', 'STT'):
wallet_view.asset_by_name(asset).scroll_to_element()
wallet_view.wait_balance_is_changed(asset, wait_time=60)
@ -487,7 +487,7 @@ class TestChatManagement(SingleDeviceTestCase):
sign_in = SignInView(self.driver)
errors = {'send_transaction_screen': {
'too_precise': 'Amount is too precise. Max number of decimals is 7.',
'too_precise': 'Amount is too precise. Max number of decimals is 8.',
'insufficient_funds': 'Insufficient funds'
},
'sending_screen': {
@ -499,14 +499,14 @@ class TestChatManagement(SingleDeviceTestCase):
sign_in.recover_access(sender['passphrase'])
wallet = sign_in.wallet_button.click()
wallet.wait_balance_is_changed('ADI')
wallet.wait_balance_is_changed('YEENUS')
wallet.accounts_status_account.click()
screen = 'send transaction screen from wallet'
sign_in.just_fyi('Checking %s on %s' % (errors['send_transaction_screen']['too_precise'], screen))
initial_amount_adi = wallet.get_asset_amount_by_name('ADI')
initial_amount_adi = wallet.get_asset_amount_by_name('YEENUS')
send_transaction = wallet.send_transaction_button.click()
adi_button = send_transaction.asset_by_name('ADI')
adi_button = send_transaction.asset_by_name('YEENUS')
send_transaction.select_asset_button.click_until_presence_of_element(
send_transaction.eth_asset_in_select_asset_bottom_sheet_button)
adi_button.click()
@ -533,7 +533,7 @@ class TestChatManagement(SingleDeviceTestCase):
wallet.get_account_by_name(account_name).click()
wallet.send_transaction_button.click()
send_transaction.amount_edit_box.set_value('0')
send_transaction.set_recipient_address(ens_user_ropsten['ens'])
send_transaction.set_recipient_address(ens_user_message_sender['ens'])
send_transaction.next_button.click()
wallet.ok_got_it_button.wait_and_click(30)
if not send_transaction.validation_error_element.is_element_displayed(10):
@ -569,8 +569,8 @@ class TestChatManagement(SingleDeviceTestCase):
send_transaction = wallet.send_transaction_button.click()
amount = '0.000%s' % str(random.randint(100000, 999999)) + '1'
send_transaction.amount_edit_box.set_value(amount)
send_transaction.set_recipient_address(ens_user_ropsten['ens'])
self.value = send_transaction.amount_edit_box.set_value(amount)
send_transaction.set_recipient_address(ens_user_message_sender['ens'])
send_transaction.next_button.click()
wallet.ok_got_it_button.wait_and_click(30)
send_transaction.network_fee_button.click()
@ -630,8 +630,9 @@ class TestChatManagement(SingleDeviceTestCase):
wallet.just_fyi('Verify custom fee data on tx screen')
wallet.swipe_up()
for key in expected_params:
if not wallet.element_by_text_part(expected_params[key]).is_element_displayed():
self.errors.append("Custom tx param %s is not shown on tx history screen" % key)
if key != 'fee_cap':
if not wallet.element_by_text_part(expected_params[key]).is_element_displayed():
self.errors.append("Custom tx param %s is not shown on tx history screen" % key)
wallet.just_fyi("Check below fee popup on mainnet")
profile = wallet.profile_button.click()
@ -641,7 +642,7 @@ class TestChatManagement(SingleDeviceTestCase):
send_transaction = wallet.send_transaction_button.click_until_presence_of_element(send_transaction.amount_edit_box)
send_transaction.amount_edit_box.set_value(0)
send_transaction.set_recipient_address(ens_user_ropsten['ens'])
send_transaction.set_recipient_address(ens_user_message_sender['ens'])
send_transaction.next_button.click()
wallet.element_by_translation_id("network-fee").click()
if not wallet.element_by_translation_id("tx-fail-description2").is_element_displayed():
@ -740,7 +741,7 @@ class TestChatManagement(SingleDeviceTestCase):
send_tx.next_button.click()
send_tx.set_up_wallet_when_sending_tx()
send_tx.advanced_button.click()
send_tx.nonce_input.set_value('4')
send_tx.nonce_input.set_value('0')
send_tx.nonce_save_button.click()
error_text = send_tx.sign_transaction(error=True)
if error_text != 'nonce too low':
@ -770,13 +771,13 @@ class TestChatManagement(SingleDeviceTestCase):
@marks.testrail_id(6219)
def test_profile_set_primary_ens_custom_domain(self):
home = SignInView(self.driver).recover_access(ens_user['passphrase'])
ens_second, ens_main = ens_user['ens_another'], ens_user['ens']
ens_second, ens_main = ens_user['ens_upgrade'], ens_user['ens']
home.just_fyi('add 2 ENS names in Profile')
profile = home.profile_button.click()
dapp = profile.connect_existing_ens(ens_main)
profile.element_by_translation_id("ens-add-username").wait_and_click()
profile.element_by_translation_id("ens-want-custom-domain").wait_and_click()
dapp.ens_name_input.set_value(ens_second)
dapp.check_ens_name.click_until_presence_of_element(dapp.element_by_translation_id("ens-got-it"))
dapp.element_by_translation_id("ens-got-it").wait_and_click()
@ -1055,12 +1056,15 @@ class TestChatManagement(SingleDeviceTestCase):
self.wallet = self.home.wallet_button.click()
self.address = self.wallet.get_wallet_address()
self.chat_key = self.home.get_public_key_and_username()
self.wallet.just_fyi("Get required donate")
w3.donate_testnet_eth(self.address, amount=0.1, inscrease_default_gas_price=10)
self.home.wallet_button.click()
self.wallet.wait_balance_is_changed()
w3.donate_testnet_token('STT', address=self.address, amount=10, inscrease_default_gas_price=10)
self.wallet.wait_balance_is_changed('STT', scan_tokens=True)
self.wallet.just_fyi("Purchase ENS")
self.profile = self.home.profile_button.click()
self.profile.ens_usernames_button.wait_and_click()
self.dapp = self.home.get_dapp_view()
@ -1077,24 +1081,40 @@ class TestChatManagement(SingleDeviceTestCase):
self.error.append("ENS name %s is not purchasing" % self.ens_name)
self.dapp.ens_got_it.click()
if self.dapp.registration_in_progress.is_element_displayed(10):
self.dapp.registration_in_progress.wait_for_invisibility_of_element(300)
self.dapp.registration_in_progress.wait_for_invisibility_of_element(400)
self.dapp.element_by_text(self.ens_name).click()
for text in ("10 SNT, deposit unlocked", self.chat_key, self.address.lower()):
if not self.dapp.element_by_text(text).is_element_displayed(10):
self.errors.append("%s is not displayed after ENS purchasing" % text)
if not w3.get_address_from_ens(self.ens_name) == self.address:
self.errors.append("ENS name %s is not resolved to correct address %s" % (self.ens_name, self.address))
self.wallet.just_fyi("Send leftovers")
self.wallet.wallet_button.click()
send_transaction = self.wallet.send_transaction_from_main_screen.click()
self.wallet.wallet_button.double_click()
address = self.wallet.get_wallet_address()
send_transaction = self.wallet.send_transaction_button.click()
send_transaction.set_max_button.click()
send_transaction.confirm()
send_transaction.chose_recipient_button.click()
send_transaction.set_recipient_address(w3.ACCOUNT_ADDRESS)
send_transaction.sign_transaction_button.click()
send_transaction.sign_transaction()
self.wallet.just_fyi("Verify purchased ENS")
self.home.home_button.click()
self.home.plus_button.click_until_presence_of_element(self.home.start_new_chat_button)
chat = self.home.start_new_chat_button.click()
chat.public_key_edit_box.click()
chat.public_key_edit_box.send_keys(self.ens_name)
if not self.home.element_by_translation_id("can-not-add-yourself").is_element_displayed(20):
self.errors.append(
"Public key in not resolved correctly from %s ENS name on stateofus!" % self.ens_name)
self.home.get_back_to_home_view()
self.wallet.wallet_button.double_click()
self.wallet.send_transaction_from_main_screen.click_until_presence_of_element(send_transaction.chose_recipient_button)
send_transaction.chose_recipient_button.scroll_and_click()
send_transaction.set_recipient_address(self.ens_name)
if not send_transaction.element_by_text_part(send_transaction.get_formatted_recipient_address(address)).is_element_displayed(5):
self.errors.append("Wallet address in not resolved correctly from %s ENS name on stateofus!" % self.ens_name)
self.errors.verify_no_errors()
@marks.testrail_id(6300)

View File

@ -5,7 +5,7 @@ import pytest
from tests import common_password, marks, test_dapp_name
from tests.base_test_case import MultipleSharedDeviceTestCase, create_shared_drivers
from tests.users import transaction_senders, basic_user, ens_user_ropsten
from tests.users import transaction_senders, basic_user, ens_user_message_sender
from views.sign_in_view import SignInView
@ -24,6 +24,8 @@ class TestKeycardMediumMultipleDevicesMerged(MultipleSharedDeviceTestCase):
self.home.home_button.click()
@marks.testrail_id(702317)
@marks.skip
# TODO: skipped until fix #13606 and full transition to Goerli
def test_keycard_testdapp_sign_typed_message(self):
test_dapp = self.home.open_status_test_dapp()
test_dapp.wait_for_d_aap_to_load()
@ -53,7 +55,7 @@ class TestKeycardMediumMultipleDevicesMerged(MultipleSharedDeviceTestCase):
@marks.testrail_id(702319)
def test_keycard_send_tx_eth_to_ens(self):
self.home.home_button.double_click()
chat = self.home.add_contact(ens_user_ropsten['ens'])
chat = self.home.add_contact(ens_user_message_sender['ens'])
chat.commands_button.click()
amount = chat.get_unique_amount()
@ -67,7 +69,7 @@ class TestKeycardMediumMultipleDevicesMerged(MultipleSharedDeviceTestCase):
send_transaction.sign_transaction(keycard=True)
chat_sender_message = chat.get_outgoing_transaction()
self.network_api.wait_for_confirmation_of_transaction(self.user['address'], amount)
chat_sender_message.transaction_status.wait_for_element_text(chat_sender_message.confirmed)
chat_sender_message.transaction_status.wait_for_element_text(chat_sender_message.confirmed, 60)
@marks.testrail_id(702320)
def test_keycard_profile_pin_puk_edit(self):
@ -233,6 +235,8 @@ class TestWalletTestDappMediumMultipleDevicesMerged(MultipleSharedDeviceTestCase
self.errors.verify_no_errors()
@marks.testrail_id(702325)
@marks.skip
# TODO: skipped until fix #13606 and full transition to Goerli
def test_testdapp_sign_typed_message(self):
self.home.just_fyi("Checking sign typed message")
test_dapp = self.home.open_status_test_dapp(allow_all=True)
@ -291,8 +295,8 @@ class TestWalletTestDappMediumMultipleDevicesMerged(MultipleSharedDeviceTestCase
def test_wallet_asset_search(self):
self.home.wallet_button.double_click()
search_list_assets = {
'd': ['Adi Test Token', 'Handy Test Token', 'Modest Test Token'],
'MD': ['MDS']
'ee': ['XEENUS', 'YEENUS', 'ZEENUS'],
'ST': ['STT']
}
self.home.just_fyi('Searching for asset by name and symbol')
self.wallet.multiaccount_more_options.click()
@ -349,8 +353,9 @@ class TestWalletTestDappMediumMultipleDevicesMerged(MultipleSharedDeviceTestCase
self.home.just_fyi('check correct account is shown for transaction if sending from DApp')
profile.dapp_tab_button.click(desired_element_text='Accounts')
status_test_dapp.assets_button.click()
send_transaction = status_test_dapp.request_stt_button.click()
status_test_dapp.transactions_button.click_until_presence_of_element(
status_test_dapp.send_one_tx_in_batch_button)
send_transaction = status_test_dapp.send_one_tx_in_batch_button.click()
send_transaction.ok_got_it_button.click_if_shown()
address = send_transaction.get_formatted_recipient_address(self.sub_acc_address)
if not send_transaction.element_by_text(address).is_element_displayed():

Binary file not shown.

View File

@ -191,7 +191,7 @@ class TestUpgradeApplication(SingleDeviceTestCase):
sign_in.just_fyi('Check that balance is preserved')
accounts = dapp_data.wallets
wallet = profile.wallet_button.click()
for asset in ('ETH', 'ADI', 'STT'):
for asset in ('ETH', 'YEENUS', 'STT'):
wallet.wait_balance_is_changed(asset=asset)
sign_in.just_fyi('Check accounts inside multiaccount')
@ -215,13 +215,13 @@ class TestUpgradeApplication(SingleDeviceTestCase):
sign_in = SignInView(self.driver)
home = sign_in.recover_access(passphrase=user['passphrase'], keycard=True)
wallet = home.wallet_button.click()
wallet.wait_balance_is_changed(asset='ADI', scan_tokens=True)
wallet.wait_balance_is_changed(asset='YEENUS', scan_tokens=True)
home.upgrade_app()
home.just_fyi('Check that can login with restored from mnemonic keycard account')
sign_in.sign_in(keycard=True)
home.wallet_button.click()
for asset in ['ETH', 'ADI', 'STT']:
for asset in ['ETH', 'YEENUS', 'STT']:
if wallet.get_asset_amount_by_name(asset) == 0:
self.errors.append('Asset %s was not restored' % asset)

View File

@ -592,7 +592,7 @@ class ChatView(BaseView):
self.quote_username_in_message_input = EditBox(self.driver,
xpath="//android.view.ViewGroup[@content-desc='cancel-message-reply']/..//android.widget.TextView[1]")
self.cancel_reply_button = Button(self.driver, accessibility_id="cancel-message-reply")
self.chat_item = Button(self.driver, accessibility_id="chat-item")
self.chat_item = Button(self.driver, xpath="(//*[@content-desc='chat-item'])[1]")
self.chat_name_editbox = EditBox(self.driver, accessibility_id="chat-name-input")
self.commands_button = CommandsButton(self.driver)
self.send_command = SendCommand(self.driver)
@ -883,7 +883,7 @@ class ChatView(BaseView):
self.driver.info("Moving to messages by time marker: '%s'" % marker)
Button(self.driver, xpath="//*[@text='%s'']" % marker).scroll_to_element(depth=50, direction='up')
def install_sticker_pack_by_name(self, pack_name='Status Cat'):
def install_sticker_pack_by_name(self, pack_name='HCPP20'):
self.driver.info("## Installing '%s' stickerpack" % pack_name, device=False)
self.chat_message_input.click()
self.show_stickers_button.click()

View File

@ -1,4 +1,4 @@
from tests.users import ens_user_ropsten
from tests.users import ens_user_message_sender
main = {
'name' : 'main chat',
'messages': {
@ -34,7 +34,7 @@ make_admin = {
timeline = {
'link': 'https://join.status.im/u/0x045efbcc044e5ae21ac3cf111ea6df6186e0cc50a2cd747f52a56d19ce516e683c66cb47f4b0a21110859aea9592dfba1e0bf4af11ff3eab995f844b3673643bf1',
'text': 'Hey there!',
'resolved_username': ens_user_ropsten['username']
'resolved_username': ens_user_message_sender['username']
}
profile = {

View File

@ -1,4 +1,4 @@
from tests.users import basic_user, ens_user_ropsten
from tests.users import basic_user, ens_user_message_sender
contacts ={
'blocked': 'Athletic Lean Noctilio',
@ -6,8 +6,8 @@ contacts ={
'synced': {
'nickname': 'My buddy',
'username_nickname': 'Worthy Shady Harrier',
'ens': '@%s'% ens_user_ropsten['ens'],
'username_ens': ens_user_ropsten['username'],
'ens': '@%s'% ens_user_message_sender['ens'],
'username_ens': ens_user_message_sender['username'],
},
'added': {
'name': 'my_second_buddy',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -175,7 +175,7 @@ class WalletView(BaseView):
self.accounts_status_account.scroll_to_element(direction='up')
return
def wait_balance_is_changed(self, asset='ETH', initial_balance=0, wait_time=400, scan_tokens=False, navigate_to_home=True):
def wait_balance_is_changed(self, asset='ETH', initial_balance=0, wait_time=120, scan_tokens=False, navigate_to_home=True):
self.driver.info('Waiting %ss for %s updated balance' % (wait_time, asset))
counter = 0
while True:

View File

@ -2,6 +2,7 @@ import time
from views.base_element import EditBox, Button, BaseElement
from views.base_view import BaseView
from appium.webdriver.common.touch_action import TouchAction
class BaseWebView(BaseView):
@ -86,3 +87,8 @@ class BaseWebView(BaseView):
bookmark_name = self.bookmark_name_input.text
self.save_bookmark_button.click()
return bookmark_name
def open_right_collapsed_menu(self):
# written for status.im
size = self.driver.get_window_size()
TouchAction(self.driver).tap(None, size["width"] * 0.92, size["height"] * 0.2, 1).perform()