buildkit/util/gitutil/git_protocol_test.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)
}
}