Files
buildkit/util/gitutil/git_protocol_test.go
Alex Couture-Beil ca151bceaf Move git protocol detection into seperate util
- the git protocol detection is required by buildx, and should reside in
a seperate exported gitutil package.

Signed-off-by: Alex Couture-Beil <alex@earthly.dev>
2021-03-31 12:42:57 -07:00

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)
}
}