/
response_test.go
71 lines (62 loc) · 1.71 KB
/
response_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
package request
import (
"errors"
"net/http"
"testing"
"github.com/bmizerany/assert"
)
func TestResponseURLNormal(t *testing.T) {
c := new(http.Client)
req := NewRequest(c)
url := "http://httpbin.org/get"
resp, _ := req.Get(url)
u, _ := resp.URL()
assert.Equal(t, u.String(), url)
}
func TestResponseURLWithRedirect(t *testing.T) {
req := NewRequest(nil)
url := "https://httpbin.org/redirect/3"
resp, _ := req.Get(url)
u, _ := resp.URL()
assert.Equal(t, u.String(), "https://httpbin.org/get")
}
func TestResponseURLWithDisableRedirect(t *testing.T) {
c := new(http.Client)
req := NewRequest(c)
c.CheckRedirect = func(req *http.Request, via []*http.Request) error {
return errors.New("redirect")
}
resp, _ := req.Get("https://httpbin.org/redirect/3")
u, _ := resp.URL()
assert.Equal(t, u.String(), "https://httpbin.org/relative-redirect/2")
}
func TestResponseGzip(t *testing.T) {
c := new(http.Client)
req := NewRequest(c)
url := "http://httpbin.org/gzip"
resp, _ := req.Get(url)
d, _ := resp.Json()
t2, _ := resp.Text()
c2, _ := resp.Content()
defer resp.Body.Close()
assert.Equal(t, resp.Reason() != "", true)
assert.Equal(t, resp.OK(), true)
assert.Equal(t, t2 != "", true)
assert.Equal(t, c2 != nil, true)
assert.Equal(t, d.Get("gzipped").MustBool(), true)
}
func TestResponseDeflate(t *testing.T) {
c := new(http.Client)
req := NewRequest(c)
url := "http://httpbin.org/deflate"
resp, _ := req.Get(url)
d, _ := resp.Json()
t2, _ := resp.Text()
c2, _ := resp.Content()
defer resp.Body.Close()
assert.Equal(t, resp.Reason() != "", true)
assert.Equal(t, resp.OK(), true)
assert.Equal(t, t2 != "", true)
assert.Equal(t, c2 != nil, true)
assert.Equal(t, d.Get("deflated").MustBool(), true)
}