-
Notifications
You must be signed in to change notification settings - Fork 61
/
header_test.go
106 lines (100 loc) · 2.13 KB
/
header_test.go
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package http
import (
"reflect"
"sort"
"testing"
"github.com/gorilla/http/client"
)
var toHeadersTests = []struct {
headers map[string][]string
expected []client.Header
}{
{nil, nil},
{
map[string][]string{"Host": []string{"a"}},
[]client.Header{{Key: "Host", Value: "a"}},
},
{
map[string][]string{"Host": []string{"a", "B"}},
[]client.Header{
{Key: "Host", Value: "B"},
{Key: "Host", Value: "a"},
},
},
{
map[string][]string{
"Host": []string{"a"},
"Connection": []string{"close"},
},
[]client.Header{
{Key: "Connection", Value: "close"},
{Key: "Host", Value: "a"},
},
},
{
map[string][]string{
"Host": []string{"a", "B"},
"Connection": []string{"close"},
},
[]client.Header{
{Key: "Connection", Value: "close"},
{Key: "Host", Value: "B"},
{Key: "Host", Value: "a"},
},
},
}
func TestToHeaders(t *testing.T) {
for _, tt := range toHeadersTests {
actual := toHeaders(tt.headers)
sort.Sort(client.Headers(actual))
if !reflect.DeepEqual(tt.expected, actual) {
t.Errorf("toHeaders(%v): expected %v, got %v", tt.headers, tt.expected, actual)
}
}
}
var fromHeadersTests = []struct {
headers []client.Header
expected map[string][]string
}{
{nil, nil},
{
[]client.Header{{Key: "Host", Value: "a"}},
map[string][]string{"Host": []string{"a"}},
},
{
[]client.Header{
{Key: "Host", Value: "B"},
{Key: "Host", Value: "a"},
},
map[string][]string{"Host": []string{"B", "a"}},
},
{
[]client.Header{
{Key: "Connection", Value: "close"},
{Key: "Host", Value: "a"},
},
map[string][]string{
"Host": []string{"a"},
"Connection": []string{"close"},
},
},
{
[]client.Header{
{Key: "Connection", Value: "close"},
{Key: "Host", Value: "B"},
{Key: "Host", Value: "a"},
},
map[string][]string{
"Host": []string{"B", "a"},
"Connection": []string{"close"},
},
},
}
func TestFromHeaders(t *testing.T) {
for _, tt := range fromHeadersTests {
actual := fromHeaders(tt.headers)
if !reflect.DeepEqual(tt.expected, actual) {
t.Errorf("fromHeaders(%v): expected %v, got %v", tt.headers, tt.expected, actual)
}
}
}