TestDoRedirectsWithClientBranches() — fiber Function Reference
Architecture documentation for the TestDoRedirectsWithClientBranches() function in transport_test.go from the fiber codebase.
Entity Profile
Dependency Diagram
graph TD 260f1342_59f0_846e_9476_4a6e73c74101["TestDoRedirectsWithClientBranches()"] b137f470_30b5_d002_b6e6_5173073c07e3["transport_test.go"] 260f1342_59f0_846e_9476_4a6e73c74101 -->|defined in| b137f470_30b5_d002_b6e6_5173073c07e3 849122c4_aa3d_d4ff_6751_94f5955848d9["ptrInt()"] 260f1342_59f0_846e_9476_4a6e73c74101 -->|calls| 849122c4_aa3d_d4ff_6751_94f5955848d9 f79baffc_e4dd_e788_9140_9f16100149df["ptrString()"] 260f1342_59f0_846e_9476_4a6e73c74101 -->|calls| f79baffc_e4dd_e788_9140_9f16100149df style 260f1342_59f0_846e_9476_4a6e73c74101 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
client/transport_test.go lines 253–326
func TestDoRedirectsWithClientBranches(t *testing.T) {
t.Parallel()
req := fasthttp.AcquireRequest()
resp := fasthttp.AcquireResponse()
defer fasthttp.ReleaseRequest(req)
defer fasthttp.ReleaseResponse(resp)
req.SetRequestURI("http://example.com/start")
req.Header.SetMethod(fasthttp.MethodPost)
req.Header.SetContentType("application/json")
req.SetBodyString("payload")
client := &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusMovedPermanently), location: ptrString("/redirect")}, {status: ptrInt(fasthttp.StatusOK)}}}
require.NoError(t, doRedirectsWithClient(req, resp, -1, client))
require.Equal(t, fasthttp.MethodGet, string(req.Header.Method()))
require.Equal(t, "http://example.com/redirect", req.URI().String())
require.Empty(t, req.Body())
require.Empty(t, req.Header.ContentType())
resp.Reset()
req.Header.SetMethod(fasthttp.MethodPost)
req.Header.SetContentType("application/json")
req.SetBodyString("payload")
seeOtherClient := &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusSeeOther), location: ptrString("/see-other")}, {status: ptrInt(fasthttp.StatusOK)}}}
require.NoError(t, doRedirectsWithClient(req, resp, -1, seeOtherClient))
require.Equal(t, fasthttp.MethodGet, string(req.Header.Method()))
require.Equal(t, "http://example.com/see-other", req.URI().String())
require.Empty(t, req.Body())
require.Empty(t, req.Header.ContentType())
resp.Reset()
req.Header.SetMethod(fasthttp.MethodPost)
req.SetRequestURI("http://example.com/again")
req.SetBodyString("payload")
singleCall := &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusFound), location: ptrString("/ignored")}}}
require.NoError(t, doRedirectsWithClient(req, resp, 0, singleCall))
require.Equal(t, fasthttp.StatusFound, resp.StatusCode())
require.Equal(t, fasthttp.MethodPost, string(req.Header.Method()))
require.Equal(t, "http://example.com/again", req.URI().String())
require.Equal(t, "payload", string(req.Body()))
require.Equal(t, 1, singleCall.CallCount())
require.Equal(t, fasthttp.StatusFound, resp.Header.StatusCode())
resp.Reset()
req.Header.SetMethod(fasthttp.MethodPost)
req.SetRequestURI("http://example.com/start")
client = &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusFound)}}}
require.ErrorIs(t, doRedirectsWithClient(req, resp, 1, client), fasthttp.ErrMissingLocation)
resp.Reset()
req.Header.SetMethod(fasthttp.MethodPost)
req.SetRequestURI("http://example.com/start")
client = &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusMovedPermanently), location: ptrString("ftp://example.com")}}}
require.ErrorIs(t, doRedirectsWithClient(req, resp, 1, client), fasthttp.ErrorInvalidURI)
resp.Reset()
req.Header.SetMethod(fasthttp.MethodPost)
req.SetRequestURI("http://example.com/start")
client = &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusFound), location: ptrString("/bad\x00path")}}}
require.ErrorIs(t, doRedirectsWithClient(req, resp, 1, client), fasthttp.ErrorInvalidURI)
resp.Reset()
req.Header.SetMethod(fasthttp.MethodPost)
req.SetRequestURI("http://example.com/start")
client = &stubRedirectClient{calls: []stubRedirectCall{{status: ptrInt(fasthttp.StatusMovedPermanently), location: ptrString("/loop")}, {status: ptrInt(fasthttp.StatusFound), location: ptrString("/final")}, {status: ptrInt(fasthttp.StatusOK)}}}
require.ErrorIs(t, doRedirectsWithClient(req, resp, 1, client), fasthttp.ErrTooManyRedirects)
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does TestDoRedirectsWithClientBranches() do?
TestDoRedirectsWithClientBranches() is a function in the fiber codebase, defined in client/transport_test.go.
Where is TestDoRedirectsWithClientBranches() defined?
TestDoRedirectsWithClientBranches() is defined in client/transport_test.go at line 253.
What does TestDoRedirectsWithClientBranches() call?
TestDoRedirectsWithClientBranches() calls 2 function(s): ptrInt, ptrString.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free