From e6b2cf30c554057b5d19b0d7388d2aaaec75828a Mon Sep 17 00:00:00 2001 From: Charles-Edouard de la Vergne Date: Wed, 3 Apr 2024 18:48:11 +0200 Subject: [PATCH] Port 'contract_data_warning.test' from 'zemu' to 'ragger' --- .../nanos/test_legacy_contract}/00000.png | Bin .../nanos/test_legacy_contract}/00001.png | Bin .../nanos/test_legacy_contract}/00002.png | Bin .../snapshots/nanosp/test_legacy_contract | 1 + .../nanox/test_legacy_contract}/00000.png | Bin .../nanox/test_legacy_contract}/00001.png | Bin tests/ragger/test_sign.py | 25 ++++++++++++++++++ tests/zemu/src/contract_data_warning.test.js | 23 ---------------- 8 files changed, 26 insertions(+), 23 deletions(-) rename tests/{zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanos/test_legacy_contract}/00000.png (100%) rename tests/{zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanos/test_legacy_contract}/00001.png (100%) rename tests/{zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanos/test_legacy_contract}/00002.png (100%) create mode 120000 tests/ragger/snapshots/nanosp/test_legacy_contract rename tests/{zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanox/test_legacy_contract}/00000.png (100%) rename tests/{zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled => ragger/snapshots/nanox/test_legacy_contract}/00001.png (100%) delete mode 100644 tests/zemu/src/contract_data_warning.test.js diff --git a/tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png b/tests/ragger/snapshots/nanos/test_legacy_contract/00000.png similarity index 100% rename from tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png rename to tests/ragger/snapshots/nanos/test_legacy_contract/00000.png diff --git a/tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png b/tests/ragger/snapshots/nanos/test_legacy_contract/00001.png similarity index 100% rename from tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png rename to tests/ragger/snapshots/nanos/test_legacy_contract/00001.png diff --git a/tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png b/tests/ragger/snapshots/nanos/test_legacy_contract/00002.png similarity index 100% rename from tests/zemu/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png rename to tests/ragger/snapshots/nanos/test_legacy_contract/00002.png diff --git a/tests/ragger/snapshots/nanosp/test_legacy_contract b/tests/ragger/snapshots/nanosp/test_legacy_contract new file mode 120000 index 0000000..ab2ec19 --- /dev/null +++ b/tests/ragger/snapshots/nanosp/test_legacy_contract @@ -0,0 +1 @@ +../nanox/test_legacy_contract \ No newline at end of file diff --git a/tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png b/tests/ragger/snapshots/nanox/test_legacy_contract/00000.png similarity index 100% rename from tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png rename to tests/ragger/snapshots/nanox/test_legacy_contract/00000.png diff --git a/tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png b/tests/ragger/snapshots/nanox/test_legacy_contract/00001.png similarity index 100% rename from tests/zemu/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png rename to tests/ragger/snapshots/nanox/test_legacy_contract/00001.png diff --git a/tests/ragger/test_sign.py b/tests/ragger/test_sign.py index bb081e8..efc6c44 100644 --- a/tests/ragger/test_sign.py +++ b/tests/ragger/test_sign.py @@ -201,6 +201,31 @@ def test_legacy_chainid2(firmware: Firmware, common(firmware, backend, navigator, tx_params, test_name, BIP32_PATH2) +# Legacy Zemu contract data warning: Try to blind sign with setting disabled +def test_legacy_contract(firmware: Firmware, + backend: BackendInterface, + navigator: Navigator, + test_name: str): + + buffer = bytes.fromhex("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080") + app_client = EthAppClient(backend) + + try: + with app_client.send_raw(0xe0, 0x04, 0x00, 0x00, buffer): + if firmware.device.startswith("nano"): + # No screens recorded on Stax + moves = [ + NavInsID.RIGHT_CLICK, + NavInsID.BOTH_CLICK + ] + navigator.navigate_and_compare(ROOT_SNAPSHOT_PATH, + test_name, + moves) + + except ExceptionRAPDU as e: + assert e.status == StatusWord.INVALID_DATA + + def test_1559(firmware: Firmware, backend: BackendInterface, navigator: Navigator): tx_params: dict = { "nonce": NONCE, diff --git a/tests/zemu/src/contract_data_warning.test.js b/tests/zemu/src/contract_data_warning.test.js deleted file mode 100644 index c3b06e2..0000000 --- a/tests/zemu/src/contract_data_warning.test.js +++ /dev/null @@ -1,23 +0,0 @@ -import 'core-js/stable'; -import 'regenerator-runtime/runtime'; -import { TransportStatusError } from "@ledgerhq/errors"; -import { waitForAppScreen, zemu, nano_models } from './test.fixture'; -import Zemu from '@zondax/zemu'; - -nano_models.forEach(function(model) { - test('[Nano ' + model.letter + '] Try to blind sign with setting disabled', zemu(model, async (sim, eth) => { - // we can't use eth.signTransaction because it detects that contract data is disabled and fails early - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080", "hex"); - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); - - await Zemu.sleep(1000); - await waitForAppScreen(sim); - let clicks; - if (model.letter === 'S') clicks = [1, 0]; - else clicks = [0]; - await sim.navigateAndCompareSnapshots('.', model.name + '_try_to_blind_sign_with_setting_disabled', clicks); - })); -});