From db65f0a20669a81cb7db4425d7d044b8ff49952a Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 13 Aug 2020 00:41:53 +0530 Subject: remove old tests, superseded by the JS-based harness --- integrationtests/.gitignore | 3 - integrationtests/common.sh | 229 ------------------------------- integrationtests/template.conf | 227 ------------------------------ integrationtests/test-base.sh | 13 -- integrationtests/test-coin-expiration.sh | 14 -- integrationtests/test-double-link.sh | 19 --- integrationtests/test-double-spend.sh | 22 --- integrationtests/test-recoup.sh | 178 ------------------------ integrationtests/test-refund.sh | 26 ---- integrationtests/test-retries.sh | 47 ------- integrationtests/test-tip.sh | 18 --- integrationtests/test-withdrawal.sh | 19 --- 12 files changed, 815 deletions(-) delete mode 100644 integrationtests/.gitignore delete mode 100644 integrationtests/common.sh delete mode 100644 integrationtests/template.conf delete mode 100755 integrationtests/test-base.sh delete mode 100755 integrationtests/test-coin-expiration.sh delete mode 100755 integrationtests/test-double-link.sh delete mode 100755 integrationtests/test-double-spend.sh delete mode 100755 integrationtests/test-recoup.sh delete mode 100755 integrationtests/test-refund.sh delete mode 100755 integrationtests/test-retries.sh delete mode 100755 integrationtests/test-tip.sh delete mode 100755 integrationtests/test-withdrawal.sh (limited to 'integrationtests') diff --git a/integrationtests/.gitignore b/integrationtests/.gitignore deleted file mode 100644 index 447e2f328..000000000 --- a/integrationtests/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.log -*-prod.conf -*.wallet.json diff --git a/integrationtests/common.sh b/integrationtests/common.sh deleted file mode 100644 index d3f347672..000000000 --- a/integrationtests/common.sh +++ /dev/null @@ -1,229 +0,0 @@ -#!/bin/bash - -set -eu - -function setup_config() { - echo -n "Testing for taler-bank-manage" - taler-bank-manage -h >/dev/null /dev/null /dev/null /dev/null || true - - export WALLET_DB=wallet-${SCRIPT_NAME}.json - rm "$WALLET_DB" 2>/dev/null || true - - # Clean up - DATA_DIR=$(taler-config -f -c "$CONF" -s PATHS -o TALER_HOME) - rm -rf "$DATA_DIR" || true - - # reset database - dropdb "$TARGET_DB" >/dev/null 2>/dev/null || true - createdb "$TARGET_DB" || exit_skip "Could not create database $TARGET_DB" - - # obtain key configuration data - MASTER_PRIV_FILE=$(taler-config -f -c "$CONF" -s EXCHANGE -o MASTER_PRIV_FILE) - MASTER_PRIV_DIR=$(dirname "$MASTER_PRIV_FILE") - mkdir -p "$MASTER_PRIV_DIR" - gnunet-ecc -g1 "$MASTER_PRIV_FILE" >/dev/null - MASTER_PUB=$(gnunet-ecc -p "$MASTER_PRIV_FILE") - EXCHANGE_URL=$(taler-config -c "$CONF" -s EXCHANGE -o BASE_URL) - MERCHANT_PORT=$(taler-config -c "$CONF" -s MERCHANT -o PORT) - # shellcheck disable=SC2034 - MERCHANT_URL=http://localhost:${MERCHANT_PORT}/ - BANK_PORT=$(taler-config -c "$CONF" -s BANK -o HTTP_PORT) - # shellcheck disable=SC2034 - BANK_URL=http://localhost:${BANK_PORT}/ - AUDITOR_URL=http://localhost:8083/ - - # patch configuration - taler-config -c "$CONF" -s exchange -o MASTER_PUBLIC_KEY -V "$MASTER_PUB" - taler-config -c "$CONF" -s merchant-exchange-default -o MASTER_KEY -V "$MASTER_PUB" - taler-config -c "$CONF" -s exchangedb-postgres -o CONFIG -V "postgres:///$TARGET_DB" - taler-config -c "$CONF" -s auditordb-postgres -o CONFIG -V "postgres:///$TARGET_DB" - taler-config -c "$CONF" -s merchantdb-postgres -o CONFIG -V "postgres:///$TARGET_DB" - taler-config -c "$CONF" -s bank -o database -V "postgres:///$TARGET_DB" -} - -function setup_services() { - # setup exchange - echo "Setting up exchange" - taler-exchange-dbinit -c "$CONF" - taler-exchange-wire -c "$CONF" 2>taler-exchange-wire.log - taler-exchange-keyup -L INFO -c "$CONF" -o e2a.dat 2>taler-exchange-keyup.log - - # setup auditor - echo "Setting up auditor" - taler-auditor-dbinit -c "$CONF" - taler-auditor-exchange -c "$CONF" -m "$MASTER_PUB" -u "$EXCHANGE_URL" - taler-auditor-sign -c "$CONF" -u $AUDITOR_URL -r e2a.dat -o a2e.dat -m "$MASTER_PUB" - rm -f e2a.dat - - # provide auditor's signature to exchange - ABD=$(taler-config -c "$CONF" -s EXCHANGEDB -o AUDITOR_BASE_DIR -f) - mkdir -p "$ABD" - mv a2e.dat "$ABD" -} - -function launch_services() { - # Launch services - echo "Launching services" - taler-bank-manage-testing "$CONF" "postgres:///$TARGET_DB" serve-http &>bank-"$SCRIPT_NAME".log & - taler-exchange-httpd -c "$CONF" 2>taler-exchange-httpd.log & - # shellcheck disable=SC2034 - EXCHANGE_PID=$! - taler-merchant-httpd -c "$CONF" -L INFO 2>taler-merchant-httpd.log & - # shellcheck disable=SC2034 - MERCHANT_PID=$! - taler-exchange-wirewatch -c "$CONF" 2>taler-exchange-wirewatch.log & - taler-auditor-httpd -c "$CONF" 2>taler-auditor-httpd.log & -} - -function wait_for_services() { - # Wait for bank to be available (usually the slowest) - for _ in $(seq 1 50); do - echo -n "." - sleep 0.2 - OK=0 - wget "$BANK_URL" -o /dev/null -O /dev/null >/dev/null || continue - OK=1 - break - done - if [ 1 != $OK ]; then - exit_skip "Failed to launch bank" - fi - # Wait for all other services to be available - for _ in $(seq 1 50); do - echo -n "." - sleep 0.1 - OK=0 - wget "$EXCHANGE_URL" -o /dev/null -O /dev/null >/dev/null || continue - wget "$MERCHANT_URL" -o /dev/null -O /dev/null >/dev/null || continue - wget "$AUDITOR_URL" -o /dev/null -O /dev/null >/dev/null || continue - OK=1 - break - done - if [ 1 != $OK ]; then - shutdown_services - exit_skip "Failed to launch services" - fi - echo " DONE" -} - -# Configure merchant instances -function configure_merchant() { - json=' - { - "id": "default", - "name": "GNU Taler Merchant", - "payto_uris": ["payto://x-taler-bank/test_merchant"], - "address": {}, - "jurisdiction": {}, - "default_max_wire_fee": "TESTKUDOS:1", - "default_wire_fee_amortization": 3, - "default_max_deposit_fee": "TESTKUDOS:1", - "default_wire_transfer_delay": {"d_ms": "forever"}, - "default_pay_delay": {"d_ms": "forever"} - } - ' - curl -v -XPOST --data "$json" "${MERCHANT_URL}private/instances" -} - -function normal_start_and_wait() { - setup_config "$1" - setup_services - launch_services - wait_for_services - configure_merchant -} - -# provide the service URL as first parameter -function wait_for_service() { - for _ in $(seq 1 50); do - echo -n "." - sleep 0.1 - wget "$1" -o /dev/null -O /dev/null >/dev/null || continue - echo " DONE" - break - done -} - -function get_balance() { - taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG" -} - -function assert_less_than() { - AMOUNT_1=${1//TESTKUDOS:/} - AMOUNT_2=${2//TESTKUDOS:/} - if (($(echo "$AMOUNT_1 >= $AMOUNT_2" | bc -l))); then - exit_error "$1 is not lower than $2" - fi -} - -function assert_greater_than() { - AMOUNT_1=${1//TESTKUDOS:/} - AMOUNT_2=${2//TESTKUDOS:/} - if (($(echo "$AMOUNT_1 <= $AMOUNT_2" | bc -l))); then - exit_error "$1 is not greater than $2" - fi -} - -function assert_equal() { - [[ "$1" == "$2" ]] || exit_error "$1 is not equal to $2" -} - -function shutdown_services() { - echo "Shutting down services" - jobs -p | xargs --no-run-if-empty kill || true - wait - - # clean up - echo "Final clean up" - dropdb "$TARGET_DB" >/dev/null 2>/dev/null || true - - rm "$WALLET_DB" 2>/dev/null || true - - rm -rf "$DATA_DIR" || true - rm "$CONF" -} - -# Exit, with status code "skip" (no 'real' failure) -function exit_skip() { - echo "$1" - exit 77 -} - -function exit_error() { - echo -e "\033[0;31mError: $1\033[0m" - exit 1 -} - -function exit_success() { - echo -e "\033[0;32mSUCCESS \o/\033[0m" - exit 0 -} diff --git a/integrationtests/template.conf b/integrationtests/template.conf deleted file mode 100644 index 306a9c674..000000000 --- a/integrationtests/template.conf +++ /dev/null @@ -1,227 +0,0 @@ -[exchange] -KEYDIR = ${TALER_DATA_HOME}/exchange/live-keys/ -REVOCATION_DIR = ${TALER_DATA_HOME}/exchange/revocations/ -MAX_KEYS_CACHING = forever -DB = postgres -MASTER_PRIV_FILE = ${TALER_DATA_HOME}/exchange/offline-keys/master.priv -SERVE = tcp -UNIXPATH = ${TALER_RUNTIME_DIR}/exchange.http -UNIXPATH_MODE = 660 -PORT = 8081 -BASE_URL = http://localhost:8081/ -SIGNKEY_DURATION = 4 weeks -LEGAL_DURATION = 2 years -LOOKAHEAD_SIGN = 32 weeks 1 day -LOOKAHEAD_PROVIDE = 4 weeks 1 day - -[merchant] -SERVE = tcp -PORT = 9966 -UNIXPATH = ${TALER_RUNTIME_DIR}/merchant.http -UNIXPATH_MODE = 660 -DEFAULT_WIRE_FEE_AMORTIZATION = 1 -DB = postgres -WIREFORMAT = default -# Set very low, so we can be sure that the database generated -# will contain wire transfers "ready" for the aggregator. -WIRE_TRANSFER_DELAY = 1 minute -DEFAULT_PAY_DEADLINE = 1 day -DEFAULT_MAX_DEPOSIT_FEE = TESTKUDOS:0.1 -KEYFILE = ${TALER_DATA_HOME}/merchant/merchant.priv -DEFAULT_MAX_WIRE_FEE = TESTKUDOS:0.10 - -# Ensure that merchant reports EVERY deposit confirmation to auditor -FORCE_AUDIT = YES - -[instance-default] -KEYFILE = ${TALER_DATA_HOME}/merchant/default.priv -NAME = Merchant Inc. -TIP_EXCHANGE = http://localhost:8081/ -# TODO necessary to specify a different key here? -TIP_RESERVE_PRIV_FILENAME = ${TALER_DATA_HOME}/merchant/default.priv - -[auditor] -DB = postgres -AUDITOR_PRIV_FILE = ${TALER_DATA_HOME}/auditor/offline-keys/auditor.priv -SERVE = tcp -UNIXPATH = ${TALER_RUNTIME_DIR}/exchange.http -UNIXPATH_MODE = 660 -PORT = 8083 -AUDITOR_URL = http://localhost:8083/ -TINY_AMOUNT = TESTKUDOS:0.01 - -[PATHS] -TALER_HOME = ${PWD}/generate_auditordb_home/ -TALER_DATA_HOME = $TALER_HOME/.local/share/taler/ -TALER_CONFIG_HOME = $TALER_HOME/.config/taler/ -TALER_CACHE_HOME = $TALER_HOME/.cache/taler/ -TALER_RUNTIME_DIR = ${TMPDIR:-${TMP:-/tmp}}/taler-system-runtime/ - -[bank] -DATABASE = postgres:///taler-auditor-basedb -MAX_DEBT = TESTKUDOS:50.0 -MAX_DEBT_BANK = TESTKUDOS:100000.0 -HTTP_PORT = 8082 -SUGGESTED_EXCHANGE = http://localhost:8081/ -SUGGESTED_EXCHANGE_PAYTO = payto://x-taler-bank/localhost/2 -ALLOW_REGISTRATIONS = YES - -[exchangedb] -AUDITOR_BASE_DIR = ${TALER_DATA_HOME}/auditors/ -WIREFEE_BASE_DIR = ${TALER_DATA_HOME}/exchange/wirefees/ -IDLE_RESERVE_EXPIRATION_TIME = 4 weeks -LEGAL_RESERVE_EXPIRATION_TIME = 7 years - -[exchange_keys] -signkey_duration = 4 weeks -legal_duration = 2 years -lookahead_sign = 32 weeks 1 day -lookahead_provide = 4 weeks 1 day - -[taler] -CURRENCY = TESTKUDOS -CURRENCY_ROUND_UNIT = TESTKUDOS:0.01 - -[exchange-account-1] -WIRE_RESPONSE = ${TALER_DATA_HOME}/exchange/account-1.json -PAYTO_URI = payto://x-taler-bank/localhost/Exchange -enable_debit = yes -enable_credit = yes -WIRE_GATEWAY_URL = "http://localhost:8082/taler-wire-gateway/Exchange/" -WIRE_GATEWAY_AUTH_METHOD = basic -USERNAME = Exchange -PASSWORD = x - -[merchant-account-merchant] -PAYTO_URI = payto://x-taler-bank/localhost/42 -WIRE_RESPONSE = ${TALER_CONFIG_HOME}/merchant/account-3.json -HONOR_default = YES -ACTIVE_default = YES - -[fees-x-taler-bank] -wire-fee-2020 = TESTKUDOS:0.01 -closing-fee-2020 = TESTKUDOS:0.01 -wire-fee-2021 = TESTKUDOS:0.01 -closing-fee-2021 = TESTKUDOS:0.01 -wire-fee-2022 = TESTKUDOS:0.01 -closing-fee-2022 = TESTKUDOS:0.01 -wire-fee-2023 = TESTKUDOS:0.01 -closing-fee-2023 = TESTKUDOS:0.01 -wire-fee-2024 = TESTKUDOS:0.01 -closing-fee-2024 = TESTKUDOS:0.01 -wire-fee-2025 = TESTKUDOS:0.01 -closing-fee-2025 = TESTKUDOS:0.01 -wire-fee-2026 = TESTKUDOS:0.01 -closing-fee-2026 = TESTKUDOS:0.01 -wire-fee-2027 = TESTKUDOS:0.01 -closing-fee-2027 = TESTKUDOS:0.01 -wire-fee-2028 = TESTKUDOS:0.01 -closing-fee-2028 = TESTKUDOS:0.01 - -[merchant-instance-wireformat-default] -TEST_RESPONSE_FILE = ${TALER_CONFIG_HOME}/merchant/wire/tutorial.json - -[merchant-exchange-default] -EXCHANGE_BASE_URL = http://localhost:8081/ -CURRENCY = TESTKUDOS - -[payments-generator] -currency = TESTKUDOS -instance = default -bank = http://localhost:8082/ -merchant = http://localhost:9966/ -exchange_admin = http://localhost:18080/ -exchange-admin = http://localhost:18080/ -exchange = http://localhost:8081/ - -[coin_kudos_ct_1] -value = TESTKUDOS:0.01 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.01 -fee_deposit = TESTKUDOS:0.01 -fee_refresh = TESTKUDOS:0.01 -fee_refund = TESTKUDOS:0.01 -rsa_keysize = 1024 - -[coin_kudos_ct_10] -value = TESTKUDOS:0.10 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.01 -fee_deposit = TESTKUDOS:0.01 -fee_refresh = TESTKUDOS:0.03 -fee_refund = TESTKUDOS:0.01 -rsa_keysize = 1024 - -[coin_kudos_1] -value = TESTKUDOS:1 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.02 -fee_deposit = TESTKUDOS:0.02 -fee_refresh = TESTKUDOS:0.03 -fee_refund = TESTKUDOS:0.01 -rsa_keysize = 1024 - -[coin_kudos_2] -value = TESTKUDOS:2 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.03 -fee_deposit = TESTKUDOS:0.03 -fee_refresh = TESTKUDOS:0.04 -fee_refund = TESTKUDOS:0.02 -rsa_keysize = 1024 - -[coin_kudos_4] -value = TESTKUDOS:4 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.03 -fee_deposit = TESTKUDOS:0.03 -fee_refresh = TESTKUDOS:0.04 -fee_refund = TESTKUDOS:0.02 -rsa_keysize = 1024 - -[coin_kudos_5] -value = TESTKUDOS:5 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.01 -fee_deposit = TESTKUDOS:0.01 -fee_refresh = TESTKUDOS:0.03 -fee_refund = TESTKUDOS:0.01 -rsa_keysize = 1024 - -[coin_kudos_8] -value = TESTKUDOS:8 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.05 -fee_deposit = TESTKUDOS:0.02 -fee_refresh = TESTKUDOS:0.03 -fee_refund = TESTKUDOS:0.04 -rsa_keysize = 1024 - -[coin_kudos_10] -value = TESTKUDOS:10 -duration_withdraw = 7 days -duration_spend = 2 years -duration_legal = 3 years -fee_withdraw = TESTKUDOS:0.01 -fee_deposit = TESTKUDOS:0.01 -fee_refresh = TESTKUDOS:0.03 -fee_refund = TESTKUDOS:0.01 -rsa_keysize = 1024 - -[benchmark] -BANK_DETAILS = bank_details.json -MERCHANT_DETAILS = merchant_details.json diff --git a/integrationtests/test-base.sh b/integrationtests/test-base.sh deleted file mode 100755 index 676ba7fb7..000000000 --- a/integrationtests/test-base.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# Script to generate the basic database for auditor -# testing from a 'correct' interaction between exchange, -# wallet and merchant. - -source "common.sh" -normal_start_and_wait "base" - -# run wallet CLI -echo "Running wallet" -taler-wallet-cli testing integrationtest -e "$EXCHANGE_URL" -m "$MERCHANT_URL" -b "$BANK_URL" - -exit_success diff --git a/integrationtests/test-coin-expiration.sh b/integrationtests/test-coin-expiration.sh deleted file mode 100755 index 83f7477bf..000000000 --- a/integrationtests/test-coin-expiration.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# Script to check that the wallet automatically refreshes coins for they expire - -source "common.sh" -normal_start_and_wait "coin-expiration" - -echo "Withdraw TESTKUDOS" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" >>"$LOG" 2>>"$LOG" -echo "Balance after withdrawal: $(get_balance)" - -# TODO time-travel to check that wallet actually refreshed coin before expiration -taler-wallet-cli --wallet-db="$WALLET_DB" advanced dump-coins - -exit_success diff --git a/integrationtests/test-double-link.sh b/integrationtests/test-double-link.sh deleted file mode 100755 index d5f5d3329..000000000 --- a/integrationtests/test-double-link.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Script to check that Uris are properly handled when used a second time - -source "common.sh" -normal_start_and_wait "double-link" - -echo "Getting pay taler:// Uri" -PAY_URI=$(taler-wallet-cli testing gen-pay-uri -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:1" -s "foo" | grep -E -o 'taler://.*') -echo "Trying to pay without balance" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri --yes "$PAY_URI" 2>&1 | grep -q "insufficient balance" || exit_error "not reporting insufficient balance" -echo "Withdrawing" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" > /dev/null -echo "Trying to pay again, should work this time" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri --yes "$PAY_URI" > /dev/null -echo "Trying to pay what was paid already should throw error" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri --yes "$PAY_URI" 2>&1 | grep -q "already paid" || exit_error "not reporting already paid" -echo "Already paid properly detected" - -exit_success diff --git a/integrationtests/test-double-spend.sh b/integrationtests/test-double-spend.sh deleted file mode 100755 index 81a4563a6..000000000 --- a/integrationtests/test-double-spend.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# Script to check that the wallet can not double spend coins and handles this error well - -source "common.sh" -normal_start_and_wait "double-spend" - -echo "Withdraw TESTKUDOS" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" >/dev/null -# Copy wallet database before spending coins -cp "$WALLET_DB" "$WALLET_DB.bak" -echo "Spend all the money" -taler-wallet-cli --wallet-db="$WALLET_DB" testing test-pay -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:9.5" -s "foo" -echo "New balance: $(get_balance)" -# Restore old wallet database -mv "$WALLET_DB.bak" "$WALLET_DB" -echo "Balance after getting old coins back: $(get_balance)" -echo "Try to double-spend" -# TODO this should probably fail more gracefully -# "exchange_reply: { hint: 'insufficient funds', code: 1200 } -taler-wallet-cli --wallet-db="$WALLET_DB" testing test-pay -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:9.5" -s "foo" - -exit_success diff --git a/integrationtests/test-recoup.sh b/integrationtests/test-recoup.sh deleted file mode 100755 index 72f7e1ad5..000000000 --- a/integrationtests/test-recoup.sh +++ /dev/null @@ -1,178 +0,0 @@ -#!/bin/bash -# Script to test revocation. -# -# Requires the wallet CLI to be installed and in the path. Furthermore, the -# user running this script must be Postgres superuser and be allowed to -# create/drop databases. -# Also the jq utility needs to be installed - -echo -n "Testing for jq" -jq --version >/dev/null taler-exchange-httpd.log & -export EXCHANGE_PID=$! - -# Wait for exchange to be available -for n in `seq 1 50` -do - echo -n "." - sleep 0.1 - OK=0 - # exchange - wget http://localhost:8081/ -o /dev/null -O /dev/null >/dev/null || continue - OK=1 - break -done - -echo "Refreshing coin $rrc" -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB advanced force-refresh "$rrc" -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB run-until-done - -# Update our list of the coins -export coins=$(taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB advanced dump-coins) - -# Find resulting refreshed coin -export freshc=$(echo "$coins" | jq -r --arg rrc "$rrc" \ - '[.coins[] | select((.refresh_parent_coin_pub == $rrc) and .denom_value == "TESTKUDOS:0.1")][0] | .coin_pub' -) - -# Find the denom of freshc -export fresh_denom=$(echo "$coins" | jq -r --arg rrc "$rrc" \ - '[.coins[] | select((.refresh_parent_coin_pub == $rrc) and .denom_value == "TESTKUDOS:0.1")][0] | .denom_pub_hash' -) - -echo "Coin ${freshc} of denomination ${fresh_denom} is the result of the refresh" - -# Find all other coins, which will be suspended -export susp=$(echo "$coins" | jq --arg freshc "$freshc" '[.coins[] | select(.coin_pub != $freshc) | .coin_pub]') - - -# Do the revocation of freshc -echo "Revoking ${fresh_denom} (to affect coin ${freshc})" -taler-exchange-keyup -c $CONF -o e2a3.dat -r $fresh_denom -taler-auditor-sign -c $CONF -u $AUDITOR_URL -r e2a3.dat -o a2e3.dat -m $MASTER_PUB -rm e2a3.dat -mv a2e3.dat $ABD - -# Restart the exchange... -kill -SIGUSR1 $EXCHANGE_PID -sleep 1 # give exchange time to re-scan data - - -# Now we suspend the other coins, so later we will pay with the recouped coin -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB advanced suspend-coins "$susp" - -# Update exchange /keys so recoup gets scheduled -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB exchanges update \ - -f $EXCHANGE_URL - -# Block until scheduled operations are done -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB run-until-done - -echo "Restarting merchant (so new keys are known)" -kill -TERM $MERCHANT_PID -taler-merchant-httpd -c $CONF -L INFO 2> taler-merchant-httpd.log & -MERCHANT_PID=$! -# Wait for merchant to be again available -for n in `seq 1 50` -do - echo -n "." - sleep 0.1 - OK=0 - # merchant - wget http://localhost:9966/ -o /dev/null -O /dev/null >/dev/null || continue - OK=1 - break -done - -# Now we buy something, only the coins resulting from recoup+refresh will be -# used, as other ones are suspended -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB testing test-pay \ - -m $MERCHANT_URL -k sandbox \ - -a "TESTKUDOS:0.02" -s "bar" -taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB run-until-done - -echo "SUCCESS: Bought something with refresh-recouped coin" - -rm -r "$TMP_DIR" - -exit 0 diff --git a/integrationtests/test-refund.sh b/integrationtests/test-refund.sh deleted file mode 100755 index 7b8fbdef7..000000000 --- a/integrationtests/test-refund.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# Script to check that the wallet can handle refund URIs and actually process the refund - -source "common.sh" -normal_start_and_wait "refund" - -echo "Withdraw TESTKUDOS" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" >>"$LOG" 2>>"$LOG" -BALANCE_1=$(get_balance) -echo "Balance after withdrawal: $BALANCE_1" -REFUND_URI=$(taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing gen-refund-uri \ - -m "$MERCHANT_URL" -k sandbox \ - -s "first refund" -a "TESTKUDOS:8" -r "TESTKUDOS:2" 2>>"$LOG" | grep -E -m 1 -o "taler://refund.*insecure=1") -BALANCE_2=$(get_balance) -echo "Balance after payment: $BALANCE_2" -assert_less_than "$BALANCE_2" "$BALANCE_1" -taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG" -echo "Handling refund: $REFUND_URI" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri "$REFUND_URI" 2>"$LOG" -taler-wallet-cli --wallet-db="$WALLET_DB" run-until-done 2>>"$LOG" >>"$LOG" -BALANCE_3=$(get_balance) -echo "Balance after first refund: $BALANCE_3" -assert_greater_than "$BALANCE_3" "$BALANCE_2" -# TODO how to test second refund for same purchase? - -exit_success diff --git a/integrationtests/test-retries.sh b/integrationtests/test-retries.sh deleted file mode 100755 index 3d953eab0..000000000 --- a/integrationtests/test-retries.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# Script to check that the wallet retries operations when services are not reachable - -source "common.sh" -normal_start_and_wait "retries" - -# TODO try withdrawal when bank is down - -echo "Withdraw TESTKUDOS" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" 2>>"$LOG" >>"$LOG" -BALANCE_1=$(get_balance) -echo "Balance after withdrawal: $BALANCE_1" -echo "Getting pay taler:// Uri" -PAY_URI=$(taler-wallet-cli testing gen-pay-uri -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:1" -s "foo" | grep -E -o 'taler://.*') -echo "Trying to pay with exchange down, will fail" -kill "$EXCHANGE_PID" && sleep 1 -ps -p "$EXCHANGE_PID" >"$LOG" && exit_error "exchange still alive" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri --yes "$PAY_URI" 2>>"$LOG" >>"$LOG" && exit_error "could pay with exchange down" -echo "Re-launching exchange" -taler-exchange-httpd -c "$CONF" 2>taler-exchange-httpd.log & -EXCHANGE_PID=$! -echo -n "Wait for exchange to start" -wait_for_service "$EXCHANGE_URL" -echo "Retrying operations with exchange up" -taler-wallet-cli --wallet-db="$WALLET_DB" run-until-done 2>>"$LOG" >>"$LOG" -BALANCE_2=$(get_balance) -echo "Balance after re-tried payment: $BALANCE_2" -assert_less_than "$BALANCE_2" "$BALANCE_1" - -echo "Getting pay taler:// Uri" -PAY_URI=$(taler-wallet-cli testing gen-pay-uri -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:1" -s "foo" | grep -E -o 'taler://.*') -echo "Trying to pay with merchant down, will fail" -kill "$MERCHANT_PID" && sleep 1 -ps -p "$MERCHANT_PID" >"$LOG" && exit_error "merchant still alive" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri --yes "$PAY_URI" 2>>"$LOG" >>"$LOG" && exit_error "could pay with merchant down" -echo "Re-launching merchant" -taler-merchant-httpd -c "$CONF" -L INFO 2>taler-merchant-httpd.log & -MERCHANT_PID=$! -echo -n "Wait for merchant to start" -wait_for_service "$MERCHANT_URL" -echo "Retrying payment with merchant up" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri --yes "$PAY_URI" 2>>"$LOG" >>"$LOG" -BALANCE_3=$(get_balance) -echo "Balance after re-tried payment: $BALANCE_3" -assert_less_than "$BALANCE_3" "$BALANCE_2" - -exit_success diff --git a/integrationtests/test-tip.sh b/integrationtests/test-tip.sh deleted file mode 100755 index 8bdcc6ef3..000000000 --- a/integrationtests/test-tip.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Script to check that the wallet can handle tip URIs and actually process the tips - -source "common.sh" -normal_start_and_wait "tip" - -# TODO fund exchange tipping reserve: 404 tipping reserve unknown at exchange -TIP_URI=$(taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing gen-tip-uri \ - -m "$MERCHANT_URL" -k sandbox -a "TESTKUDOS:5" 2>>"$LOG" | grep -E -m 1 -o "taler://tip.*insecure=1") -echo -n "Balance after tip: " -taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG" -echo "Handling tip: $TIP_URI" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle handle-uri "$TIP_URI" 2>"$LOG" -taler-wallet-cli --wallet-db="$WALLET_DB" run-until-done 2>>"$LOG" >>"$LOG" -echo -n "Balance after first tip: " -taler-wallet-cli --wallet-db="$WALLET_DB" balance 2>>"$LOG" - -exit_success diff --git a/integrationtests/test-withdrawal.sh b/integrationtests/test-withdrawal.sh deleted file mode 100755 index 1450f6258..000000000 --- a/integrationtests/test-withdrawal.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Script to check that the wallet does a withdrawal correctly - -source "common.sh" -normal_start_and_wait "withdrawal" - -echo "Withdraw 5 TESTKUDOS" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:5" >>"$LOG" 2>>"$LOG" -BALANCE_1=$(get_balance) -assert_equal "$BALANCE_1" "TESTKUDOS:4.84" -echo "Balance after withdrawal: $BALANCE_1" - -echo "Withdraw 10 TESTKUDOS" -taler-wallet-cli --wallet-db="$WALLET_DB" --no-throttle testing withdraw -e "$EXCHANGE_URL" -b "$BANK_URL" -a "TESTKUDOS:10" >>"$LOG" 2>>"$LOG" -BALANCE_2=$(get_balance) -assert_equal "$BALANCE_2" "TESTKUDOS:14.66" -echo "Balance after withdrawal: $BALANCE_2" - -exit_success -- cgit v1.2.3