OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / stretchr / testify / assert / http_assertions_test.go
1 package assert
2
3 import (
4         "fmt"
5         "net/http"
6         "net/url"
7         "testing"
8 )
9
10 func httpOK(w http.ResponseWriter, r *http.Request) {
11         w.WriteHeader(http.StatusOK)
12 }
13
14 func httpRedirect(w http.ResponseWriter, r *http.Request) {
15         w.WriteHeader(http.StatusTemporaryRedirect)
16 }
17
18 func httpError(w http.ResponseWriter, r *http.Request) {
19         w.WriteHeader(http.StatusInternalServerError)
20 }
21
22 func TestHTTPSuccess(t *testing.T) {
23         assert := New(t)
24
25         mockT1 := new(testing.T)
26         assert.Equal(HTTPSuccess(mockT1, httpOK, "GET", "/", nil), true)
27         assert.False(mockT1.Failed())
28
29         mockT2 := new(testing.T)
30         assert.Equal(HTTPSuccess(mockT2, httpRedirect, "GET", "/", nil), false)
31         assert.True(mockT2.Failed())
32
33         mockT3 := new(testing.T)
34         assert.Equal(HTTPSuccess(mockT3, httpError, "GET", "/", nil), false)
35         assert.True(mockT3.Failed())
36 }
37
38 func TestHTTPRedirect(t *testing.T) {
39         assert := New(t)
40
41         mockT1 := new(testing.T)
42         assert.Equal(HTTPRedirect(mockT1, httpOK, "GET", "/", nil), false)
43         assert.True(mockT1.Failed())
44
45         mockT2 := new(testing.T)
46         assert.Equal(HTTPRedirect(mockT2, httpRedirect, "GET", "/", nil), true)
47         assert.False(mockT2.Failed())
48
49         mockT3 := new(testing.T)
50         assert.Equal(HTTPRedirect(mockT3, httpError, "GET", "/", nil), false)
51         assert.True(mockT3.Failed())
52 }
53
54 func TestHTTPError(t *testing.T) {
55         assert := New(t)
56
57         mockT1 := new(testing.T)
58         assert.Equal(HTTPError(mockT1, httpOK, "GET", "/", nil), false)
59         assert.True(mockT1.Failed())
60
61         mockT2 := new(testing.T)
62         assert.Equal(HTTPError(mockT2, httpRedirect, "GET", "/", nil), false)
63         assert.True(mockT2.Failed())
64
65         mockT3 := new(testing.T)
66         assert.Equal(HTTPError(mockT3, httpError, "GET", "/", nil), true)
67         assert.False(mockT3.Failed())
68 }
69
70 func TestHTTPStatusesWrapper(t *testing.T) {
71         assert := New(t)
72         mockAssert := New(new(testing.T))
73
74         assert.Equal(mockAssert.HTTPSuccess(httpOK, "GET", "/", nil), true)
75         assert.Equal(mockAssert.HTTPSuccess(httpRedirect, "GET", "/", nil), false)
76         assert.Equal(mockAssert.HTTPSuccess(httpError, "GET", "/", nil), false)
77
78         assert.Equal(mockAssert.HTTPRedirect(httpOK, "GET", "/", nil), false)
79         assert.Equal(mockAssert.HTTPRedirect(httpRedirect, "GET", "/", nil), true)
80         assert.Equal(mockAssert.HTTPRedirect(httpError, "GET", "/", nil), false)
81
82         assert.Equal(mockAssert.HTTPError(httpOK, "GET", "/", nil), false)
83         assert.Equal(mockAssert.HTTPError(httpRedirect, "GET", "/", nil), false)
84         assert.Equal(mockAssert.HTTPError(httpError, "GET", "/", nil), true)
85 }
86
87 func httpHelloName(w http.ResponseWriter, r *http.Request) {
88         name := r.FormValue("name")
89         w.Write([]byte(fmt.Sprintf("Hello, %s!", name)))
90 }
91
92 func TestHttpBody(t *testing.T) {
93         assert := New(t)
94         mockT := new(testing.T)
95
96         assert.True(HTTPBodyContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "Hello, World!"))
97         assert.True(HTTPBodyContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "World"))
98         assert.False(HTTPBodyContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "world"))
99
100         assert.False(HTTPBodyNotContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "Hello, World!"))
101         assert.False(HTTPBodyNotContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "World"))
102         assert.True(HTTPBodyNotContains(mockT, httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "world"))
103 }
104
105 func TestHttpBodyWrappers(t *testing.T) {
106         assert := New(t)
107         mockAssert := New(new(testing.T))
108
109         assert.True(mockAssert.HTTPBodyContains(httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "Hello, World!"))
110         assert.True(mockAssert.HTTPBodyContains(httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "World"))
111         assert.False(mockAssert.HTTPBodyContains(httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "world"))
112
113         assert.False(mockAssert.HTTPBodyNotContains(httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "Hello, World!"))
114         assert.False(mockAssert.HTTPBodyNotContains(httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "World"))
115         assert.True(mockAssert.HTTPBodyNotContains(httpHelloName, "GET", "/", url.Values{"name": []string{"World"}}, "world"))
116
117 }