MCPcopy
hub / github.com/caddyserver/caddy / TestPreferOrder

Function TestPreferOrder

modules/caddyhttp/encode/encode_test.go:23–129  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21}
22
23func TestPreferOrder(t *testing.T) {
24 testCases := []struct {
25 name string
26 accept string
27 prefer []string
28 expected []string
29 }{
30 {
31 name: "PreferOrder(): 4 accept, 3 prefer",
32 accept: "deflate, gzip, br, zstd",
33 prefer: []string{"zstd", "br", "gzip"},
34 expected: []string{"zstd", "br", "gzip", "deflate"},
35 },
36 {
37 name: "PreferOrder(): 2 accept, 3 prefer",
38 accept: "deflate, zstd",
39 prefer: []string{"zstd", "br", "gzip"},
40 expected: []string{"zstd", "deflate"},
41 },
42 {
43 name: "PreferOrder(): 2 accept (1 empty), 3 prefer",
44 accept: "gzip,,zstd",
45 prefer: []string{"zstd", "br", "gzip"},
46 expected: []string{"zstd", "gzip", ""},
47 },
48 {
49 name: "PreferOrder(): 1 accept, 2 prefer",
50 accept: "gzip",
51 prefer: []string{"zstd", "gzip"},
52 expected: []string{"gzip"},
53 },
54 {
55 name: "PreferOrder(): 4 accept (1 duplicate), 1 prefer",
56 accept: "deflate, gzip, br, br",
57 prefer: []string{"br"},
58 expected: []string{"br", "br", "deflate", "gzip"},
59 },
60 {
61 name: "PreferOrder(): empty accept, 0 prefer",
62 accept: "",
63 prefer: []string{},
64 expected: []string{},
65 },
66 {
67 name: "PreferOrder(): empty accept, 1 prefer",
68 accept: "",
69 prefer: []string{"gzip"},
70 expected: []string{},
71 },
72 {
73 name: "PreferOrder(): with q-factor",
74 accept: "deflate;q=0.8, gzip;q=0.4, br;q=0.2, zstd",
75 prefer: []string{"gzip"},
76 expected: []string{"zstd", "deflate", "gzip", "br"},
77 },
78 {
79 name: "PreferOrder(): with q-factor, no prefer",
80 accept: "deflate;q=0.8, gzip;q=0.4, br;q=0.2, zstd",

Callers

nothing calls this directly

Calls 4

AcceptedEncodingsFunction · 0.85
DelMethod · 0.80
SetMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected