|
1 | 1 | package dataflow
|
2 | 2 |
|
3 | 3 | import (
|
4 |
| - "github.com/gin-gonic/gin" |
5 |
| - "github.com/guonaihong/gout/core" |
6 |
| - "github.com/stretchr/testify/assert" |
7 | 4 | "net/http"
|
8 | 5 | "net/http/httptest"
|
9 | 6 | "testing"
|
10 | 7 | "time"
|
| 8 | + |
| 9 | + "github.com/gin-gonic/gin" |
| 10 | + "github.com/guonaihong/gout/core" |
| 11 | + "github.com/stretchr/testify/assert" |
11 | 12 | )
|
12 | 13 |
|
13 | 14 | type testHeader2 struct {
|
@@ -177,3 +178,36 @@ func Test_BindHeader_empty(t *testing.T) {
|
177 | 178 | assert.Equal(t, tHeader.Sid, "sid-ok")
|
178 | 179 | }
|
179 | 180 | }
|
| 181 | + |
| 182 | +// 测试直接发送raw http header。 |
| 183 | +func Test_HeaderRaw(t *testing.T) { |
| 184 | + router := func() *gin.Engine { |
| 185 | + router := gin.New() |
| 186 | + |
| 187 | + router.GET("/test.header", func(c *gin.Context) { |
| 188 | + h := map[string][]string(c.Request.Header) |
| 189 | + c.Writer.Header().Add("sid", h["Sid"][0]) |
| 190 | + }) |
| 191 | + |
| 192 | + return router |
| 193 | + }() |
| 194 | + |
| 195 | + ts := httptest.NewServer(http.HandlerFunc(router.ServeHTTP)) |
| 196 | + |
| 197 | + g := New() |
| 198 | + |
| 199 | + type testHeader2 struct { |
| 200 | + Sid string `header:"sid"` |
| 201 | + Code int |
| 202 | + } |
| 203 | + |
| 204 | + var tHeader testHeader2 |
| 205 | + for _, v := range []interface{}{ |
| 206 | + core.A{"sid", "hello"}, |
| 207 | + } { |
| 208 | + err := g.GET(ts.URL + "/test.header").Debug(true).SetHeaderRaw(v).BindHeader(&tHeader).Code(&tHeader.Code).Do() |
| 209 | + assert.NoError(t, err) |
| 210 | + assert.Equal(t, tHeader.Code, 200) |
| 211 | + assert.Equal(t, tHeader.Sid, "hello") |
| 212 | + } |
| 213 | +} |
0 commit comments