aboutsummaryrefslogtreecommitdiff
path: root/integrationtests
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-05-06 16:05:38 -0300
committerTorsten Grote <t@grobox.de>2020-05-06 16:05:38 -0300
commitb7c75bd56a484efcf77210f1541cda67e2a90f61 (patch)
tree29ef27231280b5756ed542084a60e98f418b9537 /integrationtests
parent85af5421e53f92f24919cb57c02efb6f72fb8e27 (diff)
integration test for handling the same pay URI multiple times
Diffstat (limited to 'integrationtests')
-rw-r--r--integrationtests/common.sh11
-rwxr-xr-xintegrationtests/test-base.sh2
-rwxr-xr-xintegrationtests/test-double-link.sh26
-rwxr-xr-xintegrationtests/test-recoup.sh1
4 files changed, 34 insertions, 6 deletions
diff --git a/integrationtests/common.sh b/integrationtests/common.sh
index 82b3a129f..0104dbc9c 100644
--- a/integrationtests/common.sh
+++ b/integrationtests/common.sh
@@ -14,8 +14,8 @@ function setup_config() {
[[ "$(taler-merchant-httpd -v)" =~ "taler-merchant-httpd v" ]] || exit_skip " MISSING"
echo " FOUND"
- trap 'jobs -p | xargs kill &> /dev/null || true' ERR
- trap 'jobs -p | xargs kill &> /dev/null || true' EXIT
+ trap shutdown_services ERR
+ trap shutdown_services EXIT
SCRIPT_NAME=$1
@@ -135,7 +135,7 @@ function wait_for_services() {
function shutdown_services() {
echo "Shutting down services"
- jobs -p | xargs kill
+ jobs -p | xargs --no-run-if-empty kill || true
wait
# clean up
@@ -151,3 +151,8 @@ function exit_skip() {
echo "$1"
exit 77
}
+
+function exit_error() {
+ echo "Error: $1"
+ exit 1
+}
diff --git a/integrationtests/test-base.sh b/integrationtests/test-base.sh
index 45554f0bb..337d8b131 100755
--- a/integrationtests/test-base.sh
+++ b/integrationtests/test-base.sh
@@ -13,6 +13,4 @@ wait_for_services
echo "Running wallet"
taler-wallet-cli testing integrationtest -e "$EXCHANGE_URL" -m "$MERCHANT_URL" -b "$BANK_URL"
-shutdown_services
-
exit 0
diff --git a/integrationtests/test-double-link.sh b/integrationtests/test-double-link.sh
new file mode 100755
index 000000000..75de484c3
--- /dev/null
+++ b/integrationtests/test-double-link.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# Script to check that Uris are properly handled when used a second time
+
+source "common.sh"
+setup_config "double-link"
+setup_services
+launch_services
+wait_for_services
+
+WALLET_DB=wallet-double-link.json
+
+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"
+
+rm $WALLET_DB || true
+
+exit 0
diff --git a/integrationtests/test-recoup.sh b/integrationtests/test-recoup.sh
index ea4d9380a..938a8506a 100755
--- a/integrationtests/test-recoup.sh
+++ b/integrationtests/test-recoup.sh
@@ -175,7 +175,6 @@ taler-wallet-cli $TIMETRAVEL --wallet-db=$WALLET_DB run-until-done
echo "Bought something with refresh-recouped coin"
-shutdown_services
rm -r "$TMP_DIR"
exit 0