summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/setup.sh8
-rwxr-xr-xtest/t1200-git-serve.sh21
2 files changed, 29 insertions, 0 deletions
diff --git a/test/setup.sh b/test/setup.sh
index 26873e8d..2959a4e6 100644
--- a/test/setup.sh
+++ b/test/setup.sh
@@ -98,6 +98,12 @@ AUTH_KEYTYPE_MISSING=sha-rsa
AUTH_KEYTEXT_MISSING=AAAAB3NzaC1yc2EAAAADAQABAAABAQC9UTpssBunuTBCT3KFtv+yb+cN0VmI2C9O9U7wHlkEZWxNBK8is6tnDHXBxRuvRk0LHILkTidLLFX22ZF0+TFgSz7uuEvGZVNpa2Fn2+vKJJYMvZEvb/f8VHF5/Jddt21VOyu23royTN/duiT7WIZdCtEmq5C9Y43NPfsB8FbUc+FVSYT2Lq7g1/bzvFF+CZxwCrGjC3qC7p3pshICfFR8bbWgRN33ClxIQ7MvkcDtfNu38dLotJqdfEa7NdQgba5/S586f1A4OWKc/mQJFyTaGhRBxw/cBSjqonvO0442VYLHFxlrTHoUunKyOJ8+BJfKgjWmfENC9ESY3mL/IEn5
AUTH_FINGERPRINT_MISSING=SHA256:uB0B+30r2WA1TDMUmFcaEBjosjnFGzn33XFhiyvTL9w
+# Setup fake SSH environment.
+SSH_CLIENT='1.2.3.4 1234 22'
+SSH_CONNECTION='1.2.3.4 1234 4.3.2.1 22'
+SSH_TTY=/dev/pts/0
+export SSH_CLIENT SSH_CONNECTION SSH_TTY
+
# Initialize the test database.
rm -f aur.db
sed \
@@ -122,6 +128,8 @@ echo "INSERT INTO Users (ID, UserName, Passwd, Email, AccountTypeID) VALUES (9,
echo "INSERT INTO SSHPubKeys (UserID, Fingerprint, PubKey) VALUES (1, '$AUTH_FINGERPRINT_USER', '$AUTH_KEYTYPE_USER $AUTH_KEYTEXT_USER');" | sqlite3 aur.db
echo "INSERT INTO SSHPubKeys (UserID, Fingerprint, PubKey) VALUES (2, '$AUTH_FINGERPRINT_TU', '$AUTH_KEYTYPE_TU $AUTH_KEYTEXT_TU');" | sqlite3 aur.db
+echo "INSERT INTO Bans (IPAddress, BanTS) VALUES ('1.3.3.7', 0);" | sqlite3 aur.db
+
echo "INSERT INTO PackageBlacklist (Name) VALUES ('forbidden');" | sqlite3 aur.db
echo "INSERT INTO OfficialProviders (Name, Repo, Provides) VALUES ('official', 'core', 'official');" | sqlite3 aur.db
diff --git a/test/t1200-git-serve.sh b/test/t1200-git-serve.sh
index f986b625..07383aff 100755
--- a/test/t1200-git-serve.sh
+++ b/test/t1200-git-serve.sh
@@ -31,6 +31,27 @@ test_expect_success 'Test maintenance mode.' '
mv config.old config
'
+test_expect_success 'Test IP address logging.' '
+ SSH_ORIGINAL_COMMAND=help AUR_USER=user "$GIT_SERVE" 2>actual &&
+ cat >expected <<-EOF &&
+ 1.2.3.4
+ EOF
+ echo "SELECT LastSSHLoginIPAddress FROM Users WHERE UserName = \"user\";" | \
+ sqlite3 aur.db >actual &&
+ test_cmp expected actual
+'
+
+test_expect_success 'Test IP address bans.' '
+ SSH_CLIENT_ORIG="$SSH_CLIENT" &&
+ SSH_CLIENT="1.3.3.7 1337 22" &&
+ SSH_ORIGINAL_COMMAND=help test_must_fail "$GIT_SERVE" 2>actual &&
+ cat >expected <<-EOF &&
+ The SSH interface is disabled for your IP address.
+ EOF
+ test_cmp expected actual &&
+ SSH_CLIENT="$SSH_CLIENT_ORIG"
+'
+
test_expect_success 'Test setup-repo and list-repos.' '
SSH_ORIGINAL_COMMAND="setup-repo foobar" AUR_USER=user \
"$GIT_SERVE" 2>&1 &&