|
|
@ -276,6 +276,44 @@ func startLocalServerForTests(handler http.Handler) (*httptest.Server, error) {
|
|
|
|
return httptest.NewServer(handler), nil
|
|
|
|
return httptest.NewServer(handler), nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// startLocalTLSServerForTests Start the local helm server with TLS
|
|
|
|
|
|
|
|
func startLocalTLSServerForTests(handler http.Handler) (*httptest.Server, error) {
|
|
|
|
|
|
|
|
if handler == nil {
|
|
|
|
|
|
|
|
fileBytes, err := ioutil.ReadFile("testdata/local-index.yaml")
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
return nil, err
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
|
|
w.Write(fileBytes)
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return httptest.NewTLSServer(handler), nil
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func TestFindChartInAuthAndTLSRepoURL(t *testing.T) {
|
|
|
|
|
|
|
|
srv, err := startLocalTLSServerForTests(nil)
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
defer srv.Close()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
chartURL, err := FindChartInAuthAndTLSRepoURL(srv.URL, "", "", "nginx", "", "", "", "", true, getter.All(&cli.EnvSettings{}))
|
|
|
|
|
|
|
|
if err != nil {
|
|
|
|
|
|
|
|
t.Fatalf("%v", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if chartURL != "https://kubernetes-charts.storage.googleapis.com/nginx-0.2.0.tgz" {
|
|
|
|
|
|
|
|
t.Errorf("%s is not the valid URL", chartURL)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// If the insecureSkipTLsverify is false, it will return an error that contains "x509: certificate signed by unknown authority".
|
|
|
|
|
|
|
|
_, err = FindChartInAuthAndTLSRepoURL(srv.URL, "", "", "nginx", "0.1.0", "", "", "", false, getter.All(&cli.EnvSettings{}))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if !strings.Contains(err.Error(), "x509: certificate signed by unknown authority") {
|
|
|
|
|
|
|
|
t.Errorf("Expected TLS error for function FindChartInAuthAndTLSRepoURL not found, but got a different error (%v)", err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func TestFindChartInRepoURL(t *testing.T) {
|
|
|
|
func TestFindChartInRepoURL(t *testing.T) {
|
|
|
|
srv, err := startLocalServerForTests(nil)
|
|
|
|
srv, err := startLocalServerForTests(nil)
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|