Line data Source code
1 : /* 2 : This file is part of TALER 3 : (C) 2020 Taler Systems SA 4 : 5 : TALER is free software; you can redistribute it and/or modify it under the 6 : terms of the GNU General Public License as published by the Free Software 7 : Foundation; either version 3, or (at your option) any later version. 8 : 9 : TALER is distributed in the hope that it will be useful, but WITHOUT ANY 10 : WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 : A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 : 13 : You should have received a copy of the GNU General Public License along with 14 : TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> 15 : */ 16 : 17 : /** 18 : * @file util/test_merchant_api_common.c 19 : * @brief Unit test for test_merchant_api_common.c 20 : * @author Florian Dold 21 : */ 22 : #include "platform.h" 23 : #include "taler_merchant_service.h" 24 : 25 : 26 : int 27 1 : main (int argc, 28 : const char *const argv[]) 29 : { 30 : struct TALER_MERCHANT_PayUriData pd; 31 : struct TALER_MERCHANT_RefundUriData rd; 32 : 33 : (void) argc; 34 : (void) argv; 35 1 : GNUNET_log_setup ("test_merchant_api_common", 36 : "WARNING", 37 : NULL); 38 : /* test pay parser */ 39 1 : GNUNET_assert (GNUNET_SYSERR == 40 : TALER_MERCHANT_parse_pay_uri ( 41 : "http://pay/localhost/my-order", 42 : &pd)); 43 1 : GNUNET_assert (GNUNET_SYSERR == 44 : TALER_MERCHANT_parse_pay_uri ( 45 : "taler://pay/localhost/my-order", 46 : &pd)); 47 1 : GNUNET_assert (GNUNET_SYSERR == 48 : TALER_MERCHANT_parse_pay_uri ( 49 : "taler://refund/localhost/my-order/", 50 : &pd)); 51 1 : GNUNET_assert (GNUNET_OK == 52 : TALER_MERCHANT_parse_pay_uri ( 53 : "taler://PAY/localhost/my-order/", 54 : &pd)); 55 1 : GNUNET_assert (0 == strcmp (pd.merchant_host, 56 : "localhost")); 57 1 : GNUNET_assert (NULL == pd.merchant_prefix_path); 58 1 : GNUNET_assert (0 == strcmp (pd.order_id, 59 : "my-order")); 60 1 : GNUNET_assert (NULL == pd.session_id); 61 1 : GNUNET_assert (NULL == pd.claim_token); 62 1 : GNUNET_assert (NULL == pd.ssid); 63 1 : GNUNET_assert (! pd.use_http); 64 1 : TALER_MERCHANT_parse_pay_uri_free (&pd); 65 : 66 1 : GNUNET_assert (GNUNET_OK == 67 : TALER_MERCHANT_parse_pay_uri ( 68 : "taler://pay/localhost/my-order/#myssid", 69 : &pd)); 70 1 : GNUNET_assert (0 == strcmp (pd.merchant_host, 71 : "localhost")); 72 1 : GNUNET_assert (0 == strcmp (pd.order_id, 73 : "my-order")); 74 1 : GNUNET_assert (NULL == pd.session_id); 75 1 : GNUNET_assert (NULL == pd.claim_token); 76 1 : GNUNET_assert (0 == strcmp (pd.ssid, 77 : "myssid")); 78 1 : GNUNET_assert (! pd.use_http); 79 1 : TALER_MERCHANT_parse_pay_uri_free (&pd); 80 : 81 1 : GNUNET_assert (GNUNET_OK == 82 : TALER_MERCHANT_parse_pay_uri ( 83 : "taler+http://pay/localhost/instance/foo/my-order/my-session#myssid", 84 : &pd)); 85 1 : GNUNET_assert (0 == strcmp (pd.merchant_host, 86 : "localhost")); 87 1 : GNUNET_assert (0 == strcmp (pd.merchant_prefix_path, 88 : "instance/foo")); 89 1 : GNUNET_assert (0 == strcmp (pd.order_id, 90 : "my-order")); 91 1 : GNUNET_assert (0 == strcmp (pd.session_id, 92 : "my-session")); 93 1 : GNUNET_assert (NULL == pd.claim_token); 94 1 : GNUNET_assert (0 == strcmp (pd.ssid, 95 : "myssid")); 96 1 : GNUNET_assert (pd.use_http); 97 1 : TALER_MERCHANT_parse_pay_uri_free (&pd); 98 : 99 1 : GNUNET_assert (GNUNET_OK == 100 : TALER_MERCHANT_parse_pay_uri ( 101 : "taler+http://pay/localhost/my-order/my-session?c=3QV8F3W34Y1FX6R8P2JZNMQ2JQ#myssid", 102 : &pd)); 103 1 : GNUNET_assert (0 == strcmp (pd.merchant_host, 104 : "localhost")); 105 1 : GNUNET_assert (NULL == pd.merchant_prefix_path); 106 1 : GNUNET_assert (0 == strcmp (pd.order_id, 107 : "my-order")); 108 1 : GNUNET_assert (0 == strcmp (pd.session_id, 109 : "my-session")); 110 1 : GNUNET_assert (NULL != pd.claim_token); 111 1 : GNUNET_assert (0 == strcmp (pd.ssid, 112 : "myssid")); 113 1 : GNUNET_assert (pd.use_http); 114 1 : TALER_MERCHANT_parse_pay_uri_free (&pd); 115 : 116 : 117 : /* test refund parser */ 118 1 : GNUNET_assert (GNUNET_SYSERR == 119 : TALER_MERCHANT_parse_refund_uri ( 120 : "http://refund/localhost/my-order/", 121 : &rd)); 122 1 : GNUNET_assert (GNUNET_SYSERR == 123 : TALER_MERCHANT_parse_refund_uri ( 124 : "taler://refund/localhost/my-order", 125 : &rd)); 126 1 : GNUNET_assert (GNUNET_SYSERR == 127 : TALER_MERCHANT_parse_refund_uri ( 128 : "taler://pay/localhost/my-order/", 129 : &rd)); 130 : 131 1 : GNUNET_assert (GNUNET_OK == 132 : TALER_MERCHANT_parse_refund_uri ( 133 : "taler://refund/localhost/my-order/#myssid", 134 : &rd)); 135 1 : GNUNET_assert (0 == strcmp (rd.merchant_host, 136 : "localhost")); 137 1 : GNUNET_assert (NULL == pd.merchant_prefix_path); 138 1 : GNUNET_assert (0 == strcmp (rd.order_id, 139 : "my-order")); 140 1 : GNUNET_assert (0 == strcmp (rd.ssid, 141 : "myssid")); 142 1 : GNUNET_assert (! rd.use_http); 143 1 : TALER_MERCHANT_parse_refund_uri_free (&rd); 144 : 145 1 : GNUNET_assert (GNUNET_OK == 146 : TALER_MERCHANT_parse_refund_uri ( 147 : "taler+http://REFUND/localhost/instance/foo/my-order/", 148 : &rd)); 149 1 : GNUNET_assert (0 == strcmp (rd.merchant_host, 150 : "localhost")); 151 1 : GNUNET_assert (0 == strcmp ("instance/foo", 152 : rd.merchant_prefix_path)); 153 1 : GNUNET_assert (0 == strcmp (rd.order_id, 154 : "my-order")); 155 1 : GNUNET_assert (NULL == rd.ssid); 156 1 : GNUNET_assert (rd.use_http); 157 1 : TALER_MERCHANT_parse_refund_uri_free (&rd); 158 : 159 1 : return 0; 160 : } 161 : 162 : 163 : /* end of test_merchant_api_common.c */