TestResponseWriterHijackAfterWrite() — gin Function Reference
Architecture documentation for the TestResponseWriterHijackAfterWrite() function in response_writer_test.go from the gin codebase.
Entity Profile
Dependency Diagram
graph TD e9363aa6_9892_fd9c_998e_97956ffe0c0d["TestResponseWriterHijackAfterWrite()"] 681a78d5_2997_db92_ed49_516088715505["Hijack()"] e9363aa6_9892_fd9c_998e_97956ffe0c0d -->|calls| 681a78d5_2997_db92_ed49_516088715505 style e9363aa6_9892_fd9c_998e_97956ffe0c0d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
response_writer_test.go lines 140–195
func TestResponseWriterHijackAfterWrite(t *testing.T) {
tests := []struct {
name string
action func(w ResponseWriter) error // Action to perform before hijacking
expectWrittenBeforeHijack bool
expectHijackSuccess bool
expectWrittenAfterHijack bool
expectError error
}{
{
name: "hijack before write should succeed",
action: func(w ResponseWriter) error { return nil },
expectWrittenBeforeHijack: false,
expectHijackSuccess: true,
expectWrittenAfterHijack: true, // Hijack itself marks the writer as written
expectError: nil,
},
{
name: "hijack after write should fail",
action: func(w ResponseWriter) error {
_, err := w.Write([]byte("test"))
return err
},
expectWrittenBeforeHijack: true,
expectHijackSuccess: false,
expectWrittenAfterHijack: true,
expectError: errHijackAlreadyWritten,
},
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
hijacker := &mockHijacker{ResponseRecorder: httptest.NewRecorder()}
writer := &responseWriter{}
writer.reset(hijacker)
w := ResponseWriter(writer)
// Check initial state
assert.False(t, w.Written(), "should not be written initially")
// Perform pre-hijack action
require.NoError(t, tc.action(w), "unexpected error during pre-hijack action")
// Check state before hijacking
assert.Equal(t, tc.expectWrittenBeforeHijack, w.Written(), "unexpected w.Written() state before hijack")
// Attempt to hijack
_, _, hijackErr := w.Hijack()
// Check results
require.ErrorIs(t, hijackErr, tc.expectError, "unexpected error from Hijack()")
assert.Equal(t, tc.expectHijackSuccess, hijacker.hijacked, "unexpected hijacker.hijacked state")
assert.Equal(t, tc.expectWrittenAfterHijack, w.Written(), "unexpected w.Written() state after hijack")
})
}
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does TestResponseWriterHijackAfterWrite() do?
TestResponseWriterHijackAfterWrite() is a function in the gin codebase.
What does TestResponseWriterHijackAfterWrite() call?
TestResponseWriterHijackAfterWrite() calls 1 function(s): Hijack.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free