aboutsummaryrefslogtreecommitdiff
path: root/src/lib/test_exchange_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/test_exchange_api.c')
-rw-r--r--src/lib/test_exchange_api.c341
1 files changed, 172 insertions, 169 deletions
diff --git a/src/lib/test_exchange_api.c b/src/lib/test_exchange_api.c
index 33a2df9dd..eeccd3bc2 100644
--- a/src/lib/test_exchange_api.c
+++ b/src/lib/test_exchange_api.c
@@ -42,7 +42,8 @@
42 */ 42 */
43#define CONFIG_FILE "test_exchange_api.conf" 43#define CONFIG_FILE "test_exchange_api.conf"
44 44
45#define CONFIG_FILE_EXPIRE_RESERVE_NOW "test_exchange_api_expire_reserve_now.conf" 45#define CONFIG_FILE_EXPIRE_RESERVE_NOW \
46 "test_exchange_api_expire_reserve_now.conf"
46 47
47/** 48/**
48 * Is the configuration file is set to include wire format 'ebics'? 49 * Is the configuration file is set to include wire format 'ebics'?
@@ -99,7 +100,7 @@ static char *auditor_url;
99 * @param label label to use for the command. 100 * @param label label to use for the command.
100 */ 101 */
101#define CMD_EXEC_WIREWATCH(label) \ 102#define CMD_EXEC_WIREWATCH(label) \
102 TALER_TESTING_cmd_exec_wirewatch (label, CONFIG_FILE) 103 TALER_TESTING_cmd_exec_wirewatch (label, CONFIG_FILE)
103 104
104/** 105/**
105 * Execute the taler-exchange-aggregator command with 106 * Execute the taler-exchange-aggregator command with
@@ -108,7 +109,7 @@ static char *auditor_url;
108 * @param label label to use for the command. 109 * @param label label to use for the command.
109 */ 110 */
110#define CMD_EXEC_AGGREGATOR(label) \ 111#define CMD_EXEC_AGGREGATOR(label) \
111 TALER_TESTING_cmd_exec_aggregator (label, CONFIG_FILE) 112 TALER_TESTING_cmd_exec_aggregator (label, CONFIG_FILE)
112 113
113/** 114/**
114 * Run wire transfer of funds from some user's account to the 115 * Run wire transfer of funds from some user's account to the
@@ -118,9 +119,11 @@ static char *auditor_url;
118 * @param amount amount to transfer, i.e. "EUR:1" 119 * @param amount amount to transfer, i.e. "EUR:1"
119 */ 120 */
120#define CMD_TRANSFER_TO_EXCHANGE(label,amount) \ 121#define CMD_TRANSFER_TO_EXCHANGE(label,amount) \
121 TALER_TESTING_cmd_fakebank_transfer (label, amount, \ 122 TALER_TESTING_cmd_fakebank_transfer (label, amount, \
122 fakebank_url, USER_ACCOUNT_NO, EXCHANGE_ACCOUNT_NO, \ 123 fakebank_url, USER_ACCOUNT_NO, \
123 USER_LOGIN_NAME, USER_LOGIN_PASS, exchange_url) 124 EXCHANGE_ACCOUNT_NO, \
125 USER_LOGIN_NAME, USER_LOGIN_PASS, \
126 exchange_url)
124 127
125/** 128/**
126 * Run wire transfer of funds from some user's account to the 129 * Run wire transfer of funds from some user's account to the
@@ -130,10 +133,10 @@ static char *auditor_url;
130 * @param amount amount to transfer, i.e. "EUR:1" 133 * @param amount amount to transfer, i.e. "EUR:1"
131 */ 134 */
132#define CMD_TRANSFER_TO_EXCHANGE_SUBJECT(label,amount,subject) \ 135#define CMD_TRANSFER_TO_EXCHANGE_SUBJECT(label,amount,subject) \
133 TALER_TESTING_cmd_fakebank_transfer_with_subject \ 136 TALER_TESTING_cmd_fakebank_transfer_with_subject \
134 (label, amount, fakebank_url, USER_ACCOUNT_NO, \ 137 (label, amount, fakebank_url, USER_ACCOUNT_NO, \
135 EXCHANGE_ACCOUNT_NO, USER_LOGIN_NAME, USER_LOGIN_PASS, \ 138 EXCHANGE_ACCOUNT_NO, USER_LOGIN_NAME, USER_LOGIN_PASS, \
136 subject, exchange_url) 139 subject, exchange_url)
137 140
138/** 141/**
139 * Main function that will tell the interpreter what commands to 142 * Main function that will tell the interpreter what commands to
@@ -214,10 +217,10 @@ run (void *cls,
214 */ 217 */
215 TALER_TESTING_cmd_deposit 218 TALER_TESTING_cmd_deposit
216 ("deposit-simple", "withdraw-coin-1", 0, 219 ("deposit-simple", "withdraw-coin-1", 0,
217 TALER_TESTING_make_wire_details (42, 220 TALER_TESTING_make_wire_details (42,
218 fakebank_url), 221 fakebank_url),
219 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", 222 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
220 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_OK), 223 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_OK),
221 224
222 /** 225 /**
223 * Try to overdraw. 226 * Try to overdraw.
@@ -232,10 +235,10 @@ run (void *cls,
232 */ 235 */
233 TALER_TESTING_cmd_deposit 236 TALER_TESTING_cmd_deposit
234 ("deposit-double-1", "withdraw-coin-1", 0, 237 ("deposit-double-1", "withdraw-coin-1", 0,
235 TALER_TESTING_make_wire_details (43, 238 TALER_TESTING_make_wire_details (43,
236 fakebank_url), 239 fakebank_url),
237 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", 240 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
238 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_FORBIDDEN), 241 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_FORBIDDEN),
239 242
240 /** 243 /**
241 * Try to double spend using a different transaction id. 244 * Try to double spend using a different transaction id.
@@ -248,20 +251,20 @@ run (void *cls,
248 */ 251 */
249 TALER_TESTING_cmd_deposit 252 TALER_TESTING_cmd_deposit
250 ("deposit-double-1", "withdraw-coin-1", 0, 253 ("deposit-double-1", "withdraw-coin-1", 0,
251 TALER_TESTING_make_wire_details (43, 254 TALER_TESTING_make_wire_details (43,
252 fakebank_url), 255 fakebank_url),
253 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", 256 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
254 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_FORBIDDEN), 257 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_FORBIDDEN),
255 258
256 /** 259 /**
257 * Try to double spend with different proposal. 260 * Try to double spend with different proposal.
258 */ 261 */
259 TALER_TESTING_cmd_deposit 262 TALER_TESTING_cmd_deposit
260 ("deposit-double-2", "withdraw-coin-1", 0, 263 ("deposit-double-2", "withdraw-coin-1", 0,
261 TALER_TESTING_make_wire_details (43, 264 TALER_TESTING_make_wire_details (43,
262 fakebank_url), 265 fakebank_url),
263 "{\"items\":[{\"name\":\"ice cream\",\"value\":2}]}", 266 "{\"items\":[{\"name\":\"ice cream\",\"value\":2}]}",
264 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_FORBIDDEN), 267 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_FORBIDDEN),
265 268
266 TALER_TESTING_cmd_end () 269 TALER_TESTING_cmd_end ()
267 }; 270 };
@@ -288,9 +291,9 @@ run (void *cls,
288 */ 291 */
289 TALER_TESTING_cmd_withdraw_amount 292 TALER_TESTING_cmd_withdraw_amount
290 ("refresh-withdraw-coin-1", 293 ("refresh-withdraw-coin-1",
291 "refresh-create-reserve-1", 294 "refresh-create-reserve-1",
292 "EUR:5", 295 "EUR:5",
293 MHD_HTTP_OK), 296 MHD_HTTP_OK),
294 /** 297 /**
295 * Try to partially spend (deposit) 1 EUR of the 5 EUR coin 298 * Try to partially spend (deposit) 1 EUR of the 5 EUR coin
296 * (in full) (merchant would receive EUR:0.99 due to 1 ct 299 * (in full) (merchant would receive EUR:0.99 due to 1 ct
@@ -298,74 +301,74 @@ run (void *cls,
298 */ 301 */
299 TALER_TESTING_cmd_deposit 302 TALER_TESTING_cmd_deposit
300 ("refresh-deposit-partial", 303 ("refresh-deposit-partial",
301 "refresh-withdraw-coin-1", 0, 304 "refresh-withdraw-coin-1", 0,
302 TALER_TESTING_make_wire_details (42, 305 TALER_TESTING_make_wire_details (42,
303 fakebank_url), 306 fakebank_url),
304 "{\"items\":[{\"name\":\"ice cream\",\ 307 "{\"items\":[{\"name\":\"ice cream\",\
305 \"value\":\"EUR:1\"}]}", 308 \"value\":\"EUR:1\"}]}",
306 GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_OK), 309 GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_OK),
307 310
308 /** 311 /**
309 * Melt the rest of the coin's value 312 * Melt the rest of the coin's value
310 * (EUR:4.00 = 3x EUR:1.03 + 7x EUR:0.13) */ 313 * (EUR:4.00 = 3x EUR:1.03 + 7x EUR:0.13) */
311 TALER_TESTING_cmd_refresh_melt_double 314 TALER_TESTING_cmd_refresh_melt_double
312 ("refresh-melt-1", 315 ("refresh-melt-1",
313 "refresh-withdraw-coin-1", 316 "refresh-withdraw-coin-1",
314 MHD_HTTP_OK, 317 MHD_HTTP_OK,
315 NULL), 318 NULL),
316 /** 319 /**
317 * Complete (successful) melt operation, and 320 * Complete (successful) melt operation, and
318 * withdraw the coins 321 * withdraw the coins
319 */ 322 */
320 TALER_TESTING_cmd_refresh_reveal 323 TALER_TESTING_cmd_refresh_reveal
321 ("refresh-reveal-1", 324 ("refresh-reveal-1",
322 "refresh-melt-1", MHD_HTTP_OK), 325 "refresh-melt-1", MHD_HTTP_OK),
323 326
324 /** 327 /**
325 * Do it again to check idempotency 328 * Do it again to check idempotency
326 */ 329 */
327 TALER_TESTING_cmd_refresh_reveal 330 TALER_TESTING_cmd_refresh_reveal
328 ("refresh-reveal-1-idempotency", 331 ("refresh-reveal-1-idempotency",
329 "refresh-melt-1", MHD_HTTP_OK), 332 "refresh-melt-1", MHD_HTTP_OK),
330 333
331 /** 334 /**
332 * Test that /refresh/link works 335 * Test that /refresh/link works
333 */ 336 */
334 TALER_TESTING_cmd_refresh_link 337 TALER_TESTING_cmd_refresh_link
335 ("refresh-link-1", 338 ("refresh-link-1",
336 "refresh-reveal-1", MHD_HTTP_OK), 339 "refresh-reveal-1", MHD_HTTP_OK),
337 340
338 /** 341 /**
339 * Try to spend a refreshed EUR:1 coin 342 * Try to spend a refreshed EUR:1 coin
340 */ 343 */
341 TALER_TESTING_cmd_deposit 344 TALER_TESTING_cmd_deposit
342 ("refresh-deposit-refreshed-1a", 345 ("refresh-deposit-refreshed-1a",
343 "refresh-reveal-1-idempotency", 0, 346 "refresh-reveal-1-idempotency", 0,
344 TALER_TESTING_make_wire_details (42, 347 TALER_TESTING_make_wire_details (42,
345 fakebank_url), 348 fakebank_url),
346 "{\"items\":[{\"name\":\"ice cream\",\ 349 "{\"items\":[{\"name\":\"ice cream\",\
347 \"value\":3}]}", 350 \"value\":3}]}",
348 GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_OK), 351 GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_OK),
349 352
350 /** 353 /**
351 * Try to spend a refreshed EUR:0.1 coin 354 * Try to spend a refreshed EUR:0.1 coin
352 */ 355 */
353 TALER_TESTING_cmd_deposit 356 TALER_TESTING_cmd_deposit
354 ("refresh-deposit-refreshed-1b", 357 ("refresh-deposit-refreshed-1b",
355 "refresh-reveal-1", 3, 358 "refresh-reveal-1", 3,
356 TALER_TESTING_make_wire_details (43, 359 TALER_TESTING_make_wire_details (43,
357 fakebank_url), 360 fakebank_url),
358 "{\"items\":[{\"name\":\"ice cream\",\ 361 "{\"items\":[{\"name\":\"ice cream\",\
359 \"value\":3}]}", 362 \"value\":3}]}",
360 GNUNET_TIME_UNIT_ZERO, "EUR:0.1", MHD_HTTP_OK), 363 GNUNET_TIME_UNIT_ZERO, "EUR:0.1", MHD_HTTP_OK),
361 364
362 /* Test running a failing melt operation (same operation 365 /* Test running a failing melt operation (same operation
363 * again must fail) */ 366 * again must fail) */
364 TALER_TESTING_cmd_refresh_melt 367 TALER_TESTING_cmd_refresh_melt
365 ("refresh-melt-failing", 368 ("refresh-melt-failing",
366 "refresh-withdraw-coin-1", 369 "refresh-withdraw-coin-1",
367 MHD_HTTP_FORBIDDEN, 370 MHD_HTTP_FORBIDDEN,
368 NULL), 371 NULL),
369 372
370 /* FIXME: also test with coin that was already melted 373 /* FIXME: also test with coin that was already melted
371 * (signature differs from coin that was deposited...) */ 374 * (signature differs from coin that was deposited...) */
@@ -380,8 +383,8 @@ run (void *cls,
380 * the exchange knows about the deposit, but has no WTID yet. 383 * the exchange knows about the deposit, but has no WTID yet.
381 */ 384 */
382 TALER_TESTING_cmd_track_transaction 385 TALER_TESTING_cmd_track_transaction
383 ("deposit-wtid-found", 386 ("deposit-wtid-found",
384 "deposit-simple", 0, MHD_HTTP_ACCEPTED, NULL), 387 "deposit-simple", 0, MHD_HTTP_ACCEPTED, NULL),
385 388
386 /** 389 /**
387 * Try resolving a deposit's WTID for a failed deposit. 390 * Try resolving a deposit's WTID for a failed deposit.
@@ -389,8 +392,8 @@ run (void *cls,
389 * exchange does NOT know about the deposit. 392 * exchange does NOT know about the deposit.
390 */ 393 */
391 TALER_TESTING_cmd_track_transaction 394 TALER_TESTING_cmd_track_transaction
392 ("deposit-wtid-failing", 395 ("deposit-wtid-failing",
393 "deposit-double-2", 0, MHD_HTTP_NOT_FOUND, NULL), 396 "deposit-double-2", 0, MHD_HTTP_NOT_FOUND, NULL),
394 397
395 /** 398 /**
396 * Try resolving an undefined (all zeros) WTID; this 399 * Try resolving an undefined (all zeros) WTID; this
@@ -399,7 +402,7 @@ run (void *cls,
399 */ 402 */
400 TALER_TESTING_cmd_track_transfer_empty 403 TALER_TESTING_cmd_track_transfer_empty
401 ("wire-deposit-failing", 404 ("wire-deposit-failing",
402 NULL, 0, MHD_HTTP_NOT_FOUND), 405 NULL, 0, MHD_HTTP_NOT_FOUND),
403 406
404 /** 407 /**
405 * Run transfers. Note that _actual_ aggregation will NOT 408 * Run transfers. Note that _actual_ aggregation will NOT
@@ -415,23 +418,23 @@ run (void *cls,
415 */ 418 */
416 TALER_TESTING_cmd_check_bank_transfer 419 TALER_TESTING_cmd_check_bank_transfer
417 ("check_bank_transfer-499c", exchange_url, 420 ("check_bank_transfer-499c", exchange_url,
418 "EUR:4.98", 2, 42), 421 "EUR:4.98", 2, 42),
419 422
420 TALER_TESTING_cmd_check_bank_transfer 423 TALER_TESTING_cmd_check_bank_transfer
421 ("check_bank_transfer-99c1", exchange_url, 424 ("check_bank_transfer-99c1", exchange_url,
422 "EUR:0.98", 2, 42), 425 "EUR:0.98", 2, 42),
423 426
424 TALER_TESTING_cmd_check_bank_transfer 427 TALER_TESTING_cmd_check_bank_transfer
425 ("check_bank_transfer-99c2", exchange_url, 428 ("check_bank_transfer-99c2", exchange_url,
426 "EUR:0.98", 2, 42), 429 "EUR:0.98", 2, 42),
427 430
428 TALER_TESTING_cmd_check_bank_transfer 431 TALER_TESTING_cmd_check_bank_transfer
429 ("check_bank_transfer-99c", exchange_url, 432 ("check_bank_transfer-99c", exchange_url,
430 "EUR:0.08", 2, 43), 433 "EUR:0.08", 2, 43),
431 434
432 TALER_TESTING_cmd_check_bank_transfer 435 TALER_TESTING_cmd_check_bank_transfer
433 ("check_bank_transfer-aai-1", exchange_url, 436 ("check_bank_transfer-aai-1", exchange_url,
434 "EUR:5.01", 42, 2), 437 "EUR:5.01", 42, 2),
435 438
436 /** 439 /**
437 * NOTE: the old test-suite had this "check bank transfer" 440 * NOTE: the old test-suite had this "check bank transfer"
@@ -439,23 +442,23 @@ run (void *cls,
439 */ 442 */
440 TALER_TESTING_cmd_check_bank_transfer 443 TALER_TESTING_cmd_check_bank_transfer
441 ("check_bank_transfer-aai-2", exchange_url, 444 ("check_bank_transfer-aai-2", exchange_url,
442 "EUR:5.01", 42, 2), 445 "EUR:5.01", 42, 2),
443 446
444 TALER_TESTING_cmd_check_bank_empty ("check_bank_empty"), 447 TALER_TESTING_cmd_check_bank_empty ("check_bank_empty"),
445 448
446 TALER_TESTING_cmd_track_transaction 449 TALER_TESTING_cmd_track_transaction
447 ("deposit-wtid-ok", 450 ("deposit-wtid-ok",
448 "deposit-simple", 0, MHD_HTTP_OK, "check_bank_transfer-499c"), 451 "deposit-simple", 0, MHD_HTTP_OK, "check_bank_transfer-499c"),
449 452
450 TALER_TESTING_cmd_track_transfer 453 TALER_TESTING_cmd_track_transfer
451 ("wire-deposit-success-bank", 454 ("wire-deposit-success-bank",
452 "check_bank_transfer-99c1", 0, MHD_HTTP_OK, "EUR:0.98", 455 "check_bank_transfer-99c1", 0, MHD_HTTP_OK, "EUR:0.98",
453 "EUR:0.01"), 456 "EUR:0.01"),
454 457
455 TALER_TESTING_cmd_track_transfer 458 TALER_TESTING_cmd_track_transfer
456 ("wire-deposits-success-wtid", 459 ("wire-deposits-success-wtid",
457 "deposit-wtid-ok", 0, MHD_HTTP_OK, "EUR:4.98", 460 "deposit-wtid-ok", 0, MHD_HTTP_OK, "EUR:4.98",
458 "EUR:0.01"), 461 "EUR:0.01"),
459 462
460 TALER_TESTING_cmd_end () 463 TALER_TESTING_cmd_end ()
461 }; 464 };
@@ -478,30 +481,30 @@ run (void *cls,
478 /* "consume" reserve creation transfer. */ 481 /* "consume" reserve creation transfer. */
479 TALER_TESTING_cmd_check_bank_transfer 482 TALER_TESTING_cmd_check_bank_transfer
480 ("check_bank_transfer-unaggregated", 483 ("check_bank_transfer-unaggregated",
481 exchange_url, 484 exchange_url,
482 "EUR:5.01", 485 "EUR:5.01",
483 42, 486 42,
484 2), 487 2),
485 488
486 TALER_TESTING_cmd_withdraw_amount 489 TALER_TESTING_cmd_withdraw_amount
487 ("withdraw-coin-unaggregated", 490 ("withdraw-coin-unaggregated",
488 "create-reserve-unaggregated", 491 "create-reserve-unaggregated",
489 "EUR:5", 492 "EUR:5",
490 MHD_HTTP_OK), 493 MHD_HTTP_OK),
491 494
492 TALER_TESTING_cmd_deposit 495 TALER_TESTING_cmd_deposit
493 ("deposit-unaggregated", 496 ("deposit-unaggregated",
494 "withdraw-coin-unaggregated", 497 "withdraw-coin-unaggregated",
495 0, 498 0,
496 TALER_TESTING_make_wire_details 499 TALER_TESTING_make_wire_details
497 (43, 500 (43,
498 fakebank_url), 501 fakebank_url),
499 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}", 502 "{\"items\":[{\"name\":\"ice cream\",\"value\":1}]}",
500 GNUNET_TIME_relative_multiply 503 GNUNET_TIME_relative_multiply
501 (GNUNET_TIME_UNIT_YEARS, 504 (GNUNET_TIME_UNIT_YEARS,
502 3000), 505 3000),
503 "EUR:5", 506 "EUR:5",
504 MHD_HTTP_OK), 507 MHD_HTTP_OK),
505 508
506 CMD_EXEC_AGGREGATOR ("aggregation-attempt"), 509 CMD_EXEC_AGGREGATOR ("aggregation-attempt"),
507 510
@@ -538,11 +541,11 @@ run (void *cls,
538 */ 541 */
539 TALER_TESTING_cmd_deposit 542 TALER_TESTING_cmd_deposit
540 ("deposit-refund-1", "withdraw-coin-r1", 0, 543 ("deposit-refund-1", "withdraw-coin-r1", 0,
541 TALER_TESTING_make_wire_details (42, 544 TALER_TESTING_make_wire_details (42,
542 fakebank_url), 545 fakebank_url),
543 "{\"items\":[{\"name\":\"ice cream\"," 546 "{\"items\":[{\"name\":\"ice cream\","
544 "\"value\":\"EUR:5\"}]}", 547 "\"value\":\"EUR:5\"}]}",
545 GNUNET_TIME_UNIT_MINUTES, "EUR:5", MHD_HTTP_OK), 548 GNUNET_TIME_UNIT_MINUTES, "EUR:5", MHD_HTTP_OK),
546 549
547 550
548 /** 551 /**
@@ -561,23 +564,23 @@ run (void *cls,
561 564
562 TALER_TESTING_cmd_check_bank_transfer 565 TALER_TESTING_cmd_check_bank_transfer
563 ("check_bank_transfer-pre-refund", exchange_url, 566 ("check_bank_transfer-pre-refund", exchange_url,
564 "EUR:5.01", 42, 2), 567 "EUR:5.01", 42, 2),
565 568
566 TALER_TESTING_cmd_check_bank_empty 569 TALER_TESTING_cmd_check_bank_empty
567 ("check_bank_transfer-pre-refund"), 570 ("check_bank_transfer-pre-refund"),
568 571
569 TALER_TESTING_cmd_refund 572 TALER_TESTING_cmd_refund
570 ("refund-ok", MHD_HTTP_OK, 573 ("refund-ok", MHD_HTTP_OK,
571 "EUR:5", "EUR:0.01", "deposit-refund-1"), 574 "EUR:5", "EUR:0.01", "deposit-refund-1"),
572 575
573 TALER_TESTING_cmd_refund 576 TALER_TESTING_cmd_refund
574 ("refund-ok-double", MHD_HTTP_OK, 577 ("refund-ok-double", MHD_HTTP_OK,
575 "EUR:5", "EUR:0.01", "deposit-refund-1"), 578 "EUR:5", "EUR:0.01", "deposit-refund-1"),
576 579
577 /* Previous /refund(s) had id == 0. */ 580 /* Previous /refund(s) had id == 0. */
578 TALER_TESTING_cmd_refund_with_id 581 TALER_TESTING_cmd_refund_with_id
579 ("refund-conflicting", MHD_HTTP_CONFLICT, 582 ("refund-conflicting", MHD_HTTP_CONFLICT,
580 "EUR:5", "EUR:0.01", "deposit-refund-1", 1), 583 "EUR:5", "EUR:0.01", "deposit-refund-1", 1),
581 584
582 /** 585 /**
583 * Spend 4.99 EUR of the refunded 4.99 EUR coin (1ct gone 586 * Spend 4.99 EUR of the refunded 4.99 EUR coin (1ct gone
@@ -585,11 +588,11 @@ run (void *cls,
585 * 1 ct deposit fee) */ 588 * 1 ct deposit fee) */
586 TALER_TESTING_cmd_deposit 589 TALER_TESTING_cmd_deposit
587 ("deposit-refund-2", "withdraw-coin-r1", 0, 590 ("deposit-refund-2", "withdraw-coin-r1", 0,
588 TALER_TESTING_make_wire_details (42, 591 TALER_TESTING_make_wire_details (42,
589 fakebank_url), 592 fakebank_url),
590 "{\"items\":[{\"name\":\"more ice cream\"," 593 "{\"items\":[{\"name\":\"more ice cream\","
591 "\"value\":\"EUR:5\"}]}", 594 "\"value\":\"EUR:5\"}]}",
592 GNUNET_TIME_UNIT_ZERO, "EUR:4.99", MHD_HTTP_OK), 595 GNUNET_TIME_UNIT_ZERO, "EUR:4.99", MHD_HTTP_OK),
593 596
594 597
595 /** 598 /**
@@ -603,14 +606,14 @@ run (void *cls,
603 */ 606 */
604 TALER_TESTING_cmd_check_bank_transfer 607 TALER_TESTING_cmd_check_bank_transfer
605 ("check_bank_transfer-pre-refund", exchange_url, 608 ("check_bank_transfer-pre-refund", exchange_url,
606 "EUR:4.97", 2, 42), 609 "EUR:4.97", 2, 42),
607 610
608 /** 611 /**
609 * Run failing refund, as past deadline & aggregation. 612 * Run failing refund, as past deadline & aggregation.
610 */ 613 */
611 TALER_TESTING_cmd_refund 614 TALER_TESTING_cmd_refund
612 ("refund-fail", MHD_HTTP_GONE, 615 ("refund-fail", MHD_HTTP_GONE,
613 "EUR:4.99", "EUR:0.01", "deposit-refund-2"), 616 "EUR:4.99", "EUR:0.01", "deposit-refund-2"),
614 617
615 TALER_TESTING_cmd_check_bank_empty 618 TALER_TESTING_cmd_check_bank_empty
616 ("check-empty-after-refund"), 619 ("check-empty-after-refund"),
@@ -631,16 +634,16 @@ run (void *cls,
631 634
632 TALER_TESTING_cmd_check_bank_transfer 635 TALER_TESTING_cmd_check_bank_transfer
633 ("check_bank_transfer-aai-3b", exchange_url, 636 ("check_bank_transfer-aai-3b", exchange_url,
634 "EUR:5.01", 42, 2), 637 "EUR:5.01", 42, 2),
635 638
636 639
637 TALER_TESTING_cmd_deposit 640 TALER_TESTING_cmd_deposit
638 ("deposit-refund-1b", "withdraw-coin-rb", 0, 641 ("deposit-refund-1b", "withdraw-coin-rb", 0,
639 TALER_TESTING_make_wire_details (42, 642 TALER_TESTING_make_wire_details (42,
640 fakebank_url), 643 fakebank_url),
641 "{\"items\":[{\"name\":\"ice cream\"," 644 "{\"items\":[{\"name\":\"ice cream\","
642 "\"value\":\"EUR:5\"}]}", 645 "\"value\":\"EUR:5\"}]}",
643 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_OK), 646 GNUNET_TIME_UNIT_ZERO, "EUR:5", MHD_HTTP_OK),
644 647
645 /** 648 /**
646 * Trigger refund (before aggregator had a chance to execute 649 * Trigger refund (before aggregator had a chance to execute
@@ -648,7 +651,7 @@ run (void *cls,
648 */ 651 */
649 TALER_TESTING_cmd_refund 652 TALER_TESTING_cmd_refund
650 ("refund-ok-fast", MHD_HTTP_OK, 653 ("refund-ok-fast", MHD_HTTP_OK,
651 "EUR:5", "EUR:0.01", "deposit-refund-1b"), 654 "EUR:5", "EUR:0.01", "deposit-refund-1b"),
652 655
653 /** 656 /**
654 * Run transfers. This will do the transfer as refund deadline 657 * Run transfers. This will do the transfer as refund deadline
@@ -713,9 +716,9 @@ run (void *cls,
713 */ 716 */
714 TALER_TESTING_cmd_withdraw_amount 717 TALER_TESTING_cmd_withdraw_amount
715 ("payback-withdraw-coin-2-over", 718 ("payback-withdraw-coin-2-over",
716 "payback-create-reserve-1", 719 "payback-create-reserve-1",
717 "EUR:10", 720 "EUR:10",
718 MHD_HTTP_FORBIDDEN), 721 MHD_HTTP_FORBIDDEN),
719 722
720 TALER_TESTING_cmd_status ("payback-reserve-status-2", 723 TALER_TESTING_cmd_status ("payback-reserve-status-2",
721 "payback-create-reserve-1", 724 "payback-create-reserve-1",
@@ -729,15 +732,15 @@ run (void *cls,
729 */ 732 */
730 CMD_TRANSFER_TO_EXCHANGE 733 CMD_TRANSFER_TO_EXCHANGE
731 ("short-lived-reserve", 734 ("short-lived-reserve",
732 "EUR:5.01"), 735 "EUR:5.01"),
733 736
734 TALER_TESTING_cmd_exec_wirewatch 737 TALER_TESTING_cmd_exec_wirewatch
735 ("short-lived-aggregation", 738 ("short-lived-aggregation",
736 CONFIG_FILE_EXPIRE_RESERVE_NOW), 739 CONFIG_FILE_EXPIRE_RESERVE_NOW),
737 740
738 TALER_TESTING_cmd_exec_aggregator 741 TALER_TESTING_cmd_exec_aggregator
739 ("close-reserves", 742 ("close-reserves",
740 CONFIG_FILE_EXPIRE_RESERVE_NOW), 743 CONFIG_FILE_EXPIRE_RESERVE_NOW),
741 744
742 TALER_TESTING_cmd_status ("short-lived-status", 745 TALER_TESTING_cmd_status ("short-lived-status",
743 "short-lived-reserve", 746 "short-lived-reserve",
@@ -746,23 +749,23 @@ run (void *cls,
746 749
747 TALER_TESTING_cmd_withdraw_amount 750 TALER_TESTING_cmd_withdraw_amount
748 ("expired-withdraw", 751 ("expired-withdraw",
749 "short-lived-reserve", 752 "short-lived-reserve",
750 "EUR:1", 753 "EUR:1",
751 MHD_HTTP_FORBIDDEN), 754 MHD_HTTP_FORBIDDEN),
752 755
753 TALER_TESTING_cmd_check_bank_transfer 756 TALER_TESTING_cmd_check_bank_transfer
754 ("check_bank_short-lived_transfer", 757 ("check_bank_short-lived_transfer",
755 exchange_url, 758 exchange_url,
756 "EUR:5.01", 759 "EUR:5.01",
757 42, 760 42,
758 2), 761 2),
759 762
760 TALER_TESTING_cmd_check_bank_transfer 763 TALER_TESTING_cmd_check_bank_transfer
761 ("check_bank_short-lived_reimburse", 764 ("check_bank_short-lived_reimburse",
762 exchange_url, 765 exchange_url,
763 "EUR:5", 766 "EUR:5",
764 2, 767 2,
765 42), 768 42),
766 769
767 /** 770 /**
768 * Fill reserve with EUR:2.02, as withdraw fee is 1 ct per 771 * Fill reserve with EUR:2.02, as withdraw fee is 1 ct per
@@ -791,11 +794,11 @@ run (void *cls,
791 794
792 TALER_TESTING_cmd_deposit 795 TALER_TESTING_cmd_deposit
793 ("payback-deposit-partial", 796 ("payback-deposit-partial",
794 "payback-withdraw-coin-2a", 0, 797 "payback-withdraw-coin-2a", 0,
795 TALER_TESTING_make_wire_details (42, 798 TALER_TESTING_make_wire_details (42,
796 fakebank_url), 799 fakebank_url),
797 "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}", 800 "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}",
798 GNUNET_TIME_UNIT_ZERO, "EUR:0.5", MHD_HTTP_OK), 801 GNUNET_TIME_UNIT_ZERO, "EUR:0.5", MHD_HTTP_OK),
799 802
800 803
801 TALER_TESTING_cmd_revoke ("revoke-2", MHD_HTTP_OK, 804 TALER_TESTING_cmd_revoke ("revoke-2", MHD_HTTP_OK,
@@ -814,11 +817,11 @@ run (void *cls,
814 817
815 TALER_TESTING_cmd_deposit 818 TALER_TESTING_cmd_deposit
816 ("payback-deposit-revoked", 819 ("payback-deposit-revoked",
817 "payback-withdraw-coin-2b", 0, 820 "payback-withdraw-coin-2b", 0,
818 TALER_TESTING_make_wire_details (42, 821 TALER_TESTING_make_wire_details (42,
819 fakebank_url), 822 fakebank_url),
820 "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}", 823 "{\"items\":[{\"name\":\"more ice cream\",\"value\":1}]}",
821 GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_NOT_FOUND), 824 GNUNET_TIME_UNIT_ZERO, "EUR:1", MHD_HTTP_NOT_FOUND),
822 825
823 826
824 /* Test deposit fails after payback, with proof in payback */ 827 /* Test deposit fails after payback, with proof in payback */
@@ -828,15 +831,15 @@ run (void *cls,
828 * 404 on the DK! */ 831 * 404 on the DK! */
829 TALER_TESTING_cmd_deposit 832 TALER_TESTING_cmd_deposit
830 ("payback-deposit-partial-after-payback", 833 ("payback-deposit-partial-after-payback",
831 "payback-withdraw-coin-2a", 834 "payback-withdraw-coin-2a",
832 0, 835 0,
833 TALER_TESTING_make_wire_details 836 TALER_TESTING_make_wire_details
834 (42, 837 (42,
835 fakebank_url), 838 fakebank_url),
836 "{\"items\":[{\"name\":\"extra ice cream\",\"value\":1}]}", 839 "{\"items\":[{\"name\":\"extra ice cream\",\"value\":1}]}",
837 GNUNET_TIME_UNIT_ZERO, 840 GNUNET_TIME_UNIT_ZERO,
838 "EUR:0.5", 841 "EUR:0.5",
839 MHD_HTTP_NOT_FOUND), 842 MHD_HTTP_NOT_FOUND),
840 843
841 /* Test that revoked coins cannot be withdrawn */ 844 /* Test that revoked coins cannot be withdrawn */
842 CMD_TRANSFER_TO_EXCHANGE ("payback-create-reserve-3", 845 CMD_TRANSFER_TO_EXCHANGE ("payback-create-reserve-3",
@@ -846,20 +849,20 @@ run (void *cls,
846 849
847 TALER_TESTING_cmd_withdraw_amount 850 TALER_TESTING_cmd_withdraw_amount
848 ("payback-withdraw-coin-3-revoked", 851 ("payback-withdraw-coin-3-revoked",
849 "payback-create-reserve-3", 852 "payback-create-reserve-3",
850 "EUR:1", 853 "EUR:1",
851 MHD_HTTP_NOT_FOUND), 854 MHD_HTTP_NOT_FOUND),
852 855
853 /* check that we are empty before the rejection test */ 856 /* check that we are empty before the rejection test */
854 TALER_TESTING_cmd_check_bank_transfer 857 TALER_TESTING_cmd_check_bank_transfer
855 ("check_bank_transfer-pr1", exchange_url, 858 ("check_bank_transfer-pr1", exchange_url,
856 "EUR:5.01", 42, 2), 859 "EUR:5.01", 42, 2),
857 TALER_TESTING_cmd_check_bank_transfer 860 TALER_TESTING_cmd_check_bank_transfer
858 ("check_bank_transfer-pr2", exchange_url, 861 ("check_bank_transfer-pr2", exchange_url,
859 "EUR:2.02", 42, 2), 862 "EUR:2.02", 42, 2),
860 TALER_TESTING_cmd_check_bank_transfer 863 TALER_TESTING_cmd_check_bank_transfer
861 ("check_bank_transfer-pr3", exchange_url, 864 ("check_bank_transfer-pr3", exchange_url,
862 "EUR:1.01", 42, 2), 865 "EUR:1.01", 42, 2),
863 866
864 TALER_TESTING_cmd_check_bank_empty 867 TALER_TESTING_cmd_check_bank_empty
865 ("check-empty-again"), 868 ("check-empty-again"),
@@ -867,8 +870,8 @@ run (void *cls,
867 /* Test rejection of bogus wire transfers */ 870 /* Test rejection of bogus wire transfers */
868 CMD_TRANSFER_TO_EXCHANGE_SUBJECT 871 CMD_TRANSFER_TO_EXCHANGE_SUBJECT
869 ("bogus-subject", 872 ("bogus-subject",
870 "EUR:1.01", 873 "EUR:1.01",
871 "not a reserve public key"), 874 "not a reserve public key"),
872 875
873 CMD_EXEC_WIREWATCH ("wirewatch-7"), 876 CMD_EXEC_WIREWATCH ("wirewatch-7"),
874 877
@@ -881,11 +884,11 @@ run (void *cls,
881 #define RESERVE_OPEN_CLOSE_CHUNK 4 884 #define RESERVE_OPEN_CLOSE_CHUNK 4
882 #define RESERVE_OPEN_CLOSE_ITERATIONS 3 885 #define RESERVE_OPEN_CLOSE_ITERATIONS 3
883 #define CONSTANT_KEY \ 886 #define CONSTANT_KEY \
884 "09QGYPEKNHBACK135BNXZFHA0YTQXT1KJDRVXF4J822G99AYNQ8G" 887 "09QGYPEKNHBACK135BNXZFHA0YTQXT1KJDRVXF4J822G99AYNQ8G"
885 888
886 struct TALER_TESTING_Command reserve_open_close 889 struct TALER_TESTING_Command reserve_open_close
887 [(RESERVE_OPEN_CLOSE_ITERATIONS 890 [(RESERVE_OPEN_CLOSE_ITERATIONS
888 * RESERVE_OPEN_CLOSE_CHUNK) + 1]; 891 * RESERVE_OPEN_CLOSE_CHUNK) + 1];
889 892
890 for (unsigned int i = 0; 893 for (unsigned int i = 0;
891 i < RESERVE_OPEN_CLOSE_ITERATIONS; 894 i < RESERVE_OPEN_CLOSE_ITERATIONS;
@@ -894,18 +897,18 @@ run (void *cls,
894 reserve_open_close[i * RESERVE_OPEN_CLOSE_CHUNK] 897 reserve_open_close[i * RESERVE_OPEN_CLOSE_CHUNK]
895 = CMD_TRANSFER_TO_EXCHANGE_SUBJECT 898 = CMD_TRANSFER_TO_EXCHANGE_SUBJECT
896 ("reserve-open-close-key", 899 ("reserve-open-close-key",
897 "EUR:20", 900 "EUR:20",
898 CONSTANT_KEY); 901 CONSTANT_KEY);
899 902
900 reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 1] 903 reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 1]
901 = TALER_TESTING_cmd_exec_wirewatch 904 = TALER_TESTING_cmd_exec_wirewatch
902 ("reserve-open-close-wirewatch", 905 ("reserve-open-close-wirewatch",
903 CONFIG_FILE_EXPIRE_RESERVE_NOW); 906 CONFIG_FILE_EXPIRE_RESERVE_NOW);
904 907
905 reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 2] 908 reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 2]
906 = TALER_TESTING_cmd_exec_aggregator 909 = TALER_TESTING_cmd_exec_aggregator
907 ("reserve-open-close-aggregation", 910 ("reserve-open-close-aggregation",
908 CONFIG_FILE_EXPIRE_RESERVE_NOW); 911 CONFIG_FILE_EXPIRE_RESERVE_NOW);
909 912
910 reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 3] 913 reserve_open_close[(i * RESERVE_OPEN_CLOSE_CHUNK) + 3]
911 = TALER_TESTING_cmd_status ("reserve-open-close-status", 914 = TALER_TESTING_cmd_status ("reserve-open-close-status",
@@ -914,8 +917,8 @@ run (void *cls,
914 MHD_HTTP_OK); 917 MHD_HTTP_OK);
915 } 918 }
916 reserve_open_close 919 reserve_open_close
917 [RESERVE_OPEN_CLOSE_ITERATIONS * RESERVE_OPEN_CLOSE_CHUNK] 920 [RESERVE_OPEN_CLOSE_ITERATIONS * RESERVE_OPEN_CLOSE_CHUNK]
918 = TALER_TESTING_cmd_end (); 921 = TALER_TESTING_cmd_end ();
919 922
920 struct TALER_TESTING_Command commands[] = { 923 struct TALER_TESTING_Command commands[] = {
921 924
@@ -960,7 +963,7 @@ run (void *cls,
960 963
961int 964int
962main (int argc, 965main (int argc,
963 char * const *argv) 966 char *const *argv)
964{ 967{
965 /* These environment variables get in the way... */ 968 /* These environment variables get in the way... */
966 unsetenv ("XDG_DATA_HOME"); 969 unsetenv ("XDG_DATA_HOME");
@@ -969,10 +972,10 @@ main (int argc,
969 "INFO", 972 "INFO",
970 NULL); 973 NULL);
971 if (NULL == (fakebank_url 974 if (NULL == (fakebank_url
972 /* Check fakebank port is available and config cares 975 /* Check fakebank port is available and config cares
973 * about bank url. */ 976 * about bank url. */
974 = TALER_TESTING_prepare_fakebank (CONFIG_FILE, 977 = TALER_TESTING_prepare_fakebank (CONFIG_FILE,
975 "account-2"))) 978 "account-2")))
976 return 77; 979 return 77;
977 TALER_TESTING_cleanup_files (CONFIG_FILE); 980 TALER_TESTING_cleanup_files (CONFIG_FILE);
978 /* @helpers. Run keyup, create tables, ... Note: it 981 /* @helpers. Run keyup, create tables, ... Note: it