test for nfc share to pushtx
This commit is contained in:
parent
947ec35d68
commit
81f7af1857
@ -329,7 +329,7 @@ NFCToolsMenu = [
|
||||
MenuItem('Verify Address', f=nfc_address_verify),
|
||||
MenuItem('File Share', f=nfc_share_file),
|
||||
MenuItem('Import Multisig', f=import_multisig_nfc),
|
||||
MenuItem('NFC Push Tx', f=nfc_pushtx_file, predicate=lambda: settings.get("ptxurl", False)),
|
||||
MenuItem('Push Transaction', f=nfc_pushtx_file, predicate=lambda: settings.get("ptxurl", False)),
|
||||
]
|
||||
|
||||
AdvancedNormalMenu = [
|
||||
@ -344,7 +344,7 @@ AdvancedNormalMenu = [
|
||||
f=drv_entro_start),
|
||||
MenuItem("View Identity", f=view_ident),
|
||||
MenuItem("Temporary Seed", menu=make_ephemeral_seed_menu),
|
||||
NonDefaultMenuItem('NFC PushTx', 'ptxurl', menu=pushtx_setup_menu),
|
||||
NonDefaultMenuItem('NFC Push Tx', 'ptxurl', menu=pushtx_setup_menu),
|
||||
MenuItem('Paper Wallets', f=make_paper_wallet),
|
||||
ToggleMenuItem('Enable HSM', 'hsmcmd', ['Default Off', 'Enable'],
|
||||
story=("Enable HSM? Enables all user management commands, and other HSM-only USB commands. "
|
||||
|
||||
@ -1574,6 +1574,13 @@ def nfc_write(request, needs_nfc, is_q1):
|
||||
except:
|
||||
return doit_usb
|
||||
|
||||
@pytest.fixture()
|
||||
def enable_nfc(needs_nfc, sim_exec, settings_set):
|
||||
def doit():
|
||||
settings_set('nfc', 1)
|
||||
sim_exec('import nfc; nfc.NFCHandler.startup()')
|
||||
return doit
|
||||
|
||||
@pytest.fixture()
|
||||
def scan_a_qr(sim_exec, is_q1):
|
||||
# simulate a QR being scanned
|
||||
|
||||
@ -500,4 +500,47 @@ def test_nfc_pushtx(num_outs, chain, sim_exec, settings_set, settings_remove,
|
||||
settings_remove('ptxurl')
|
||||
settings_set('chain', 'XTN')
|
||||
|
||||
|
||||
def test_share_by_pushtx(goto_home, cap_story, pick_menu_item, settings_set, settings_remove,
|
||||
microsd_path, cap_menu, has_qwerty, cap_screen,
|
||||
press_cancel, enable_nfc, nfc_block4rf, nfc_read):
|
||||
|
||||
enable_nfc()
|
||||
|
||||
fake_txn = b'\x02\0\0\0\0\0\0' + (b'Ab'*500)
|
||||
|
||||
prefix = 'http://10.0.0.10/pushtx#'
|
||||
settings_set('ptxurl', prefix)
|
||||
|
||||
fname = "fake-nfc.txn"
|
||||
with open(microsd_path(fname), "wb") as f:
|
||||
f.write(fake_txn)
|
||||
|
||||
goto_home()
|
||||
pick_menu_item("Advanced/Tools")
|
||||
pick_menu_item('NFC Tools')
|
||||
pick_menu_item('Push Transaction')
|
||||
time.sleep(0.1)
|
||||
pick_menu_item(fname)
|
||||
time.sleep(0.1)
|
||||
|
||||
# expect NFC animation
|
||||
nfc_block4rf()
|
||||
|
||||
if has_qwerty:
|
||||
scr = cap_screen()
|
||||
assert 'File:' in scr
|
||||
assert fname in scr
|
||||
|
||||
contents = nfc_read()
|
||||
|
||||
press_cancel()
|
||||
|
||||
# hacky quick check
|
||||
from base64 import urlsafe_b64encode
|
||||
|
||||
assert b't='+urlsafe_b64encode(fake_txn).rstrip(b'=')+b'&c=' in contents
|
||||
|
||||
settings_remove('ptxurl')
|
||||
|
||||
# EOF
|
||||
|
||||
Loading…
Reference in New Issue
Block a user