Do not expose reserve priv trait if the user
created a reserve specifying the wire transfer
subject explicitly.
This commit is contained in:
Marcello Stanisci 2018-12-12 13:42:00 +01:00
parent 81d1b39343
commit 220e00696b
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
2 changed files with 63 additions and 13 deletions

View File

@ -135,7 +135,6 @@ static char *auditor_url;
EXCHANGE_ACCOUNT_NO, USER_LOGIN_NAME, USER_LOGIN_PASS, \
subject, exchange_url)
/**
* Main function that will tell the interpreter what commands to
* run.
@ -690,13 +689,17 @@ run (void *cls,
"payback-create-reserve-1",
"EUR:5",
MHD_HTTP_OK),
TALER_TESTING_cmd_revoke ("revoke-1", MHD_HTTP_OK,
/* Make coin invalid */
TALER_TESTING_cmd_revoke ("revoke-1",
MHD_HTTP_OK,
"payback-withdraw-coin-1",
CONFIG_FILE),
TALER_TESTING_cmd_payback ("payback-1", MHD_HTTP_OK,
"payback-withdraw-coin-1", "EUR:5"),
/* Refund coin to bank account */
TALER_TESTING_cmd_payback ("payback-1",
MHD_HTTP_OK,
"payback-withdraw-coin-1",
"EUR:5"),
/* Check the money is back with the reserve */
TALER_TESTING_cmd_status ("payback-reserve-status-1",
@ -712,8 +715,9 @@ run (void *cls,
"EUR:1",
MHD_HTTP_OK),
/* This withdrawal will test the logic to create
* a "payback" element to insert into the reserve's history.
/**
* This withdrawal will test the logic to create a "payback"
* element to insert into the reserve's history.
*/
TALER_TESTING_cmd_withdraw_amount
("payback-withdraw-coin-2-over",
@ -888,6 +892,37 @@ run (void *cls,
TALER_TESTING_cmd_end ()
};
struct TALER_TESTING_Command reserve_open_close[] = {
#define CONSTANT_KEY \
"09QGYPEKNHBACK135BNXZFHA0YTQXT1KJDRVXF4J822G99AYNQ8G"
TALER_TESTING_cmd_check_bank_empty
("reserve-open-close-empty"),
CMD_TRANSFER_TO_EXCHANGE_SUBJECT
("reserve-open-close-key",
"EUR:20",
CONSTANT_KEY),
TALER_TESTING_cmd_exec_wirewatch
("reserve-open-close-wirewatch",
CONFIG_FILE_EXPIRE_RESERVE_NOW),
TALER_TESTING_cmd_status ("reserve-open-close-status",
is->exchange,
"reserve-open-close-key",
"EUR:0",
MHD_HTTP_OK),
/* Wire back to the bank */
TALER_TESTING_cmd_exec_aggregator
("reserve-open-close-aggregation",
CONFIG_FILE_EXPIRE_RESERVE_NOW),
TALER_TESTING_cmd_end ()
};
struct TALER_TESTING_Command commands[] = {
TALER_TESTING_cmd_batch ("wire",
@ -914,6 +949,11 @@ run (void *cls,
TALER_TESTING_cmd_batch ("payback",
payback),
#if 0
TALER_TESTING_cmd_batch ("reserve-open-close",
reserve_open_close),
#endif
/**
* End the suite. Fixme: better to have a label for this
* too, as it shows a "(null)" token on logs.

View File

@ -405,7 +405,6 @@ fakebank_transfer_cleanup (void *cls,
GNUNET_free (fts);
}
/**
* Offer internal data from a "fakebank transfer" CMD to other
* commands.
@ -423,20 +422,31 @@ fakebank_transfer_traits (void *cls,
unsigned int index)
{
struct FakebankTransferState *fts = cls;
struct TALER_TESTING_Trait traits[] = {
TALER_TESTING_make_trait_reserve_priv
(0, &fts->reserve_priv),
#define MANDATORY 6
struct TALER_TESTING_Trait traits[MANDATORY + 1] = {
TALER_TESTING_MAKE_TRAIT_DEBIT_ACCOUNT
(&fts->debit_account_no),
TALER_TESTING_MAKE_TRAIT_CREDIT_ACCOUNT
(&fts->credit_account_no),
TALER_TESTING_make_trait_url (0, fts->exchange_url),
TALER_TESTING_make_trait_transfer_subject (0, fts->subject),
TALER_TESTING_MAKE_TRAIT_ROW_ID (&fts->serial_id),
TALER_TESTING_make_trait_amount_obj (0, &fts->amount),
TALER_TESTING_trait_end ()
};
/**
* The user gave explicit subject,
* there must be NO reserve priv. */
if (NULL != fts->subject)
traits[MANDATORY - 1] =
TALER_TESTING_make_trait_transfer_subject (0,
fts->subject);
/* A reserve priv must exist if no subject was given. */
else
traits[MANDATORY - 1] = TALER_TESTING_make_trait_reserve_priv
(0, &fts->reserve_priv),
traits[MANDATORY] = TALER_TESTING_trait_end ();
return TALER_TESTING_get_trait (traits,
ret,
trait,