52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package gitutil
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestParseProtocol(t *testing.T) {
|
|
tests := []struct {
|
|
url string
|
|
protocol int
|
|
remote string
|
|
}{
|
|
{
|
|
url: "http://github.com/moby/buildkit",
|
|
protocol: HTTPProtocol,
|
|
remote: "github.com/moby/buildkit",
|
|
},
|
|
{
|
|
url: "https://github.com/moby/buildkit",
|
|
protocol: HTTPSProtocol,
|
|
remote: "github.com/moby/buildkit",
|
|
},
|
|
{
|
|
url: "git@github.com:moby/buildkit.git",
|
|
protocol: SSHProtocol,
|
|
remote: "github.com:moby/buildkit.git",
|
|
},
|
|
{
|
|
url: "nonstandarduser@example.com:/srv/repos/weird/project.git",
|
|
protocol: SSHProtocol,
|
|
remote: "example.com:/srv/repos/weird/project.git",
|
|
},
|
|
{
|
|
url: "ssh://root@subdomain.example.hostname:2222/root/my/really/weird/path/foo.git",
|
|
protocol: SSHProtocol,
|
|
remote: "subdomain.example.hostname:2222/root/my/really/weird/path/foo.git",
|
|
},
|
|
{
|
|
url: "git://host.xz:1234/path/to/repo.git",
|
|
protocol: GitProtocol,
|
|
remote: "host.xz:1234/path/to/repo.git",
|
|
},
|
|
}
|
|
for _, test := range tests {
|
|
remote, protocol := ParseProtocol(test.url)
|
|
require.Equal(t, remote, test.remote)
|
|
require.Equal(t, protocol, test.protocol)
|
|
}
|
|
}
|