diff --git a/src/include/taler_testing_lib.h b/src/include/taler_testing_lib.h index 2ef7ef602..8950e71ba 100644 --- a/src/include/taler_testing_lib.h +++ b/src/include/taler_testing_lib.h @@ -2243,14 +2243,25 @@ TALER_TESTING_cmd_proof_kyc_oauth2 ( /** * Starts a fake OAuth 2.0 service on @a port for testing - * KYC processes. + * KYC processes which also provides a @a birthdate in a response * * @param label command label * @param port the TCP port to listen on */ struct TALER_TESTING_Command -TALER_TESTING_cmd_oauth (const char *label, - uint16_t port); +TALER_TESTING_cmd_oauth_with_birthdate (const char *label, + const char *birthdate, + uint16_t port); + +/** + * Starts a fake OAuth 2.0 service on @a port for testing + * KYC processes. + * + * @param label command label + * @param port the TCP port to listen on + */ +#define TALER_TESTING_cmd_oauth(label, port) \ + TALER_TESTING_cmd_oauth_with_birthdate ((label), NULL, (port)) /* ****************** P2P payment commands ****************** */ diff --git a/src/testing/testing_api_cmd_oauth.c b/src/testing/testing_api_cmd_oauth.c index 0bcf2f680..fcf7e843a 100644 --- a/src/testing/testing_api_cmd_oauth.c +++ b/src/testing/testing_api_cmd_oauth.c @@ -39,6 +39,11 @@ struct OAuthState */ struct MHD_Daemon *mhd; + /** + * Birthdate that the oauth server should return in a response, may be NULL + */ + const char *birthdate; + /** * Port to listen on. */ @@ -172,28 +177,33 @@ handler_cb (void *cls, void **con_cls) { struct RequestCtx *rc = *con_cls; + struct OAuthState *oas = cls; unsigned int hc; json_t *body; - (void) cls; (void) version; if (0 == strcasecmp (method, MHD_HTTP_METHOD_GET)) { + json_t *data = + GNUNET_JSON_PACK ( + GNUNET_JSON_pack_string ("id", + "XXXID12345678"), + GNUNET_JSON_pack_string ("first_name", + "Bob"), + GNUNET_JSON_pack_string ("last_name", + "Builder")); + if (NULL != oas->birthdate) + json_object_set_new (data, + "birthdate", + json_string_nocheck (oas->birthdate)); + body = GNUNET_JSON_PACK ( GNUNET_JSON_pack_string ( "status", "success"), GNUNET_JSON_pack_object_steal ( - "data", - GNUNET_JSON_PACK ( - GNUNET_JSON_pack_string ("id", - "XXXID12345678"), - GNUNET_JSON_pack_string ("first_name", - "Bob"), - GNUNET_JSON_pack_string ("last_name", - "Builder") - ))); + "data", data)); return TALER_MHD_reply_json_steal (connection, body, MHD_HTTP_OK); @@ -368,13 +378,15 @@ oauth_cleanup (void *cls, struct TALER_TESTING_Command -TALER_TESTING_cmd_oauth (const char *label, - uint16_t port) +TALER_TESTING_cmd_oauth_with_birthdate (const char *label, + const char *birthdate, + uint16_t port) { struct OAuthState *oas; oas = GNUNET_new (struct OAuthState); oas->port = port; + oas->birthdate = birthdate; { struct TALER_TESTING_Command cmd = { .cls = oas,