Home / Function/ Test_Utils_GetOffer() — fiber Function Reference

Test_Utils_GetOffer() — fiber Function Reference

Architecture documentation for the Test_Utils_GetOffer() function in helpers_test.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  88d885f7_f3dc_3220_f704_a375c93c6efe["Test_Utils_GetOffer()"]
  c82e3595_b1b8_f596_c097_f26fa40159d1["helpers_test.go"]
  88d885f7_f3dc_3220_f704_a375c93c6efe -->|defined in| c82e3595_b1b8_f596_c097_f26fa40159d1
  style 88d885f7_f3dc_3220_f704_a375c93c6efe fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

helpers_test.go lines 23–114

func Test_Utils_GetOffer(t *testing.T) {
	t.Parallel()
	require.Empty(t, getOffer([]byte("hello"), acceptsOffer))
	require.Equal(t, "1", getOffer([]byte(""), acceptsOffer, "1"))
	require.Empty(t, getOffer([]byte("2"), acceptsOffer, "1"))

	require.Empty(t, getOffer([]byte(""), acceptsOfferType))
	require.Empty(t, getOffer([]byte("text/html"), acceptsOfferType))
	require.Empty(t, getOffer([]byte("text/html"), acceptsOfferType, "application/json"))
	require.Empty(t, getOffer([]byte("text/html;q=0"), acceptsOfferType, "text/html"))
	require.Empty(t, getOffer([]byte("application/json, */*; q=0"), acceptsOfferType, "image/png"))
	require.Equal(t, "application/xml", getOffer([]byte("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"), acceptsOfferType, "application/xml", "application/json"))
	require.Equal(t, "text/html", getOffer([]byte("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"), acceptsOfferType, "text/html"))
	require.Equal(t, "application/pdf", getOffer([]byte("text/plain;q=0,application/pdf;q=0.9,*/*;q=0.000"), acceptsOfferType, "application/pdf", "application/json"))
	require.Equal(t, "application/pdf", getOffer([]byte("text/plain;q=0,application/pdf;q=0.9,*/*;q=0.000"), acceptsOfferType, "application/pdf", "application/json"))
	require.Equal(t, "text/plain;a=1", getOffer([]byte("text/plain;a=1"), acceptsOfferType, "text/plain;a=1"))
	require.Empty(t, getOffer([]byte("text/plain;a=1;b=2"), acceptsOfferType, "text/plain;b=2"))

	// Spaces, quotes, out of order params, and case insensitivity
	require.Equal(t, "text/plain", getOffer([]byte("text/plain  "), acceptsOfferType, "text/plain"))
	require.Equal(t, "text/plain", getOffer([]byte("text/plain;q=0.4  "), acceptsOfferType, "text/plain"))
	require.Equal(t, "text/plain", getOffer([]byte("text/plain;q=0.4  ;"), acceptsOfferType, "text/plain"))
	require.Equal(t, "text/plain", getOffer([]byte("text/plain;q=0.4  ; p=foo"), acceptsOfferType, "text/plain"))
	require.Equal(t, "text/plain;b=2;a=1", getOffer([]byte("text/plain ;a=1;b=2"), acceptsOfferType, "text/plain;b=2;a=1"))
	require.Equal(t, "text/plain;a=1", getOffer([]byte("text/plain;   a=1   "), acceptsOfferType, "text/plain;a=1"))
	require.Equal(t, `text/plain;a="1;b=2\",text/plain"`, getOffer([]byte(`text/plain;a="1;b=2\",text/plain";q=0.9`), acceptsOfferType, `text/plain;a=1;b=2`, `text/plain;a="1;b=2\",text/plain"`))
	require.Equal(t, "text/plain;A=CAPS", getOffer([]byte(`text/plain;a="caPs"`), acceptsOfferType, "text/plain;A=CAPS"))

	// Priority
	require.Equal(t, "text/plain", getOffer([]byte("text/plain"), acceptsOfferType, "text/plain", "text/plain;a=1"))
	require.Equal(t, "text/plain;a=1", getOffer([]byte("text/plain"), acceptsOfferType, "text/plain;a=1", "", "text/plain"))
	require.Equal(t, "text/plain;a=1", getOffer([]byte("text/plain,text/plain;a=1"), acceptsOfferType, "text/plain", "text/plain;a=1"))
	require.Equal(t, "text/plain", getOffer([]byte("text/plain;q=0.899,text/plain;a=1;q=0.898"), acceptsOfferType, "text/plain", "text/plain;a=1"))
	require.Equal(t, "text/plain;a=1;b=2", getOffer([]byte("text/plain,text/plain;a=1,text/plain;a=1;b=2"), acceptsOfferType, "text/plain", "text/plain;a=1", "text/plain;a=1;b=2"))

	// Takes the last value specified
	require.Equal(t, "text/plain;a=1;b=2", getOffer([]byte("text/plain;a=1;b=1;B=2"), acceptsOfferType, "text/plain;a=1;b=1", "text/plain;a=1;b=2"))

	require.Empty(t, getOffer([]byte("utf-8, iso-8859-1;q=0.5"), acceptsOffer))
	require.Empty(t, getOffer([]byte("utf-8, iso-8859-1;q=0.5"), acceptsOffer, "ascii"))
	require.Equal(t, "utf-8", getOffer([]byte("utf-8, iso-8859-1;q=0.5"), acceptsOffer, "utf-8"))
	require.Equal(t, "iso-8859-1", getOffer([]byte("utf-8;q=0, iso-8859-1;q=0.5"), acceptsOffer, "utf-8", "iso-8859-1"))

	// Accept-Charset wildcard coverage
	require.Equal(t, "utf-8", getOffer([]byte("utf-*"), acceptsOffer, "utf-8"))
	require.Equal(t, "UTF-16", getOffer([]byte("utf-*"), acceptsOffer, "UTF-16", "iso-8859-1"))
	require.Empty(t, getOffer([]byte("utf-*"), acceptsOffer, "iso-8859-1"))
	require.Empty(t, getOffer([]byte("utf-*"), acceptsOffer, "utf"))
	require.Empty(t, getOffer([]byte("utf-*"), acceptsOffer, "x-utf-8"))

	// Complex wildcard negotiation
	require.Equal(t, "utf-16le", getOffer([]byte("utf-8;q=0.4, utf-*;q=0.8, iso-8859-1;q=0.6"), acceptsOffer, "iso-8859-1", "utf-16le"))
	require.Equal(t, "iso-8859-1", getOffer([]byte("utf-*;q=0.9, iso-8859-1;q=1"), acceptsOffer, "x-utf-16", "iso-8859-1"))
	require.Empty(t, getOffer([]byte("utf-*;q=0.5, iso-8859-1;q=0.4"), acceptsOffer, "ascii", "us-ascii"))

	require.Equal(t, "deflate", getOffer([]byte("gzip, deflate"), acceptsOffer, "deflate"))
	require.Empty(t, getOffer([]byte("gzip, deflate;q=0"), acceptsOffer, "deflate"))

	// Accept-Language Basic Filtering
	require.True(t, acceptsLanguageOfferBasic("en", "en-US", nil))
	require.False(t, acceptsLanguageOfferBasic("en-US", "en", nil))
	require.True(t, acceptsLanguageOfferBasic("EN", "en-us", nil))
	require.False(t, acceptsLanguageOfferBasic("en", "en_US", nil))
	require.Equal(t, "en-US", getOffer([]byte("fr-CA;q=0.8, en-US"), acceptsLanguageOfferBasic, "en-US", "fr-CA"))
	require.Empty(t, getOffer([]byte("xx"), acceptsLanguageOfferBasic, "en"))
	require.False(t, acceptsLanguageOfferBasic("en-*", "en-US", nil))
	require.True(t, acceptsLanguageOfferBasic("*", "en-US", nil))

	// Accept-Language Extended Filtering
	require.True(t, acceptsLanguageOfferExtended("en", "en-US", nil))
	require.True(t, acceptsLanguageOfferExtended("en", "en-Latn-US", nil))
	require.True(t, acceptsLanguageOfferExtended("en-*", "en-US", nil))
	require.True(t, acceptsLanguageOfferExtended("*-US", "en-US", nil))
	require.True(t, acceptsLanguageOfferExtended("en-US-*", "en-US", nil))
	require.True(t, acceptsLanguageOfferExtended("en-*", "en-US-CA", nil))
	require.False(t, acceptsLanguageOfferExtended("en-US", "en-GB", nil))
	require.False(t, acceptsLanguageOfferExtended("fr", "en-US", nil))
	require.False(t, acceptsLanguageOfferExtended("", "en-US", nil))
	require.False(t, acceptsLanguageOfferExtended("en", "", nil))
	require.True(t, acceptsLanguageOfferExtended("*", "en-US", nil))
	require.True(t, acceptsLanguageOfferExtended("en-*", "en", nil))

Domain

Subdomains

Defined In

Frequently Asked Questions

What does Test_Utils_GetOffer() do?
Test_Utils_GetOffer() is a function in the fiber codebase, defined in helpers_test.go.
Where is Test_Utils_GetOffer() defined?
Test_Utils_GetOffer() is defined in helpers_test.go at line 23.

Analyze Your Own Codebase

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

Try Supermodel Free