summaryrefslogtreecommitdiffstats
path: root/routers/private/hook_verification_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/private/hook_verification_test.go')
-rw-r--r--routers/private/hook_verification_test.go46
1 files changed, 46 insertions, 0 deletions
diff --git a/routers/private/hook_verification_test.go b/routers/private/hook_verification_test.go
new file mode 100644
index 0000000..5f0d1d0
--- /dev/null
+++ b/routers/private/hook_verification_test.go
@@ -0,0 +1,46 @@
+// Copyright 2023 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package private
+
+import (
+ "context"
+ "testing"
+
+ "code.gitea.io/gitea/models/unittest"
+ "code.gitea.io/gitea/modules/git"
+
+ "github.com/stretchr/testify/require"
+)
+
+var testReposDir = "tests/repos/"
+
+func TestVerifyCommits(t *testing.T) {
+ unittest.PrepareTestEnv(t)
+
+ gitRepo, err := git.OpenRepository(context.Background(), testReposDir+"repo1_hook_verification")
+ defer gitRepo.Close()
+ require.NoError(t, err)
+
+ objectFormat, err := gitRepo.GetObjectFormat()
+ require.NoError(t, err)
+
+ testCases := []struct {
+ base, head string
+ verified bool
+ }{
+ {"72920278f2f999e3005801e5d5b8ab8139d3641c", "d766f2917716d45be24bfa968b8409544941be32", true},
+ {objectFormat.EmptyObjectID().String(), "93eac826f6188f34646cea81bf426aa5ba7d3bfe", true}, // New branch with verified commit
+ {"9779d17a04f1e2640583d35703c62460b2d86e0a", "72920278f2f999e3005801e5d5b8ab8139d3641c", false},
+ {objectFormat.EmptyObjectID().String(), "9ce3f779ae33f31fce17fac3c512047b75d7498b", false}, // New branch with unverified commit
+ }
+
+ for _, tc := range testCases {
+ err = verifyCommits(tc.base, tc.head, gitRepo, nil)
+ if tc.verified {
+ require.NoError(t, err)
+ } else {
+ require.Error(t, err)
+ }
+ }
+}