summaryrefslogtreecommitdiffstats
path: root/models/repo/repo_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo/repo_test.go')
-rw-r--r--models/repo/repo_test.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/models/repo/repo_test.go b/models/repo/repo_test.go
index 4bbfeb634a..ca9209d751 100644
--- a/models/repo/repo_test.go
+++ b/models/repo/repo_test.go
@@ -12,6 +12,8 @@ import (
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/markup"
+ "code.gitea.io/gitea/modules/setting"
+ "code.gitea.io/gitea/modules/test"
"code.gitea.io/gitea/modules/util"
"github.com/stretchr/testify/assert"
@@ -186,3 +188,32 @@ func TestGetRepositoryByURL(t *testing.T) {
test(t, "try.gitea.io:user2/repo2.git")
})
}
+
+func TestComposeSSHCloneURL(t *testing.T) {
+ defer test.MockVariableValue(&setting.SSH, setting.SSH)()
+ defer test.MockVariableValue(&setting.Repository, setting.Repository)()
+
+ setting.SSH.User = "git"
+
+ // test SSH_DOMAIN
+ setting.SSH.Domain = "domain"
+ setting.SSH.Port = 22
+ setting.Repository.UseCompatSSHURI = false
+ assert.Equal(t, "git@domain:user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
+ setting.Repository.UseCompatSSHURI = true
+ assert.Equal(t, "ssh://git@domain/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
+ // test SSH_DOMAIN while use non-standard SSH port
+ setting.SSH.Port = 123
+ setting.Repository.UseCompatSSHURI = false
+ assert.Equal(t, "ssh://git@domain:123/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
+ setting.Repository.UseCompatSSHURI = true
+ assert.Equal(t, "ssh://git@domain:123/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
+
+ // test IPv6 SSH_DOMAIN
+ setting.Repository.UseCompatSSHURI = false
+ setting.SSH.Domain = "::1"
+ setting.SSH.Port = 22
+ assert.Equal(t, "git@[::1]:user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
+ setting.SSH.Port = 123
+ assert.Equal(t, "ssh://git@[::1]:123/user/repo.git", repo_model.ComposeSSHCloneURL("user", "repo"))
+}