aboutsummaryrefslogtreecommitdiff
path: root/internal/accept_encoding_test.go
blob: 3d8f12b2e020502ce08b05d754461019694938a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package internal

import "testing"

func TestInValidEncodings(t *testing.T) {
	tests := []struct {
		enc string
		ok  bool
	}{
		{"gzip", true},
		{"x-gzip", true},
		{"tacobell", false},
	}

	for _, test := range tests {
		t.Run(test.enc, func(t *testing.T) {
			ok := inValidEncodings(test.enc)
			if ok != test.ok {
				t.Errorf("ok = %t, want %t", ok, test.ok)
			}
		})
	}
}

func TestParseAcceptLanguage(t *testing.T) {
	acptLang := "en-US,en;q=0.9,ja-JP;q=0.8,ja;q=0.7"
	lqs := ParseAcceptLanguage(acptLang)
	if len(lqs) != 4 {
		t.Errorf("len(lqs) = %d, want 4", len(lqs))
	}
	if lqs[0].Lang != "en-US" {
		t.Errorf("lqs[0].Lang = %s, want en-US", lqs[0].Lang)
	}
	if lqs[0].Q != 1 {
		t.Errorf("lqs[0].Q = %f, want 1", lqs[0].Q)
	}
	if lqs[1].Lang != "en" {
		t.Errorf("lqs[1].Lang = %s, want en", lqs[1].Lang)
	}
	if lqs[1].Q != 0.9 {
		t.Errorf("lqs[1].Q = %f, want 0.9", lqs[1].Q)
	}
	if lqs[2].Lang != "ja-JP" {
		t.Errorf("lqs[2].Lang = %s, want ja-JP", lqs[2].Lang)
	}
	if lqs[2].Q != 0.8 {
		t.Errorf("lqs[2].Q = %f, want 0.8", lqs[2].Q)
	}
	if lqs[3].Lang != "ja" {
		t.Errorf("lqs[3].Lang = %s, want ja", lqs[3].Lang)
	}
	if lqs[3].Q != 0.7 {
		t.Errorf("lqs[3].Q = %f, want 0.7", lqs[3].Q)
	}
}

func TestParseAcceptEncoding(t *testing.T) {
	acptEnc := "gzip, deflate, br;q=1"
	eqs := ParseAcceptEncoding(acptEnc)
	if len(eqs) != 3 {
		t.Errorf("len(eqs) = %d, want 3", len(eqs))
	}
	if eqs[0].Encoding != "gzip" {
		t.Errorf("eqs[0].Encoding = %s, want gzip", eqs[0].Encoding)
	}
	if eqs[0].Q != 1 {
		t.Errorf("eqs[0].Q = %f, want 1", eqs[0].Q)
	}
	if eqs[1].Encoding != "deflate" {
		t.Errorf("eqs[1].Encoding = %s, want deflate", eqs[1].Encoding)
	}
	if eqs[1].Q != 1 {
		t.Errorf("eqs[1].Q = %f, want 1", eqs[1].Q)
	}
	if eqs[2].Encoding != "br" {
		t.Errorf("eqs[2].Encoding = %s, want br", eqs[2].Encoding)
	}
	if eqs[2].Q != 1 {
		t.Errorf("eqs[2].Q = %f, want 1", eqs[2].Q)
	}
}