diff --git a/pkg/registry/client_http_test.go b/pkg/registry/client_http_test.go index 043fd4205..fdb708fa3 100644 --- a/pkg/registry/client_http_test.go +++ b/pkg/registry/client_http_test.go @@ -28,6 +28,7 @@ import ( type HTTPRegistryClientTestSuite struct { TestSuite + protocol string } func (suite *HTTPRegistryClientTestSuite) SetupSuite() { @@ -56,14 +57,23 @@ func (suite *HTTPRegistryClientTestSuite) Test_0_Login() { } func (suite *HTTPRegistryClientTestSuite) Test_1_Push() { + if suite.protocol != "" { + return + } testPush(&suite.TestSuite) } func (suite *HTTPRegistryClientTestSuite) Test_2_Pull() { + if suite.protocol != "" { + return + } testPull(&suite.TestSuite) } func (suite *HTTPRegistryClientTestSuite) Test_3_Tags() { + if suite.protocol != "" { + return + } testTags(&suite.TestSuite) } @@ -78,4 +88,11 @@ func (suite *HTTPRegistryClientTestSuite) Test_4_ManInTheMiddle() { func TestHTTPRegistryClientTestSuite(t *testing.T) { suite.Run(t, new(HTTPRegistryClientTestSuite)) + for _, protocol := range []string{"oci://", "http://", "https://"} { + var protocolSpecificTestSuite = new(HTTPRegistryClientTestSuite) + protocolSpecificTestSuite.protocol = protocol + protocolSpecificTestSuite.DockerRegistryHost = protocol + "helm-test-registry" + suite.Run(t, protocolSpecificTestSuite) + } + } diff --git a/pkg/registry/utils_test.go b/pkg/registry/utils_test.go index bce286303..703eb127b 100644 --- a/pkg/registry/utils_test.go +++ b/pkg/registry/utils_test.go @@ -127,7 +127,12 @@ func setup(suite *TestSuite, tlsEnabled, insecure bool) *registry.Registry { // Change the registry host to another host which is not localhost. // This is required because Docker enforces HTTP if the registry // host is localhost/127.0.0.1. - suite.DockerRegistryHost = fmt.Sprintf("helm-test-registry:%d", port) + if suite.DockerRegistryHost == "" { + suite.DockerRegistryHost = fmt.Sprintf("helm-test-registry:%d", port) + } else { + // may programmatically set this for custom protocol handling + suite.DockerRegistryHost = fmt.Sprintf("%s:%d", suite.DockerRegistryHost, port) + } suite.srv, err = mockdns.NewServer(map[string]mockdns.Zone{ "helm-test-registry.": { A: []string{"127.0.0.1"},