-
Notifications
You must be signed in to change notification settings - Fork 0
/
options_test.go
85 lines (81 loc) · 1.57 KB
/
options_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
package chttp
import (
"net/http"
"net/http/cookiejar"
"reflect"
"testing"
"time"
)
func TestWithTimeout(t *testing.T) {
tests := []struct {
name string
timeout time.Duration
}{
{
name: "zero",
timeout: 0,
},
{
name: "1 sec",
timeout: time.Second,
},
{
name: "1 min",
timeout: time.Minute,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if client := NewClient(nil, WithTimeout(tt.timeout)); !reflect.DeepEqual(client.HTTP.Timeout, tt.timeout) {
t.Errorf("WithTimeout() = %v, want %v", client.HTTP.Timeout, tt.timeout)
}
})
}
}
func TestWithCookieJar(t *testing.T) {
tests := []struct {
name string
jar http.CookieJar
}{
{
name: "nil",
jar: nil,
},
{
name: "value",
jar: new(cookiejar.Jar),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if client := NewClient(nil, WithCookieJar(tt.jar)); !reflect.DeepEqual(client.HTTP.Jar, tt.jar) {
t.Errorf("WithCookieJar()")
}
})
}
}
func TestWithCheckRedirect(t *testing.T) {
tests := []struct {
name string
check func(req *http.Request, via []*http.Request) error
}{
{
name: "nil",
check: nil,
},
{
name: "value",
check: func(req *http.Request, via []*http.Request) error {
return nil
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
client := NewClient(nil, WithCheckRedirect(tt.check))
if reflect.ValueOf(client.HTTP.CheckRedirect).Pointer() != reflect.ValueOf(tt.check).Pointer() {
t.Errorf("WithCheckRedirect()")
}
})
}
}