summaryrefslogtreecommitdiffstats
path: root/git-interface
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@archlinux.org>2016-08-06 01:45:15 +0200
committerLukas Fleischer <lfleischer@archlinux.org>2016-08-06 01:50:17 +0200
commit83df9808b4d533473da51c819c88214a406c5cb9 (patch)
treee43b392c9030b2dddb25a94471e8b7eb161fdf41 /git-interface
parentdd9c6f3ddca37479ce14425c0a82a4b46d7a727a (diff)
downloadaurweb-83df9808b4d533473da51c819c88214a406c5cb9.tar.xz
Add tests for the restore command
Test the restore mode of git-serve and git-update. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
Diffstat (limited to 'git-interface')
-rwxr-xr-xgit-interface/test/t0002-serve.sh17
-rwxr-xr-xgit-interface/test/t0003-update.sh29
2 files changed, 46 insertions, 0 deletions
diff --git a/git-interface/test/t0002-serve.sh b/git-interface/test/t0002-serve.sh
index f36f1d8..52fdcd1 100755
--- a/git-interface/test/t0002-serve.sh
+++ b/git-interface/test/t0002-serve.sh
@@ -85,4 +85,21 @@ test_expect_success "Try to push to someone else's repository as Trusted User."
test_cmp expected actual
'
+test_expect_success "Test restore." '
+ echo "DELETE FROM PackageBases WHERE Name = \"foobar\";" | \
+ sqlite3 aur.db &&
+ cat >expected <<-EOF &&
+ user
+ foobar
+ EOF
+ SSH_ORIGINAL_COMMAND="restore foobar" AUR_USER=user AUR_PRIVILEGED=0 \
+ "$GIT_SERVE" 2>&1 >actual
+ test_cmp expected actual
+'
+
+test_expect_success "Try to restore an existing package base." '
+ SSH_ORIGINAL_COMMAND="restore foobar2" AUR_USER=user AUR_PRIVILEGED=0 \
+ test_must_fail "$GIT_SERVE" 2>&1
+'
+
test_done
diff --git a/git-interface/test/t0003-update.sh b/git-interface/test/t0003-update.sh
index 810b860..81c5687 100755
--- a/git-interface/test/t0003-update.sh
+++ b/git-interface/test/t0003-update.sh
@@ -85,6 +85,35 @@ test_expect_success 'Test update hook on an updated repository.' '
test_cmp expected actual
'
+test_expect_success 'Test restore mode.' '
+ AUR_USER=user AUR_PKGBASE=foobar AUR_PRIVILEGED=0 \
+ "$GIT_UPDATE" restore 2>&1 &&
+ cat >expected <<-EOF &&
+ 2|2|foobar2|1-1|aurweb test package.|https://aur.archlinux.org/
+ 3|1|foobar|1-2|aurweb test package.|https://aur.archlinux.org/
+ 1|GPL
+ 2|MIT
+ 2|2
+ 3|1
+ 2|1|python-pygit2||
+ 3|1|python-pygit2||
+ 1|1
+ 2|1
+ EOF
+ >actual &&
+ for t in Packages Licenses PackageLicenses Groups PackageGroups \
+ PackageDepends PackageRelations PackageSources \
+ PackageNotifications; do
+ echo "SELECT * FROM $t;" | sqlite3 aur.db >>actual
+ done &&
+ test_cmp expected actual
+'
+
+test_expect_success 'Test restore mode on a non-existent repository.' '
+ AUR_USER=user AUR_PKGBASE=foobar3 AUR_PRIVILEGED=0 \
+ test_must_fail "$GIT_UPDATE" restore 2>&1
+'
+
test_expect_success 'Pushing to a branch other than master.' '
old=0000000000000000000000000000000000000000 &&
new=$(git -C aur.git rev-parse HEAD) &&