mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
5f89a6a78e
pkg/urlutil (despite its poorly chosen name) is not really intended as a generic utility to handle URLs, and should only be used by the builder to handle (remote) build contexts. - IsURL() only does a very rudimentary check for http(s):// prefixes, without any other validation, but due to its name may give incorrect expectations. - IsGitURL() is written specifically with docker build remote git contexts in mind, and has handling for backward-compatibility, where strings that are not URLs, but start with "github.com/" are accepted. Because of the above, this patch: - moves the package inside builder/remotecontext, close to where it's intended to be used (ideally this would be part of build/remotecontext itself, but this package imports many other dependencies, which would introduce those as extra dependencies in the CLI). - deprecates pkg/urlutil, but adds aliases as there are some external consumers. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
41 lines
1,003 B
Go
41 lines
1,003 B
Go
package urlutil // import "github.com/docker/docker/builder/remotecontext/urlutil"
|
|
|
|
import "testing"
|
|
|
|
var (
|
|
gitUrls = []string{
|
|
"git://github.com/docker/docker",
|
|
"git@github.com:docker/docker.git",
|
|
"git@bitbucket.org:atlassianlabs/atlassian-docker.git",
|
|
"https://github.com/docker/docker.git",
|
|
"http://github.com/docker/docker.git",
|
|
"http://github.com/docker/docker.git#branch",
|
|
"http://github.com/docker/docker.git#:dir",
|
|
}
|
|
incompleteGitUrls = []string{
|
|
"github.com/docker/docker",
|
|
}
|
|
invalidGitUrls = []string{
|
|
"http://github.com/docker/docker.git:#branch",
|
|
}
|
|
)
|
|
|
|
func TestIsGIT(t *testing.T) {
|
|
for _, url := range gitUrls {
|
|
if !IsGitURL(url) {
|
|
t.Fatalf("%q should be detected as valid Git url", url)
|
|
}
|
|
}
|
|
|
|
for _, url := range incompleteGitUrls {
|
|
if !IsGitURL(url) {
|
|
t.Fatalf("%q should be detected as valid Git url", url)
|
|
}
|
|
}
|
|
|
|
for _, url := range invalidGitUrls {
|
|
if IsGitURL(url) {
|
|
t.Fatalf("%q should not be detected as valid Git prefix", url)
|
|
}
|
|
}
|
|
}
|