Skip to content

Commit

Permalink
fixed some tests
Browse files Browse the repository at this point in the history
-added proper appflags;
-cleaned commented code;
-updated golden snapshots for all devices;
  • Loading branch information
rduarte83 committed Dec 18, 2023
1 parent 190086e commit b6c5672
Show file tree
Hide file tree
Showing 113 changed files with 18 additions and 192 deletions.
17 changes: 8 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,21 @@ APPVERSION = "$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)"
# Application source files
APP_SOURCE_PATH += src

# APPLICATION_FLAG_BOLOS_SETTINGS
#ifeq ($(TARGET_NAME), TARGET_NANOX)
#APP_LOAD_PARAMS=--appFlags 0x200
#else
#APP_LOAD_PARAMS=--appFlags 0x000
#endif


# Application icons following guidelines:
# https://developers.ledger.com/docs/embedded-app/design-requirements/#device-icon

ICON_NANOS = icons/nanos_app_phantasma.gif #16x16
ICON_NANOSP = icons/nanox_app_phantasma.gif #14x14
ICON_NANOX = icons/nanox_app_phantasma.gif #14x14
ICON_STAX = icons/stax_app_phantasma.gif #32x32

# APPLICATION_FLAG_BOLOS_SETTING
# Correctly implemented apps should not set anything in APP_LOAD_PARAMS anymore
ifeq ($(TARGET_NAME), TARGET_NANOX)
APP_FLAGS_APP_LOAD_PARAMS = 0x200
else
APP_FLAGS_APP_LOAD_PARAMS = 0x000
endif

# Application allowed derivation curves.
# Possibles curves are: secp256k1, secp256r1, ed25519 and bls12381g1
# If your app needs it, you can specify multiple curves by using:
Expand Down
22 changes: 0 additions & 22 deletions src/address.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,28 +31,6 @@
#include "transaction/types.h"

