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
Source
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