From be0f95411aaecc61a8827ad62ab18bebede378bf Mon Sep 17 00:00:00 2001 From: Marcello Stanisci Date: Thu, 15 Mar 2018 11:43:49 +0100 Subject: /proposal cb called with response code == 0. --- src/lib/merchant_api_proposal.c | 7 ++++++- src/lib/test_merchant_api_twisted.c | 36 ++++++++++++++++++++++++++++++++++++ src/lib/testing_api_cmd_proposal.c | 15 +++++++++++++-- 3 files changed, 55 insertions(+), 3 deletions(-) diff --git a/src/lib/merchant_api_proposal.c b/src/lib/merchant_api_proposal.c index 8f4f67f5..688e8ceb 100644 --- a/src/lib/merchant_api_proposal.c +++ b/src/lib/merchant_api_proposal.c @@ -136,7 +136,12 @@ handle_proposal_finished (void *cls, switch (response_code) { case 0: - break; + po->cb (po->cb_cls, + response_code, + TALER_EC_INVALID_RESPONSE, + json, + order_id); + return; case MHD_HTTP_OK: { if (GNUNET_OK != diff --git a/src/lib/test_merchant_api_twisted.c b/src/lib/test_merchant_api_twisted.c index 18ac0fe8..d1b12cc5 100644 --- a/src/lib/test_merchant_api_twisted.c +++ b/src/lib/test_merchant_api_twisted.c @@ -335,6 +335,41 @@ run (void *cls, 1, // nresult 10, // start 10), // nrows + + /**** Covering /proposal lib ****/ + + /** + * Cause the PUT /proposal callback to be called + * with a response code == 0. We achieve this by malforming + * the response body. + */ + + TALER_TESTING_cmd_malform_response + ("malform-proposal", + PROXY_MERCHANT_CONFIG_FILE), + + TALER_TESTING_cmd_proposal + ("create-proposal-0", + twister_merchant_url, + is->ctx, + 0, + "{\"max_fee\":\ + {\"currency\":\"EUR\",\ + \"value\":0,\ + \"fraction\":50000000},\ + \"order_id\":\"1\",\ + \"refund_deadline\":\"\\/Date(0)\\/\",\ + \"pay_deadline\":\"\\/Date(99999999999)\\/\",\ + \"amount\":\ + {\"currency\":\"EUR\",\ + \"value\":5,\ + \"fraction\":0},\ + \"summary\": \"merchant-lib testcase\",\ + \"products\": [ {\"description\":\"ice cream\",\ + \"value\":\"{EUR:5}\"} ] }", + NULL), + + /** * End the suite. Fixme: better to have a label for this * too, as it shows a "(null)" token on logs. @@ -342,6 +377,7 @@ run (void *cls, TALER_TESTING_cmd_end () }; + TALER_TESTING_run_with_fakebank (is, commands, fakebank_url); diff --git a/src/lib/testing_api_cmd_proposal.c b/src/lib/testing_api_cmd_proposal.c index 3c6c439c..f42dfa84 100644 --- a/src/lib/testing_api_cmd_proposal.c +++ b/src/lib/testing_api_cmd_proposal.c @@ -262,6 +262,17 @@ proposal_cb (void *cls, struct ProposalState *ps = cls; ps->po = NULL; + + if (ps->http_status != http_status) + TALER_TESTING_FAIL (ps->is); + + if (0 == ps->http_status) + { + TALER_LOG_DEBUG ("/proposal, expected 0 status code\n"); + TALER_TESTING_interpreter_next (ps->is); + return; + } + switch (http_status) { case MHD_HTTP_OK: @@ -386,8 +397,8 @@ proposal_cleanup (void *cls, ps->plo = NULL; } - GNUNET_free ((void *) ps->order_id); - GNUNET_free ((void *) ps->contract_terms); + GNUNET_free_non_null ((void *) ps->order_id); + GNUNET_free_non_null ((void *) ps->contract_terms); GNUNET_free (ps); } -- cgit v1.2.3