summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-06-27 12:41:22 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-06-27 12:41:22 +0200
commitd3d744a444e0afd33e7dec02a62a878aaab2c2a2 (patch)
treef6a9f0eaeaa1b1127a5df7b10503cc4fb8516f9d
parent1be14a34161cd04c61f6df506bead0d8ca64b76d (diff)
downloadexchange-d3d744a444e0afd33e7dec02a62a878aaab2c2a2.tar.gz
exchange-d3d744a444e0afd33e7dec02a62a878aaab2c2a2.tar.bz2
exchange-d3d744a444e0afd33e7dec02a62a878aaab2c2a2.zip
[testing] start an oauth2 server which returns static birthdates
-rw-r--r--src/include/taler_testing_lib.h17
-rw-r--r--src/testing/testing_api_cmd_oauth.c36
2 files changed, 38 insertions, 15 deletions
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
@@ -40,6 +40,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.
*/
uint16_t port;
@@ -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,