Merge pull request #56601 from anfernee/probe-test

Automatic merge from submit-queue (batch tested with PRs 57127, 57011, 56754, 56601, 56483). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Test probe for redirect endpoint

Make sure #18233 works

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #18233

**Special notes for your reviewer**:

**Release note**:
```release-note
None
```
pull/6/head
Kubernetes Submit Queue 2017-12-17 06:25:59 -08:00 committed by GitHub
commit a2e02ab5b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 42 additions and 0 deletions

View File

@ -52,6 +52,16 @@ func TestHTTPProbeChecker(t *testing.T) {
w.Write([]byte(output))
}
redirectHandler := func(s int, bad bool) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path == "/" {
http.Redirect(w, r, "/new", s)
} else if bad && r.URL.Path == "/new" {
w.WriteHeader(http.StatusInternalServerError)
}
}
}
prober := New()
testCases := []struct {
handler func(w http.ResponseWriter, r *http.Request)
@ -122,6 +132,38 @@ func TestHTTPProbeChecker(t *testing.T) {
},
health: probe.Failure,
},
{
handler: redirectHandler(http.StatusMovedPermanently, false), // 301
health: probe.Success,
},
{
handler: redirectHandler(http.StatusMovedPermanently, true), // 301
health: probe.Failure,
},
{
handler: redirectHandler(http.StatusFound, false), // 302
health: probe.Success,
},
{
handler: redirectHandler(http.StatusFound, true), // 302
health: probe.Failure,
},
{
handler: redirectHandler(http.StatusTemporaryRedirect, false), // 307
health: probe.Success,
},
{
handler: redirectHandler(http.StatusTemporaryRedirect, true), // 307
health: probe.Failure,
},
{
handler: redirectHandler(http.StatusPermanentRedirect, false), // 308
health: probe.Success,
},
{
handler: redirectHandler(http.StatusPermanentRedirect, true), // 308
health: probe.Failure,
},
}
for i, test := range testCases {
func() {