MCPcopy Create free account
hub / github.com/imroc/req / TestRedirect

Function TestRedirect

client_test.go:387–425  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

385}
386
387func TestRedirect(t *testing.T) {
388 _, err := tc().SetRedirectPolicy(NoRedirectPolicy()).R().Get("/unlimited-redirect")
389 tests.AssertIsNil(t, err)
390
391 _, err = tc().SetRedirectPolicy(MaxRedirectPolicy(3)).R().Get("/unlimited-redirect")
392 tests.AssertNotNil(t, err)
393 tests.AssertContains(t, err.Error(), "stopped after 3 redirects", true)
394
395 _, err = tc().SetRedirectPolicy(MaxRedirectPolicy(20)).SetRedirectPolicy(DefaultRedirectPolicy()).R().Get("/unlimited-redirect")
396 tests.AssertNotNil(t, err)
397 tests.AssertContains(t, err.Error(), "stopped after 10 redirects", true)
398
399 _, err = tc().SetRedirectPolicy(SameDomainRedirectPolicy()).R().Get("/redirect-to-other")
400 tests.AssertNotNil(t, err)
401 tests.AssertContains(t, err.Error(), "different domain name is not allowed", true)
402
403 _, err = tc().SetRedirectPolicy(SameHostRedirectPolicy()).R().Get("/redirect-to-other")
404 tests.AssertNotNil(t, err)
405 tests.AssertContains(t, err.Error(), "different host name is not allowed", true)
406
407 _, err = tc().SetRedirectPolicy(AllowedHostRedirectPolicy("localhost", "127.0.0.1")).R().Get("/redirect-to-other")
408 tests.AssertNotNil(t, err)
409 tests.AssertContains(t, err.Error(), "redirect host [dummy.local] is not allowed", true)
410
411 _, err = tc().SetRedirectPolicy(AllowedDomainRedirectPolicy("localhost", "127.0.0.1")).R().Get("/redirect-to-other")
412 tests.AssertNotNil(t, err)
413 tests.AssertContains(t, err.Error(), "redirect domain [dummy.local] is not allowed", true)
414
415 c := tc().SetRedirectPolicy(AlwaysCopyHeaderRedirectPolicy("Authorization"))
416 newHeader := make(http.Header)
417 oldHeader := make(http.Header)
418 oldHeader.Set("Authorization", "test")
419 c.GetClient().CheckRedirect(&http.Request{
420 Header: newHeader,
421 }, []*http.Request{{
422 Header: oldHeader,
423 }})
424 tests.AssertEqual(t, "test", newHeader.Get("Authorization"))
425}
426
427func TestSensitiveHeadersRedirectPolicy(t *testing.T) {
428 // Cross-domain redirect: sensitive header should be stripped

Callers

nothing calls this directly

Calls 15

AssertIsNilFunction · 0.92
AssertNotNilFunction · 0.92
AssertContainsFunction · 0.92
AssertEqualFunction · 0.92
tcFunction · 0.85
NoRedirectPolicyFunction · 0.85
MaxRedirectPolicyFunction · 0.85
DefaultRedirectPolicyFunction · 0.85
SameDomainRedirectPolicyFunction · 0.85
SameHostRedirectPolicyFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…