Home / Function/ Test_Ctx_HasBody() — fiber Function Reference

Test_Ctx_HasBody() — fiber Function Reference

Architecture documentation for the Test_Ctx_HasBody() function in ctx_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  ecf115d1_af62_3e44_7992_4f14503a109c["Test_Ctx_HasBody()"]
  7b3d4933_5ae3_f84d_ff6d_0cb34e268026["ctx_test.go"]
  ecf115d1_af62_3e44_7992_4f14503a109c -->|defined in| 7b3d4933_5ae3_f84d_ff6d_0cb34e268026
  style ecf115d1_af62_3e44_7992_4f14503a109c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

ctx_test.go lines 6503–6596

func Test_Ctx_HasBody(t *testing.T) {
	t.Parallel()
	app := New()

	acquire := func(t *testing.T) CustomCtx {
		t.Helper()
		ctx := app.AcquireCtx(&fasthttp.RequestCtx{})
		require.NotNil(t, ctx)
		t.Cleanup(func() { app.ReleaseCtx(ctx) })
		return ctx
	}

	setTransferEncoding := func(t *testing.T, ctx Ctx, value string) {
		t.Helper()
		hdr := &ctx.Request().Header
		hdr.DisableSpecialHeader()
		hdr.Set(HeaderTransferEncoding, value)
		hdr.Set(HeaderContentLength, "0")
		hdr.EnableSpecialHeader()
		require.Zero(t, hdr.ContentLength())
		require.Empty(t, ctx.Request().Body())
	}

	t.Run("body bytes", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		ctx.Request().SetBody([]byte("test"))
		require.True(t, ctx.HasBody())
	})

	t.Run("content length header", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		ctx.Request().Header.SetContentLength(4)
		require.True(t, ctx.HasBody())
	})

	t.Run("chunked sentinel", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		ctx.Request().Header.SetContentLength(-1)
		require.Equal(t, -1, ctx.Request().Header.ContentLength())
		require.Empty(t, ctx.Request().Body())
		require.True(t, ctx.HasBody())
	})

	t.Run("transfer encoding chunked", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		setTransferEncoding(t, ctx, "chunked")
		require.True(t, ctx.HasBody())
	})

	t.Run("transfer encoding whitespace", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		setTransferEncoding(t, ctx, "  ChUnKeD  ")
		require.True(t, ctx.HasBody())
	})

	t.Run("transfer encoding parameters", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		setTransferEncoding(t, ctx, "chunked; q=1")
		require.True(t, ctx.HasBody())
	})

	t.Run("transfer encoding multiple values", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		setTransferEncoding(t, ctx, "gzip, chunked")
		require.True(t, ctx.HasBody())
	})

	t.Run("transfer encoding identity", func(t *testing.T) {
		t.Parallel()
		ctx := acquire(t)
		setTransferEncoding(t, ctx, "identity")
		require.False(t, ctx.HasBody())
	})

Domain

Subdomains

Defined In

Frequently Asked Questions

What does Test_Ctx_HasBody() do?
Test_Ctx_HasBody() is a function in the fiber codebase, defined in ctx_test.go.
Where is Test_Ctx_HasBody() defined?
Test_Ctx_HasBody() is defined in ctx_test.go at line 6503.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free