3eba7194 |
package registry
|
f46923be |
import (
"net/http"
"net/http/httptest"
"net/url"
"testing"
) |
3eba7194 |
func TestEndpointParse(t *testing.T) {
testData := []struct {
str string
expected string
}{ |
4fcb9ac4 |
{IndexServer, IndexServer}, |
41e20cec |
{"http://0.0.0.0:5000/v1/", "http://0.0.0.0:5000/v1/"}, |
f2d481a2 |
{"http://0.0.0.0:5000", "http://0.0.0.0:5000/v1/"},
{"0.0.0.0:5000", "https://0.0.0.0:5000/v1/"},
{"http://0.0.0.0:5000/nonversion/", "http://0.0.0.0:5000/nonversion/v1/"},
{"http://0.0.0.0:5000/v0/", "http://0.0.0.0:5000/v0/v1/"}, |
3eba7194 |
}
for _, td := range testData { |
f2d481a2 |
e, err := newV1EndpointFromStr(td.str, nil, "", nil) |
3eba7194 |
if err != nil {
t.Errorf("%q: %s", td.str, err)
}
if e == nil {
t.Logf("something's fishy, endpoint for %q is nil", td.str)
continue
}
if e.String() != td.expected {
t.Errorf("expected %q, got %q", td.expected, e.String())
}
}
} |
f46923be |
|
f2d481a2 |
func TestEndpointParseInvalid(t *testing.T) {
testData := []string{
"http://0.0.0.0:5000/v2/",
}
for _, td := range testData {
e, err := newV1EndpointFromStr(td, nil, "", nil)
if err == nil {
t.Errorf("expected error parsing %q: parsed as %q", td, e)
}
}
}
|
f46923be |
// Ensure that a registry endpoint that responds with a 401 only is determined |
f2d481a2 |
// to be a valid v1 registry endpoint
func TestValidateEndpoint(t *testing.T) { |
f46923be |
requireBasicAuthHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Add("WWW-Authenticate", `Basic realm="localhost"`)
w.WriteHeader(http.StatusUnauthorized)
})
// Make a test server which should validate as a v1 server.
testServer := httptest.NewServer(requireBasicAuthHandler)
defer testServer.Close()
testServerURL, err := url.Parse(testServer.URL)
if err != nil {
t.Fatal(err)
}
|
f2d481a2 |
testEndpoint := V1Endpoint{
URL: testServerURL,
client: HTTPClient(NewTransport(nil)), |
f46923be |
}
if err = validateEndpoint(&testEndpoint); err != nil {
t.Fatal(err)
}
|
f2d481a2 |
if testEndpoint.URL.Scheme != "http" {
t.Fatalf("expecting to validate endpoint as http, got url %s", testEndpoint.String()) |
f46923be |
}
} |