Skip to content

Brave Native Wallet Test Plan

Sriram edited this page Nov 11, 2021 · 2 revisions

Test plan for native Crypto Wallet on Desktop

Wallet Discovery


Browser Menu
  • Verify selecting "Wallet" from menu navigates to brave://wallet on a clean profile

    • Linux
    • Windows
    • macOS
Web UI Navigation
  • Verify navigation bar reads "Wallet" instead of "Crypto Wallets"
    • Linux
    • Windows
    • macOS
User Navigation(Wallet Routing)
  • Verify router paths work for Crypto Wallet by deep linking to wallet features

      If Wallet is not created, should be able to route to brave://wallet/onboarding or brave://wallet/restore-wallet
      • Linux
      • Windows
      • macOS

      If Wallet is locked, should be able to route to brave://wallet/unlock or `brave://wallet/restore-wallet
      • Linux
      • Windows
      • macOS

      If Wallet is unlocked,verify default route is set to brave://wallet/portfolio
      • Linux
      • Windows
      • macOS

Onboarding

New User onboarding
Wallet Creation
  • Verify selecting Wallet from menu opens brave://wallet/crypto/onboarding and provides two options for Get Started and Restore

    • Linux
    • Windows
    • macOS
  • Verify Get Started prompts to set up a password for wallet

    • Linux
    • Windows
    • macOS
  • Verify Password check works fine (Check should be for min 7 char & number & special characters)

    • Linux
    • Windows
    • macOS
  • Verify Continue button only enables when password and confirm password both match and satisfies the min criteria

    • Linux
    • Windows
    • macOS
  • Verify Backup Wallet message is shown once wallet is created

    • Linux
    • Windows
    • macOS
  • Verify Skip on Backup Wallet screen takes directly to brave://wallet/crypto/portfolio

    • Linux
    • Windows
    • macOS
Default Wallet Notification
  • Verify default wallet notification is shown above the portfolio balance when MetaMask or Deprecated Crypto Wallet Extension is set as default

    • Linux
    • Windows
    • macOS
  • Verify default wallet notification is removed when user clicks on Dismiss. Reloading the page prompts again

    • Linux
    • Windows
    • macOS
Wallet Backup
  • Verify Continue button on Backup Wallet screen only enables when user selects the checkbox

    • Linux
    • Windows
    • macOS
  • Verify Copy button on the Recovery phase screen copies the seed words to clipboard

    • Linux
    • Windows
    • macOS
  • Verify user is able to click on keywords to arrange it according to the seed word list

    • Linux
    • Windows
    • macOS
  • Verify user is auto-redirected to portfolio page once seed words are verified

    • Linux
    • Windows
    • macOS
  • Verify if the user skips backup after creating wallet, a persistent banner is shown on Portfolio/Accounts page

    • Linux
    • Windows
    • macOS
  • Verify able to dismiss the backup wallet message. Reloading page brings it back

    • Linux
    • Windows
    • macOS
MetaMask Migration
  • Verify when MM is installed, opening brave://wallet/crypto/onboarding shows an Import from MetaMask button on the welcome screen

    • Linux
    • Windows
    • macOS
  • Verify Import button only enables when you enter the MM password and enter Brave Wallet password satisfying the min password criteria

    • Linux
    • Windows
    • macOS
  • Verify an error is shown if MM password is weak and doesn't meet the Brave Wallet Password requirements when user checks the Use the same password checkbox

    • Linux
    • Windows
    • macOS
  • Verify same password can be used if previously set MM password meets the Brave Wallet password requirement

    • Linux
    • Windows
    • macOS
  • Verify once MM wallet is imported, Backup Wallet Message is shown for user to back up seed words

    • Linux
    • Windows
    • macOS
  • Verify same wallet from MM is restored when imported during onboarding

    • Linux
    • Windows
    • macOS
  • Verify all existing transactions are retained when a MM wallet is imported into Brave Wallet

    • Linux
    • Windows
    • macOS
