diff options
author | Marcello Stanisci <stanisci.m@gmail.com> | 2018-03-15 11:43:49 +0100 |
---|---|---|
committer | Marcello Stanisci <stanisci.m@gmail.com> | 2018-03-17 01:37:11 +0100 |
commit | be0f95411aaecc61a8827ad62ab18bebede378bf (patch) | |
tree | 97a996e98d36b5d3e339b1f6e0ff46d039aaa48b | |
parent | ec3f361cc3547bf2fbc48259ce2191926afb9c5e (diff) | |
download | merchant-be0f95411aaecc61a8827ad62ab18bebede378bf.tar.gz merchant-be0f95411aaecc61a8827ad62ab18bebede378bf.tar.bz2 merchant-be0f95411aaecc61a8827ad62ab18bebede378bf.zip |
/proposal cb called with response code == 0.
-rw-r--r-- | src/lib/merchant_api_proposal.c | 7 | ||||
-rw-r--r-- | src/lib/test_merchant_api_twisted.c | 36 | ||||
-rw-r--r-- | 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); } |