diff --git a/.env.e2e b/.env.e2e index 498e55b44d..6d722e5208 100644 --- a/.env.e2e +++ b/.env.e2e @@ -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 diff --git a/.env.jenkins b/.env.jenkins index d8336f7d9e..b928cf14a0 100644 --- a/.env.jenkins +++ b/.env.jenkins @@ -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 diff --git a/src/status_im/bootnodes/core_test.cljs b/src/status_im/bootnodes/core_test.cljs index a2ed78fdab..6c3b9f8292 100644 --- a/src/status_im/bootnodes/core_test.cljs +++ b/src/status_im/bootnodes/core_test.cljs @@ -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}}}})))))) diff --git a/src/status_im/ens/core.cljs b/src/status_im/ens/core.cljs index e33f50461a..78888b11ea 100644 --- a/src/status_im/ens/core.cljs +++ b/src/status_im/ens/core.cljs @@ -150,6 +150,7 @@ [chain-id] (case chain-id 3 50 + 5 10 1 10)) (fx/defn register-name diff --git a/src/status_im/ethereum/contracts.cljs b/src/status_im/ethereum/contracts.cljs index e9fa85af04..c5d7deca2f 100644 --- a/src/status_im/ethereum/contracts.cljs +++ b/src/status_im/ethereum/contracts.cljs @@ -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] diff --git a/src/status_im/ethereum/core_test.cljs b/src/status_im/ethereum/core_test.cljs index 7ef953c093..b5b32de635 100644 --- a/src/status_im/ethereum/core_test.cljs +++ b/src/status_im/ethereum/core_test.cljs @@ -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 diff --git a/src/status_im/ethereum/eip681_test.cljs b/src/status_im/ethereum/eip681_test.cljs index a8189b8a61..1db7447aa7 100644 --- a/src/status_im/ethereum/eip681_test.cljs +++ b/src/status_im/ethereum/eip681_test.cljs @@ -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}}}) diff --git a/src/status_im/ethereum/ens.cljs b/src/status_im/ethereum/ens.cljs index 0c6dd73c2d..d477296a65 100644 --- a/src/status_im/ethereum/ens.cljs +++ b/src/status_im/ethereum/ens.cljs @@ -7,6 +7,7 @@ (def ens-registries {:mainnet "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" :testnet "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" + :goerli "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" :rinkeby "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"}) (def default-address "0x0000000000000000000000000000000000000000") diff --git a/src/status_im/ethereum/stateofus.cljs b/src/status_im/ethereum/stateofus.cljs index a9fcf612a4..74bec380c7 100644 --- a/src/status_im/ethereum/stateofus.cljs +++ b/src/status_im/ethereum/stateofus.cljs @@ -30,7 +30,7 @@ (merge {:mainnet "0xDB5ac1a559b02E12F29fC0eC0e37Be8E046DEF49"} (when config/test-stateofus? - {:testnet "0x11d9F481effd20D76cEE832559bd9Aca25405841"}))) + {:goerli "0xD1f7416F91E7Eb93dD96A61F12FC092aD6B67B11"}))) (def registrars-cache (atom {})) diff --git a/src/status_im/ethereum/tokens.cljs b/src/status_im/ethereum/tokens.cljs index 05a0467007..1474e1e8f8 100644 --- a/src/status_im/ethereum/tokens.cljs +++ b/src/status_im/ethereum/tokens.cljs @@ -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 diff --git a/src/status_im/ethereum/transactions/core.cljs b/src/status_im/ethereum/transactions/core.cljs index 33ec9bd4d3..36a12c02f3 100644 --- a/src/status_im/ethereum/transactions/core.cljs +++ b/src/status_im/ethereum/transactions/core.cljs @@ -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)] diff --git a/src/status_im/multiaccounts/login/data_test.cljs b/src/status_im/multiaccounts/login/data_test.cljs index 5b2c6a2dcc..4a0943208c 100644 --- a/src/status_im/multiaccounts/login/data_test.cljs +++ b/src/status_im/multiaccounts/login/data_test.cljs @@ -87,6 +87,7 @@ :wallet/visible-tokens {:testnet #{:STT :HND} :mainnet #{:SNT} + :goerli #{:STT} :rinkeby #{:MOKSHA :KDO} :xdai #{}} diff --git a/src/status_im/ui/screens/network/edit_network/views.cljs b/src/status_im/ui/screens/network/edit_network/views.cljs index 77f7a0ceed..9551ce9009 100644 --- a/src/status_im/ui/screens/network/edit_network/views.cljs +++ b/src/status_im/ui/screens/network/edit_network/views.cljs @@ -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}] diff --git a/src/status_im/utils/config.cljs b/src/status_im/utils/config.cljs index cafa8893f1..c4458f5dde 100644 --- a/src/status_im/utils/config.cljs +++ b/src/status_im/utils/config.cljs @@ -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", diff --git a/status-go-version.json b/status-go-version.json index 521d662f41..c2fcb05e37 100644 --- a/status-go-version.json +++ b/status-go-version.json @@ -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" } diff --git a/test/appium/support/api/network_api.py b/test/appium/support/api/network_api.py index f9be043978..2fc5732652 100644 --- a/test/appium/support/api/network_api.py +++ b/test/appium/support/api/network_api.py @@ -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" diff --git a/test/appium/support/api/web3_api.py b/test/appium/support/api/web3_api.py index 2b61df98b4..441c438838 100644 --- a/test/appium/support/api/web3_api.py +++ b/test/appium/support/api/web3_api.py @@ -1,13 +1,11 @@ -import pprint - from eth_utils import to_checksum_address, is_address -from web3.auto.infura.ropsten import w3 +from web3.auto.infura.goerli import w3 from ens import ENS token_data = {"STT": [{ "abi": '[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newController","type":"address"}],"name":"changeController","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_cloneTokenName","type":"string"},{"name":"_cloneDecimalUnits","type":"uint8"},{"name":"_cloneTokenSymbol","type":"string"},{"name":"_snapshotBlock","type":"uint256"},{"name":"_transfersEnabled","type":"bool"}],"name":"createCloneToken","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"parentToken","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"generateTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"parentSnapShotBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroyTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"claimTokens","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenFactory","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_transfersEnabled","type":"bool"}],"name":"enableTransfers","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_tokenFactory","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_controller","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_cloneToken","type":"address"},{"indexed":false,"name":"_snapshotBlock","type":"uint256"}],"name":"NewCloneToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"}]', - "address": "0xc55cF4B03948D7EBc8b9E8BAD92643703811d162"}]} + "address": "0x3D6AFAA395C31FCd391fE3D562E75fe9E8ec7E6a"}]} ACCOUNT_PRIVATE_KEY = '0x5507f8c5c12707770c12fd0fae5d012b947d61f43b9203ae67916e703fd12ad7' ACCOUNT_ADDRESS = '0xE2363E6e91d1a29d82C2c695fa8fa2e3Fa5d55eA' @@ -104,7 +102,9 @@ def broadcast_signed_tx(signed_txn): def get_address_from_ens(ens_name, is_stateofus=True): + # Not working on Goerli ns = ENS.fromWeb3(w3) + ENS.fromWeb3() eth_address = ns.address('%s.stateofus.eth' % ens_name) if is_stateofus is True else ns.address(ens_name) return eth_address if eth_address else None diff --git a/test/appium/tests/__init__.py b/test/appium/tests/__init__.py index af14c88059..dd626efc8d 100644 --- a/test/appium/tests/__init__.py +++ b/test/appium/tests/__init__.py @@ -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} diff --git a/test/appium/tests/critical/chats/test_1_1_public_chats.py b/test/appium/tests/critical/chats/test_1_1_public_chats.py index bd41cf9f7d..2813b82d08 100644 --- a/test/appium/tests/critical/chats/test_1_1_public_chats.py +++ b/test/appium/tests/critical/chats/test_1_1_public_chats.py @@ -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() diff --git a/test/appium/tests/critical/onboarding/test_onboarding_flows.py b/test/appium/tests/critical/onboarding/test_onboarding_flows.py index dbbcd0eb63..7148ab3f15 100644 --- a/test/appium/tests/critical/onboarding/test_onboarding_flows.py +++ b/test/appium/tests/critical/onboarding/test_onboarding_flows.py @@ -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) diff --git a/test/appium/tests/critical/test_pairing_devices_sync.py b/test/appium/tests/critical/test_pairing_devices_sync.py index 0c04d1e2be..1cdd43c65e 100644 --- a/test/appium/tests/critical/test_pairing_devices_sync.py +++ b/test/appium/tests/critical/test_pairing_devices_sync.py @@ -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) diff --git a/test/appium/tests/critical/wallet_and_tx/test_send_tx_dapp_keycard.py b/test/appium/tests/critical/wallet_and_tx/test_send_tx_dapp_keycard.py index 044d51ecdc..75b4ecbad2 100644 --- a/test/appium/tests/critical/wallet_and_tx/test_send_tx_dapp_keycard.py +++ b/test/appium/tests/critical/wallet_and_tx/test_send_tx_dapp_keycard.py @@ -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() diff --git a/test/appium/tests/critical/wallet_and_tx/test_wallet.py b/test/appium/tests/critical/wallet_and_tx/test_wallet.py index ea2ca9aa6f..0fb836b17a 100644 --- a/test/appium/tests/critical/wallet_and_tx/test_wallet.py +++ b/test/appium/tests/critical/wallet_and_tx/test_wallet.py @@ -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() diff --git a/test/appium/tests/medium/test_browser_profile.py b/test/appium/tests/medium/test_browser_profile.py index 543598ba7b..38bb6ed325 100644 --- a/test/appium/tests/medium/test_browser_profile.py +++ b/test/appium/tests/medium/test_browser_profile.py @@ -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() diff --git a/test/appium/tests/medium/test_chats_m.py b/test/appium/tests/medium/test_chats_m.py index e27b379c4b..a59a441649 100644 --- a/test/appium/tests/medium/test_chats_m.py +++ b/test/appium/tests/medium/test_chats_m.py @@ -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): diff --git a/test/appium/tests/medium/test_deeplink_chat_share_profile.py b/test/appium/tests/medium/test_deeplink_chat_share_profile.py index 439ee142e6..a059da32e8 100644 --- a/test/appium/tests/medium/test_deeplink_chat_share_profile.py +++ b/test/appium/tests/medium/test_deeplink_chat_share_profile.py @@ -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': { diff --git a/test/appium/tests/medium/test_permissions_scan_qr.py b/test/appium/tests/medium/test_permissions_scan_qr.py index 9a6786128d..ba9acc3e44 100644 --- a/test/appium/tests/medium/test_permissions_scan_qr.py +++ b/test/appium/tests/medium/test_permissions_scan_qr.py @@ -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', }, } diff --git a/test/appium/tests/medium/test_single_device.py b/test/appium/tests/medium/test_single_device.py index c668ec1175..f11e6c8a34 100644 --- a/test/appium/tests/medium/test_single_device.py +++ b/test/appium/tests/medium/test_single_device.py @@ -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) diff --git a/test/appium/tests/medium/test_wallet_keycard_m.py b/test/appium/tests/medium/test_wallet_keycard_m.py index 9517e7e0a7..cb08d05e83 100644 --- a/test/appium/tests/medium/test_wallet_keycard_m.py +++ b/test/appium/tests/medium/test_wallet_keycard_m.py @@ -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(): diff --git a/test/appium/tests/non_func/exp.db b/test/appium/tests/non_func/exp.db new file mode 100644 index 0000000000..8d8b89dc8a Binary files /dev/null and b/test/appium/tests/non_func/exp.db differ diff --git a/test/appium/tests/upgrade/test_upgrade.py b/test/appium/tests/upgrade/test_upgrade.py index e96774f896..7f0abad890 100644 --- a/test/appium/tests/upgrade/test_upgrade.py +++ b/test/appium/tests/upgrade/test_upgrade.py @@ -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) diff --git a/test/appium/views/chat_view.py b/test/appium/views/chat_view.py index 91cb7880c5..719dccdfe7 100644 --- a/test/appium/views/chat_view.py +++ b/test/appium/views/chat_view.py @@ -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() diff --git a/test/appium/views/dbs/group/data.py b/test/appium/views/dbs/group/data.py index f8d0c9ee68..e64e9e69f2 100644 --- a/test/appium/views/dbs/group/data.py +++ b/test/appium/views/dbs/group/data.py @@ -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 = { diff --git a/test/appium/views/dbs/pairing/data.py b/test/appium/views/dbs/pairing/data.py index 915d50ced4..0bb9cb2b4c 100644 --- a/test/appium/views/dbs/pairing/data.py +++ b/test/appium/views/dbs/pairing/data.py @@ -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', diff --git a/test/appium/views/elements_templates/ment_new.png b/test/appium/views/elements_templates/ment_new.png deleted file mode 100644 index cb0488db2a..0000000000 Binary files a/test/appium/views/elements_templates/ment_new.png and /dev/null differ diff --git a/test/appium/views/elements_templates/ment_new_1.png b/test/appium/views/elements_templates/ment_new_1.png new file mode 100644 index 0000000000..e49faa52cd Binary files /dev/null and b/test/appium/views/elements_templates/ment_new_1.png differ diff --git a/test/appium/views/wallet_view.py b/test/appium/views/wallet_view.py index 8bc3fb101e..6a976ed1fe 100644 --- a/test/appium/views/wallet_view.py +++ b/test/appium/views/wallet_view.py @@ -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: diff --git a/test/appium/views/web_views/base_web_view.py b/test/appium/views/web_views/base_web_view.py index 022a197e25..4f20fafa4b 100644 --- a/test/appium/views/web_views/base_web_view.py +++ b/test/appium/views/web_views/base_web_view.py @@ -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() \ No newline at end of file