Crypto-Wallet Migration
  • Verify when Crypto Wallets (legacy) is detected, opening brave://wallet/crypto/onboarding shows Crypto Wallet detected message

    • Linux
    • Windows
    • macOS
  • Verify continue on onboarding provides an option to import wallet from Crypto Wallets

    • Linux
    • Windows
    • macOS
  • Verify an error is shown if Crypto Wallets (legacy) password is weak and doesn't meet the Brave Wallet Password requirements when user checks the Use the same password checkbox

    • Linux
    • Windows
    • macOS
  • Verify same password can be used if previously set Crypto Wallets (legacy) password meets the Brave Wallet password requirement

    • Linux
    • Windows
    • macOS
  • Verify same wallet from Crypto Wallets (legacy) is restored when imported during onboarding

    • Linux
    • Windows
    • macOS
Account Recovery
  • Verify able to restore a MM wallet using 12 word seed code via onboarding or lock screen

    • Linux
    • Windows
    • macOS
  • Verify able to restore Brave Crypto Wallets 12 word seed code via onboarding or lock screen

    • Linux
    • Windows
    • macOS
  • Verify able to restore Brave Crypto Wallets 24 word seed code via onboarding or lock screen

    • Linux
    • Windows
    • macOS
  • Verify when pasting 24 word seed code, a new option shows up for Import from legacy Brave Crypto Wallets?

    • Linux
    • Windows
    • macOS
  • Verify only when Import from legacy Brave Crypto Wallets? option is selected when a valid 24 word seed is used, the correct wallet is restored

    • Linux
    • Windows
    • macOS
  • Verify all continuous accounts are restored when using the seed words

    • Linux
    • Windows
    • macOS

Portfolio

Graph Time scales
  • Verify default graph time line is set to 1D

    • Linux
    • Windows
    • macOS
  • Verify selecting different option on the graph shows the value accordingly

    • Linux
    • Windows
    • macOS
  • Verify hovering over the graph line shows date-timestamp and sliding along the graph updates the token balance according to the timeline

    • Linux
    • Windows
    • macOS
Assets
  • Verify ETH and BAT are listed as default assets for a wallet on Ethereum network

    • Linux
    • Windows
    • macOS
  • Verify ETH is listed as default asset for other networks

    • Linux
    • Windows
    • macOS
  • Verify a new section for NFT is added when a custom ERC-721 token is added

    • Linux
    • Windows
    • macOS
Add Assets
  • Verify able to add assets by clicking on Visible assets button

    • Linux
    • Windows
    • macOS
  • Verify selecting checkbox against a token adds the assets to the list of visible tokens

    • Linux
    • Windows
    • macOS
  • Verify able to add custom token via Add custom asset option in visible assets

    • Linux
    • Windows
    • macOS
  • Verify able to add NFT's as custom assets by adding it via Add custom asset option in visible assets

    • Linux
    • Windows
    • macOS
  • Verify adding a contract address in Add custom asset auto-populates other fields

    • Linux
    • Windows
    • macOS
  • Verify typing the token names in the search box lists all matching tokens based on search term

    • Linux
    • Windows
    • macOS
  • Verify entering a contract address in search box lists the token

    • Linux
    • Windows
    • macOS
Transactions
  • Verify clicking on the token lists all transactions relating to that particular token

    • Linux
    • Windows
    • macOS
  • Verify transaction shows if its a send/swap transaction

    • Linux
    • Windows
    • macOS
  • Verify clicking on the ... of a transaction, provides option to see the transaction on block explorer

    • Linux
    • Windows
    • macOS
  • Verify status(Submitted/Confirmed/Error/Rejected) of the transaction is shown next to each transaction

    • Linux
    • Windows
    • macOS

Network Selection

Default networks
  • Verify default network is set to Ethereum

    • Linux
    • Windows
    • macOS
  • Verify able to select between Mainnet Ethereum and Test Nets (Rinkeby/Ropsten/Goerli/Kovan and localhost) via portfolio or via Send/Swap widget

    • Linux
    • Windows
    • macOS
