From bea425de6cbbfb054a19e0f2312c5ef00c2e1bbe Mon Sep 17 00:00:00 2001 From: Sree Harsha Totakura Date: Tue, 17 Feb 2015 17:23:13 +0100 Subject: Fix #3624: Check JSON format for wire deposits (SEPA specification) --- src/util/test_json_validations.c | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/util/test_json_validations.c (limited to 'src/util/test_json_validations.c') diff --git a/src/util/test_json_validations.c b/src/util/test_json_validations.c new file mode 100644 index 000000000..a5747c94a --- /dev/null +++ b/src/util/test_json_validations.c @@ -0,0 +1,54 @@ +/* + This file is part of TALER + (C) 2014 Christian Grothoff (and other contributing authors) + + TALER is free software; you can redistribute it and/or modify it under the + terms of the GNU General Public License as published by the Free Software + Foundation; either version 3, or (at your option) any later version. + + TALER is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along with + TALER; see the file COPYING. If not, If not, see +*/ + +/** + * @file util/test_json_validations.c + * @brief Tests for JSON validations + * @author Sree Harsha Totakura + */ + +#include "platform.h" +#include "taler_util.h" +#include "taler_json_lib.h" + +static const char * const json_wire_str = + "{ \"type\":\"SEPA\", \ +\"IBAN\":\"DE67830654080004822650\", \ +\"name\":\"GNUnet e.V.\", \ +\"bic\":\"GENODEF1SLR\", \ +\"edate\":\"1449930207000\", \ +\"r\":123456789, \ +\"address\": \"foobar\"}"; + +int main(int argc, const char *const argv[]) +{ + json_t *wire; + json_error_t error; + int ret; + + GNUNET_log_setup ("test-json-validations", "WARNING", NULL); + (void) memset(&error, 0, sizeof(error)); + wire = json_loads (json_wire_str, 0, &error); + if (NULL == wire) + { + TALER_JSON_warn (error); + return 2; + } + ret = TALER_JSON_validate_wireformat ("SEPA", wire); + if (1 == ret) + return 0; + return 1; +} -- cgit v1.2.3