@@ -59,8 +59,7 @@ func TestClient(t *testing.T) {
5959 Name string `form:"name"`
6060 }
6161 req := c .Get ("http://%s" , addr ).SetQuery (Req {Name : "xxx" })
62- exp := fmt .Sprintf ("http://%s?name=xxx" , addr )
63- assert .Equal (t , req .url , exp )
62+ assert .True (t , errors .Is (req .err , errUnsupportedData ))
6463 }
6564}
6665
@@ -96,6 +95,18 @@ func TestRequest(t *testing.T) {
9695 resp := Delete ("http://%s" , addr ).Send (nil )
9796 assert .NoError (t , resp .Err ())
9897 }
98+ {
99+ resp := Patch ("http://%s" , addr ).Send (nil )
100+ assert .NoError (t , resp .Err ())
101+ }
102+ {
103+ resp := Head ("http://%s" , addr ).Send (nil )
104+ assert .NoError (t , resp .Err ())
105+ }
106+ {
107+ resp := Options ("http://%s" , addr ).Send (nil )
108+ assert .NoError (t , resp .Err ())
109+ }
99110 {
100111 resp := NewRequest (http .MethodDelete , "http://%s" , addr ).Send (nil )
101112 assert .NoError (t , resp .Err ())
@@ -109,19 +120,6 @@ func TestRequest(t *testing.T) {
109120 }
110121}
111122
112- func TestRequest_Header (t * testing.T ) {
113- {
114- var req = Post ("http://%s" , nextAddr ()).SetEncoder (FormEncoder )
115- var typ = req .Header ().Get ("Content-Type" )
116- assert .Equal (t , typ , MimeForm )
117- }
118- {
119- var req = Get ("http://%s" , nextAddr ())
120- var typ = req .Header ().Get ("Content-Type" )
121- assert .Equal (t , typ , MimeJson )
122- }
123- }
124-
125123func TestRequest_SetContext (t * testing.T ) {
126124 addr := nextAddr ()
127125 srv := & http.Server {Addr : addr }
@@ -166,14 +164,6 @@ func TestRequest_SetQuery(t *testing.T) {
166164 })
167165 assert .Equal (t , req .url , "http://" + addr + "?name=xxx" )
168166 })
169-
170- t .Run ("" , func (t * testing.T ) {
171- type Req struct {
172- Name string `form:"name"`
173- }
174- req := Get ("http://%s" , addr ).SetQuery (Req {Name : "xxx" })
175- assert .Equal (t , req .url , "http://" + addr + "?name=xxx" )
176- })
177167}
178168
179169func TestRequest_Send (t * testing.T ) {
@@ -290,9 +280,18 @@ func TestResponse(t *testing.T) {
290280 case "/greet" :
291281 writer .WriteHeader (http .StatusOK )
292282 writer .Write ([]byte ("hello" ))
293- case "/test " :
283+ case "/json " :
294284 writer .WriteHeader (http .StatusOK )
295285 writer .Write ([]byte (`{"name":"caster"}` ))
286+ case "/yaml" :
287+ writer .WriteHeader (http .StatusOK )
288+ writer .Write ([]byte (`name: caster` ))
289+ case "/xml" :
290+ writer .WriteHeader (http .StatusOK )
291+ writer .Write ([]byte (`<A><name>caster</name></A>` ))
292+ case "/proto" :
293+ writer .WriteHeader (http .StatusOK )
294+ writer .Write ([]byte {10 , 6 , 99 , 97 , 115 , 116 , 101 , 114 })
296295 case "/204" :
297296 writer .WriteHeader (http .StatusNoContent )
298297 default :
@@ -311,35 +310,35 @@ func TestResponse(t *testing.T) {
311310 })
312311
313312 t .Run ("read body error 1" , func (t * testing.T ) {
314- resp := Post ("http://%s/test " , nextAddr ()).Send (nil )
313+ resp := Post ("http://%s/json " , nextAddr ()).Send (nil )
315314 _ , err := resp .ReadBody ()
316315 assert .Error (t , err )
317316 })
318317
319318 t .Run ("read body error 2" , func (t * testing.T ) {
320- resp := Post ("http://%s/test " , addr ).Send (nil )
319+ resp := Post ("http://%s/json " , addr ).Send (nil )
321320 resp .Body = nil
322321 _ , err := resp .ReadBody ()
323322 assert .Error (t , err )
324323 })
325324
326325 t .Run ("bind json ok" , func (t * testing.T ) {
327- resp := Post ("http://%s/test " , addr ).Send (nil )
326+ resp := Post ("http://%s/json " , addr ).Send (nil )
328327 input := struct { Name string }{}
329328 err := resp .BindJSON (& input )
330329 assert .NoError (t , err )
331330 assert .Equal (t , input .Name , "caster" )
332331 })
333332
334333 t .Run ("bind json error 1" , func (t * testing.T ) {
335- resp := Post ("http://%s/test " , nextAddr ()).Send (nil )
334+ resp := Post ("http://%s/json " , nextAddr ()).Send (nil )
336335 inputs := struct { Name string }{}
337336 err := resp .BindJSON (& inputs )
338337 assert .Error (t , err )
339338 })
340339
341340 t .Run ("bind json error 2" , func (t * testing.T ) {
342- resp := Post ("http://%s/test " , addr ).Send (map [string ]any {
341+ resp := Post ("http://%s/json " , addr ).Send (map [string ]any {
343342 "name" : "xxx" ,
344343 })
345344 resp .Body = nil
@@ -373,3 +372,15 @@ func TestResponse(t *testing.T) {
373372 assert .Error (t , resp .Err ())
374373 })
375374}
375+
376+ func TestRequest_SetHeaders (t * testing.T ) {
377+ var h = http.Header {}
378+ h .Set ("Content-Type" , MimeJson )
379+ h .Set ("cookie" , "123" )
380+ var req = Get ("https://api.github.com" ).
381+ SetHeader ("Cookie" , "456" ).
382+ SetHeader ("encoding" , "none" ).
383+ SetHeaders (h )
384+ assert .Equal (t , req .headers .Get ("cookie" ), "123" )
385+ assert .Equal (t , req .headers .Get ("encoding" ), "none" )
386+ }
0 commit comments