Custom RPC
  • Verify custom networks added via brave://settings/wallet/networks list under network selection

    • Linux
    • Windows
    • macOS
  • Verify when a custom network is selected as default network, default Token is updated according to the chain currency details

    • Linux
    • Windows
    • macOS

Widget

Buy
  • Verify able to Buy Ether works and able to fund wallet
    • Linux
    • Windows
    • macOS
Send
  • Verify able to send tokens from one wallet to other

    • Linux
    • Windows
    • macOS
  • Verify selecting preset values automatically populates the input field with appropriate value based on wallet balance

    • Linux
    • Windows
    • macOS
  • Verify Send button only enables when there is a balance in the wallet

    • Linux
    • Windows
    • macOS
  • Verify entering a value higher than wallet balance immediately shows Insufficient balance error

    • Linux
    • Windows
    • macOS
  • Verify Insufficient balance error is removed when input value is less than or equal to balance

    • Linux
    • Windows
    • macOS
  • Verify clicking on Send trigger opens the panel to submit or reject the transactions

    • Linux
    • Windows
    • macOS
  • Verify ERC-721 tokens are listed under tokens when its added via add custom tokens

    • Linux
    • Windows
    • macOS
Swap
  • Verify able to perform swap between tokens

    • Linux
    • Windows
    • macOS
  • Verify when an input value is entered, the swap conversion is automatically checked and displays the estimate value and sets default slippage tolerance value (0.5%)

    • Linux
    • Windows
    • macOS
  • Verify when input value is more than balance, Swap button changes to Insufficient balance

    • Linux
    • Windows
    • macOS
  • Verify when there is no input value for Send token but swap token has value, Swap button changes to Insufficient funds for gas

    • Linux
    • Windows
    • macOS

Accounts


Add Account (Create)
  • Verify able to add a new account via brave://wallet/crypto/accounts/add-account
    • Linux
    • Windows
    • macOS
Import Account(Secondary)
    Import via JSON
  • Verify able to import an account via JSON file

    • Linux
    • Windows
    • macOS

      Import via Private Key
  • Verify able to import a wallet using Private Key

    • Linux
    • Windows
    • macOS
Hardware Wallets
  • Verify able to connect Ledger Nano device and unlock wallets

    • Linux
    • Windows
    • macOS
  • Verify able to connect Trezor device and unlock wallets

    • Linux
    • Windows
    • macOS
  • Verify when device is not readable or not able to access the app, shows error on import screen

    • Linux
    • Windows
    • macOS
  • Verify able to perform a transaction via hardware wallet account while connected

    • Linux
    • Windows
    • macOS

Crypto Panel

Onboarding
  • Verify clicking on get started on panel opens a new tab and load Wallet onboarding page
    • Linux
    • Windows
    • macOS
Login
  • Verify able to unlock the wallet when its locked via the panel
    • Linux
    • Windows
    • macOS
User Navigation(Wallet routing)
    Wallet created
  • Verify when wallet is created, clicking on expand button loads the wallet page in a new tab

    • Linux
    • Windows
    • macOS
  • Verify when clicking on the + symbol on accounts, opens a new tab and load brave://wallet/crypto/accounts/add-account

    • Linux
    • Windows
    • macOS

      Wallet not created
  • Verify when wallet is not created, clicking on Get started or Restore opens a new tab and loads the onboarding page or restore page depending on selection

    • Linux
    • Windows
    • macOS
Default State and Interactions
  • Verify closing and reopening the panel retains the states (lock/unlocked)

    • Linux
    • Windows
    • macOS
  • Verify selected account is retained when the panel is closed and reopened

    • Linux
    • Windows
    • macOS
  • Verify changing the account on wallet page also updates the panel and vice-versa

    • Linux
    • Windows
    • macOS
  • Verify hovering over panel elements shows correct tool-tips

    • Linux
    • Windows
    • macOS
  • Verify transaction state (approve/reject/sign) are all retained when the panel is closed and reopened

    • Linux
    • Windows
    • macOS
  • Verify when a Dapp is trying to connect panel is automatically opened for connecting to the site

    • Linux
    • Windows
    • macOS
  • Verify when connected to a Dapp, clicking on the connected button provides option to disconnect from the Dapp

    • Linux
    • Windows
    • macOS
  • Verify panel provides option to switch networks

    • Linux
    • Windows
    • macOS