bool address_from_pubkey(const uint8_t public_key[static 65], uint8_t* out, size_t out_len) {
/*uint8_t address[32] = {0};
cx_sha3_t keccak256;
if (out_len < ADDRESS_LEN) {
return false;
}
if (cx_keccak_init_no_throw(&keccak256, 256) != CX_OK) {
return false;
}
if (cx_hash_no_throw((cx_hash_t *) &keccak256,
CX_LAST,
public_key + 1,
64,
address,
sizeof(address)) != CX_OK) {
return false;
}
memmove(out, address + sizeof(address) - ADDRESS_LEN, ADDRESS_LEN);*/

uint8_t address_hex[34] = {0};
address_hex[0] = 0x01;
address_hex[1] = 0x00;
Expand Down
3 changes: 1 addition & 2 deletions src/crypto.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ int crypto_derive_private_key(cx_ecfp_private_key_t *private_key,
raw_private_key,
NULL);

if (bip32_nt == CX_INTERNAL_ERROR) return -1; // THROW(-1);
if (bip32_nt == CX_INTERNAL_ERROR) return -1;

// Initialize new private_key from raw
cx_err_t privKey_nt =
Expand Down Expand Up @@ -124,7 +124,6 @@ int crypto_sign_message(uint16_t *resp_word) {
*resp_word = err;

explicit_bzero(&private_key, sizeof(private_key));
// PRINTF("Signature: %.*H\n", sig_len, G_context.tx_info.signature);

if (err != CX_OK) {
return -1;
Expand Down
27 changes: 1 addition & 26 deletions src/handler/sign_tx.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,7 @@ int handler_sign_tx(buffer_t *cdata, uint8_t chunk, bool more) {
G_context.tx_info.raw_tx_len += cdata->size;

size_t resp_size = G_context.tx_info.raw_tx_len;
/*
size_t offset = 0;
if (G_context.tx_info.raw_tx_len > IO_APDU_BUFFER_SIZE - 2) {
offset = G_context.tx_info.raw_tx_len - (IO_APDU_BUFFER_SIZE - 2);
}
*/

if (more) {
// more APDUs with transaction part are expected.
// Send a SW_OK to signal that we have received the chunk
Expand All @@ -83,7 +78,6 @@ int handler_sign_tx(buffer_t *cdata, uint8_t chunk, bool more) {
parser_status_e status = transaction_deserialize(&buf, &G_context.tx_info.transaction);
PRINTF("Parsing status: %d.\n", status);
if (status != PARSING_OK) {
// return io_send_sw(SW_TX_PARSING_FAIL);
uint8_t resp[1] = {0};
resp[0] = status;
return io_send_response_pointer(resp, sizeof(resp), SW_TX_PARSING_FAIL);
Expand All @@ -96,25 +90,6 @@ int handler_sign_tx(buffer_t *cdata, uint8_t chunk, bool more) {
} else {
return ui_display_transaction();
}

/*cx_sha3_t keccak256;
if (cx_keccak_init_no_throw(&keccak256, 256) != CX_OK) {
return io_send_sw(SW_TX_HASH_FAIL);
}
if (cx_hash_no_throw((cx_hash_t *) &keccak256,
CX_LAST,
G_context.tx_info.raw_tx,
G_context.tx_info.raw_tx_len,
G_context.tx_info.m_hash,
sizeof(G_context.tx_info.m_hash)) != CX_OK) {
return io_send_sw(SW_TX_HASH_FAIL);
}
PRINTF("Hash: %.*H\n", sizeof(G_context.tx_info.m_hash), G_context.tx_info.m_hash);
return ui_display_transaction();*/
}
}

Expand Down
15 changes: 0 additions & 15 deletions src/helper/send_reponse.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,28 +31,13 @@ int helper_send_response_pubkey() {
uint8_t resp[PUBKEY_LEN] = {0};
size_t offset = 0;

/*resp[offset++] = PUBKEY_LEN;
memmove(resp + offset, G_context.pk_info.raw_public_key, PUBKEY_LEN);
offset += PUBKEY_LEN;
resp[offset++] = CHAINCODE_LEN;
memmove(resp + offset, G_context.pk_info.chain_code, CHAINCODE_LEN);
offset += CHAINCODE_LEN;*/

memmove(resp + offset, G_context.pk_info.raw_public_key, PUBKEY_LEN);
offset += PUBKEY_LEN;

return io_send_response_pointer(resp, offset, SW_OK);
}

int helper_send_response_sig() {
/*uint8_t resp[1 + MAX_DER_SIG_LEN + 1] = {0};
size_t offset = 0;
resp[offset++] = G_context.tx_info.signature_len;
memmove(resp + offset, G_context.tx_info.signature, G_context.tx_info.signature_len);
offset += G_context.tx_info.signature_len;
resp[offset++] = (uint8_t) G_context.tx_info.v;*/

return io_send_response_pointer(G_context.tx_info.signature,
G_context.tx_info.signature_len,
SW_OK);
Expand Down
45 changes: 1 addition & 44 deletions src/transaction/deserialize.c
Original file line number Diff line number Diff line change
Expand Up @@ -497,47 +497,4 @@ parser_status_e transaction_deserialize(buffer_t *buf, transaction_t *tx) {
}

return PARSING_OK;
}

/*
parser_status_e transaction_deserialize(buffer_t *buf, transaction_t *tx) {
if (buf->size > MAX_TX_LEN) {
return WRONG_LENGTH_ERROR;
}
// nonce
if (!buffer_read_u64(buf, &tx->nonce, BE)) {
return NONCE_PARSING_ERROR;
}
tx->to = (uint8_t *) (buf->ptr + buf->offset);
// TO address
if (!buffer_seek_cur(buf, ADDRESS_LEN)) {
return TO_PARSING_ERROR;
}
// amount value
if (!buffer_read_u64(buf, &tx->value, BE)) {
return VALUE_PARSING_ERROR;
}
// length of memo
if (!buffer_read_varint(buf, &tx->memo_len) && tx->memo_len > MAX_MEMO_LEN) {
return MEMO_LENGTH_ERROR;
}
// memo
tx->memo = (uint8_t *) (buf->ptr + buf->offset);
if (!buffer_seek_cur(buf, tx->memo_len)) {
return MEMO_PARSING_ERROR;
}
if (!transaction_utils_check_encoding(tx->memo, tx->memo_len)) {
return MEMO_ENCODING_ERROR;
}
return (buf->offset == buf->size) ? PARSING_OK : WRONG_LENGTH_ERROR;
}
*/
}
27 changes: 0 additions & 27 deletions src/transaction/serialize.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,32 +52,5 @@ int transaction_serialize(const transaction_t *tx, uint8_t *out, size_t out_len)
memmove(out + offset, tx->payload, tx->payload_len);
offset += tx->payload_len;

/*if (8 + ADDRESS_LEN + 8 + varint_size(tx->memo_len) + tx->memo_len > out_len) {
return -1;
}*/

// nonce
/*write_u64_be(out, offset, tx->nonce);
offset += 8;
// to
memmove(out + offset, tx->to, ADDRESS_LEN);
offset += ADDRESS_LEN;
// value
write_u64_be(out, offset, tx->value);
offset += 8;
// memo length
int varint_len = varint_write(out, offset, tx->memo_len);
if (varint_len < 0) {
return -1;
}
offset += varint_len;
// memo
memmove(out + offset, tx->memo, tx->memo_len);
offset += tx->memo_len;*/

return (int) offset;
}
3 changes: 0 additions & 3 deletions src/ui/action/validate.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,8 @@ void validate_pubkey(bool choice) {
} else {
io_send_sw(SW_DENY);
}

// ui_menu_main();
}


void validate_transaction(bool choice) {
if (choice) {
G_context.state = STATE_APPROVED;
Expand Down
21 changes: 2 additions & 19 deletions src/ui/bagl_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ static char g_address[240];
static char g_token[TOKEN_LEN];
static char g_contract[TOKEN_LEN];
static char g_contract_method[CONTRACT_METHOD_LEN];
// static char g_contract_method_args[64];
static char g_nexus[NEXUS_LEN];
static char g_chain[CHAIN_LEN];
static char g_txlength[TXLENGTH_LEN];
Expand Down Expand Up @@ -222,21 +221,14 @@ int ui_display_transaction() {
format_u64(g_scriptlength, sizeof(g_scriptlength), G_context.tx_info.transaction.script_len);

memset(g_amount, 0, sizeof(g_amount));
// char amount[255] = {0};
memmove(g_amount, G_context.tx_info.transaction.value, G_context.tx_info.transaction.value_len);
// snprintf(g_amount, sizeof(g_amount), "%.*s", sizeof(amount), amount);
// PRINTF("Amount: %s\n", g_amount);

memset(g_address, 0, sizeof(g_address));
memmove(g_address, G_context.tx_info.transaction.to, G_context.tx_info.transaction.to_len);
// g_address[0] = 'A';
// format_u64(g_address + 1, sizeof(g_address) - 1, G_context.tx_info.transaction.to_len);


memset(g_token, 0, sizeof(g_token));
memmove(g_token, G_context.tx_info.transaction.token, G_context.tx_info.transaction.token_len);
// g_token[0] = 'T';
// format_u64(g_token + 1, sizeof(g_token) - 1, G_context.tx_info.transaction.token_len);


g_validate_callback = &ui_action_validate_transaction;

ux_flow_init(0, ux_display_transaction_flow, NULL);
Expand Down Expand Up @@ -291,9 +283,6 @@ int ui_display_custom_transaction() {
return io_send_sw(SW_BAD_STATE);
}

// memset(g_txlength, 0, sizeof(g_txlength));
// format_u64(g_txlength, sizeof(g_txlength), G_context.tx_info.transaction.allow_gas.args_len);

memset(g_nexus, 0, sizeof(g_nexus));
memmove(g_nexus, G_context.tx_info.transaction.nexus, G_context.tx_info.transaction.nexus_len);

Expand All @@ -315,12 +304,6 @@ int ui_display_custom_transaction() {
(uint8_t *) G_context.tx_info.transaction.output_args,
G_context.tx_info.transaction.output_args_len);

// memset(g_scriptlength, 0, sizeof(g_scriptlength));
// format_u64(g_scriptlength, sizeof(g_scriptlength), G_context.tx_info.transaction.script_len);

// memset(g_address, 0, sizeof(g_address));
// memmove(g_address, G_context.tx_info.transaction.to, G_context.tx_info.transaction.to_len);

// TODO: Needs to show args from the contract call.

g_validate_callback = &ui_action_validate_transaction;
Expand Down
2 changes: 0 additions & 2 deletions src/ui/menu_nbgl.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,6 @@ static char INFO_ADDRESS[ADDRESS_LEN];
static const char* const INFO_TYPES[] = {"Version", "Developer", "Address"};
static const char* const INFO_CONTENTS[] = {APPVERSION, "Phantasma Team", INFO_ADDRESS};

// static nbgl_layoutSwitch_t switches[SETTINGS_SWITCHES_NB] = {0};

static void build_first_page(nbgl_pageContent_t* content) {
content->type = INFOS_LIST;
content->infosList.nbInfos = 3;
Expand Down
4 changes: 0 additions & 4 deletions src/ui/nbgl_display_address.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,6 @@ int ui_display_address() {
return io_send_sw(SW_DISPLAY_ADDRESS_FAIL);
}

// if (format_hex(address, sizeof(address), g_address, sizeof(g_address)) == -1) {
// return io_send_sw(SW_DISPLAY_ADDRESS_FAIL);
// }

memmove(g_address, address, ADDRESS_LEN);

nbgl_useCaseReviewStart(&C_app_phantasma_64px,
Expand Down
8 changes: 0 additions & 8 deletions src/ui/nbgl_display_transaction.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,17 +140,9 @@ int ui_display_transaction() {
memset(g_amount, 0, sizeof(g_amount));
memmove(g_amount, G_context.tx_info.transaction.value, G_context.tx_info.transaction.value_len);

// snprintf(g_amount, sizeof(g_amount), "%.*s", sizeof(amount), amount);

memset(g_address, 0, sizeof(g_address));
memmove(g_address, G_context.tx_info.transaction.to, G_context.tx_info.transaction.to_len);

// if (format_hex(G_context.tx_info.transaction.to, ADDRESS_LEN, g_address, sizeof(g_address))
// ==
// -1) {
// return io_send_sw(SW_DISPLAY_ADDRESS_FAIL);
// }

// Start review
nbgl_useCaseReviewStart(&C_app_phantasma_64px,
"Review transaction\nto send Phantasma",
Expand Down
2 changes: 1 addition & 1 deletion tests/application_client/boilerplate_command_sender.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def sign_tx(self, path: str, transaction: bytes) -> Generator[None, None, None]:
p2=P2.P2_MORE,
data=msg)
idx += 1

with self.backend.exchange_async(cla=CLA,
ins=InsType.SIGN_TX,
p1=idx,
Expand Down
Binary file modified tests/snapshots/nanosp/test_app_mainmenu/00000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_app_mainmenu/00001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_app_mainmenu/00002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_app_mainmenu/00003.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00000.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00002.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00003.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00004.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00005.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00006.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00007.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00008.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_long_tx/00009.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00000.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00001.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00002.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00003.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00004.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00005.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00006.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00007.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00008.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00009.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_refused/00010.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00000.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00001.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00002.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00003.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00004.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00005.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00006.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00007.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00008.png
Binary file modified tests/snapshots/nanosp/test_sign_tx_short_tx/00009.png
Binary file modified tests/snapshots/nanox/test_app_mainmenu/00000.png
Binary file modified tests/snapshots/nanox/test_app_mainmenu/00001.png
Binary file modified tests/snapshots/nanox/test_app_mainmenu/00002.png
Binary file modified tests/snapshots/nanox/test_app_mainmenu/00003.png
Binary file modified tests/snapshots/nanox/test_get_public_key_confirm_refused/00002.png
Binary file modified tests/snapshots/nanox/test_get_public_key_confirm_refused/00005.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00000.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00001.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00002.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00003.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00004.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00005.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00006.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00007.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00008.png
Binary file added tests/snapshots/nanox/test_sign_tx_long_tx/00009.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00000.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00001.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00002.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00003.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00004.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00005.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00006.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00007.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00008.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00009.png
Binary file added tests/snapshots/nanox/test_sign_tx_refused/00010.png
Binary file added tests/snapshots/stax/test_app_mainmenu/00002.png
14 changes: 4 additions & 10 deletions tests/test_app_mainmenu.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from ragger.navigator import NavInsID, NavIns
from ragger.navigator import NavInsID

from utils import ROOT_SCREENSHOT_PATH

Expand All @@ -14,16 +14,10 @@ def test_app_mainmenu(firmware, navigator, test_name):
]
else:
instructions = [
# Go to settings menu.
NavInsID.USE_CASE_HOME_SETTINGS,
NavInsID.USE_CASE_SETTINGS_NEXT,
NavIns(NavInsID.TOUCH, (200, 113)),
NavIns(NavInsID.TOUCH, (200, 261)),
NavInsID.USE_CASE_CHOICE_CONFIRM,
NavInsID.USE_CASE_SETTINGS_NEXT,
NavIns(NavInsID.TOUCH, (200, 261)),
NavIns(NavInsID.TOUCH, (200, 261)),
NavInsID.USE_CASE_CHOICE_REJECT,
NavInsID.USE_CASE_SETTINGS_MULTI_PAGE_EXIT
# Go back to main menu.
NavInsID.USE_CASE_SETTINGS_SINGLE_PAGE_EXIT,
]
navigator.navigate_and_compare(ROOT_SCREENSHOT_PATH, test_name, instructions,
screen_change_before_first_instruction=False)

0 comments on commit b6c5672

Please sign in to comment.