@@ -12,6 +12,8 @@ import (
12
12
"code.gitea.io/gitea/models/unittest"
13
13
user_model "code.gitea.io/gitea/models/user"
14
14
"code.gitea.io/gitea/modules/markup"
15
+ "code.gitea.io/gitea/modules/setting"
16
+ "code.gitea.io/gitea/modules/test"
15
17
"code.gitea.io/gitea/modules/util"
16
18
17
19
"github.com/stretchr/testify/assert"
@@ -186,3 +188,47 @@ func TestGetRepositoryByURL(t *testing.T) {
186
188
test (t , "try.gitea.io:user2/repo2.git" )
187
189
})
188
190
}
191
+
192
+ func TestComposeSSHCloneURL (t * testing.T ) {
193
+ defer test .MockVariableValue (& setting .SSH , setting .SSH )()
194
+ defer test .MockVariableValue (& setting .Repository , setting .Repository )()
195
+
196
+ setting .SSH .User = "git"
197
+
198
+ // test SSH_DOMAIN with port
199
+ setting .SSH .Domain = "domain:123"
200
+ setting .SSH .Port = 22
201
+ setting .Repository .UseCompatSSHURI = false
202
+ assert .Equal (t , "ssh://git@domain:123/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
203
+ setting .SSH .Domain = "[::1]:123"
204
+ setting .SSH .Port = 456
205
+ setting .Repository .UseCompatSSHURI = true
206
+ assert .Equal (t , "ssh://git@[::1]:123/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
207
+
208
+ // test SSH_DOMAIN without port
209
+ setting .SSH .Domain = "domain"
210
+ setting .SSH .Port = 22
211
+ setting .Repository .UseCompatSSHURI = false
212
+ assert .Equal (t , "git@domain:user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
213
+ setting .Repository .UseCompatSSHURI = true
214
+ assert .Equal (t , "ssh://git@domain/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
215
+ // test SSH_DOMAIN without port and use non-standard SSH port
216
+ setting .SSH .Port = 123
217
+ setting .Repository .UseCompatSSHURI = false
218
+ assert .Equal (t , "ssh://git@domain:123/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
219
+ setting .Repository .UseCompatSSHURI = true
220
+ assert .Equal (t , "ssh://git@domain:123/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
221
+
222
+ // test IPv6 SSH_DOMAIN without port
223
+ setting .Repository .UseCompatSSHURI = false
224
+ setting .SSH .Domain = "[::1]"
225
+ setting .SSH .Port = 22
226
+ assert .Equal (t , "git@[::1]:user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
227
+ setting .SSH .Port = 123
228
+ assert .Equal (t , "ssh://git@[::1]:123/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
229
+ setting .SSH .Domain = "::1"
230
+ setting .SSH .Port = 22
231
+ assert .Equal (t , "git@[::1]:user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
232
+ setting .SSH .Port = 123
233
+ assert .Equal (t , "ssh://git@[::1]:123/user/repo.git" , repo_model .ComposeSSHCloneURL ("user" , "repo" ))
234
+ }
0 commit comments