Web3 Connection
  • Verify any transaction Send/Swap/Sign all trigger the panel to open
    • Linux
    • Windows
    • macOS
Wallet Auto-lock
  • Verify wallet auto-locks itself after the specified time in settings (default 5)

    • Linux
    • Windows
    • macOS
  • Verify wallet remains unlocked if the user is interacting with the wallet or panel and the auto-lock time is passed

    • Linux
    • Windows
    • macOS
Wallet Unlock
  • Verify able to unlock the wallet via panel
    • Linux
    • Windows
    • macOS

Dapp Detection

Single Account detection
  • Verify when there is only one account in a wallet, connecting to Dapp opens panels and the account is selected by default to connect

    • Linux
    • Windows
    • macOS
  • Verify deselecting an account disables the next button

    • Linux
    • Windows
    • macOS
Multiple Account detection
  • Verify all accounts are listed in panel when trying to connect to a Dapp

    • Linux
    • Windows
    • macOS
  • Verify which ever account is set as default selection in page/panel is the one that is auto-selected when connecting to Dapp

    • Linux
    • Windows
    • macOS
  • Verify able to select multiple accounts and connect to Dapp

    • Linux
    • Windows
    • macOS

Transactions

Type-0 Transactions
  • Verify Type-0 transaction is only possible when a site requests it
    • Linux
    • Windows
    • macOS
Type-2 Transactions (EIP-1559)
  • Verify by default all transactions are Type-2 that is done via Brave Wallet
    • Linux
    • Windows
    • macOS
Single Transactions
  • Verify when there is a single transaction the panel loads the details correctly and able to submit the transaction
    • Linux
    • Windows
    • macOS
Multiple Transactions
  • Verify multiple transactions are listed in the panel

    • Linux
    • Windows
    • macOS
  • Verify you can cycle through the list of pending transactions by clicking on the next

    • Linux
    • Windows
    • macOS
  • Verify you are able to reject multiple transactions at once by clicking Reject "x" transactions

    • Linux
    • Windows
    • macOS

Miscellaneous Checks

Proxy Calls to backend
  • Verify no unnecessary calls are made to backend system via proxy server when wallet is not in use
    • Linux
    • Windows
    • macOS
Phishing detection

TBD

Extensions Comparison

TBD

window.ethereum access via Private/Tor/Guest window
  • Verify window.ethereum is not available for Private/Tor/Guest windows

    • Linux
    • Windows
    • macOS
  • Verify visiting a Dapp on Private/Tor/Guest window doesn't detect any wallet (when enabled).

    • Linux
    • Windows
    • macOS
Wallet Settings
  • Verify brave://settings/wallet loads Wallet settings

    • Linux
    • Windows
    • macOS
  • Verify clicking on settings on the default wallet notification loads brave://settings/wallet in a new tab

    • Linux
    • Windows
    • macOS
  • Verify selecting Brave Wallet as default DApp provider automatically removes the default wallet notification on the wallet page

    • Linux
    • Windows
    • macOS
  • Verify default auto-lock value is set to 5 mins in brave://settings/wallet

    • Linux
    • Windows
    • macOS
  • Verify default auto-lock time doesn't reset when page is reloaded after changing the value

    • Linux
    • Windows
    • macOS
  • Verify disabling Ethereum under brave://settings/content/ethereum disables access to API

    • Linux
    • Windows
    • macOS
Dark/Light Theme Support
  • Verify all UI elements respect light theme for browser

    • Linux
    • Windows
    • macOS
  • Verify all UI elements respect dark theme for browser

    • Linux
    • Windows
    • macOS