github.com/codingeasygo/util@v0.0.0-20231206062002-1ce2f004b7d9/xhttp/xhttp_test.go (about) 1 package xhttp 2 3 import ( 4 "bytes" 5 "fmt" 6 "io" 7 "io/ioutil" 8 "net/http" 9 "net/http/httptest" 10 "os" 11 "strings" 12 "testing" 13 14 "github.com/codingeasygo/util/converter" 15 "github.com/codingeasygo/util/xjson" 16 "github.com/codingeasygo/util/xmap" 17 ) 18 19 func init() { 20 EnableInsecureVerify() 21 DisableInsecureVerify() 22 DisableCookie() 23 ClearCookie() 24 EnableCookie() 25 ClearCookie() 26 NewRawClient(nil) 27 NewClient(&http.Client{}) 28 } 29 30 func TestGet(t *testing.T) { 31 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 32 var format = r.URL.Query().Get("format") 33 switch format { 34 case "json": 35 xjson.WriteJSON(w, map[string]interface{}{ 36 "abc": 1, 37 }) 38 case "text": 39 fmt.Fprintf(w, "1") 40 case "header": 41 fmt.Fprintf(w, "%v", r.Header.Get("abc")) 42 default: 43 w.WriteHeader(500) 44 fmt.Fprintf(w, "error") 45 } 46 })) 47 // 48 bval, err := GetBytes("%v/?format=text", ts.URL) 49 if err != nil || string(bval) != "1" { 50 t.Error(err) 51 return 52 } 53 bval, _, err = GetHeaderBytes(nil, "%v/?format=text", ts.URL) 54 if err != nil || string(bval) != "1" { 55 t.Error(err) 56 return 57 } 58 // 59 sval, err := GetText("%v/?format=text", ts.URL) 60 if err != nil || sval != "1" { 61 t.Error(err) 62 return 63 } 64 sval, _, err = GetHeaderText(xmap.M{"abc": 1}, "%v/?format=text", ts.URL) 65 if err != nil || sval != "1" { 66 t.Error(err) 67 return 68 } 69 // 70 mval, err := GetMap("%v/?format=json", ts.URL) 71 if err != nil { 72 t.Errorf("%v,%v", mval, err) 73 return 74 } 75 mval, _, err = GetHeaderMap(nil, "%v/?format=json", ts.URL) 76 if err != nil { 77 t.Error(err) 78 return 79 } 80 var ival int 81 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 82 if err != nil || ival != 1 { 83 t.Error(err) 84 return 85 } 86 { //get json 87 var jval xmap.M 88 jval = xmap.New() 89 err := GetJSON(&jval, "%v/?format=json", ts.URL) 90 if err != nil || len(jval) < 1 { 91 t.Errorf("%v,%v", mval, err) 92 return 93 } 94 jval = xmap.New() 95 _, err = GetHeaderJSON(&jval, nil, "%v/?format=json", ts.URL) 96 if err != nil || len(jval) < 1 { 97 t.Error(err) 98 return 99 } 100 101 } 102 // 103 //test error 104 _, err = GetText("%v/?format=error", ts.URL) 105 if err == nil { 106 t.Error(err) 107 return 108 } 109 _, err = GetText("%v/\x06?format=text", ts.URL) 110 if err == nil { 111 t.Error(err) 112 return 113 } 114 _, err = GetText("%v/?format=text", "http://127.0.0.1:32") 115 if err == nil { 116 t.Error(err) 117 return 118 } 119 } 120 121 func TestPost(t *testing.T) { 122 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 123 var format = r.URL.Query().Get("format") 124 switch format { 125 case "json": 126 xjson.WriteJSON(w, map[string]interface{}{ 127 "abc": 1, 128 }) 129 case "text": 130 fmt.Fprintf(w, "1") 131 case "header": 132 fmt.Fprintf(w, "%v", r.Header.Get("abc")) 133 case "form": 134 r.ParseForm() 135 xjson.WriteJSON(w, map[string]interface{}{ 136 "abc": r.PostForm.Get("abc"), 137 }) 138 case "part": 139 r.ParseMultipartForm(1024) 140 xjson.WriteJSON(w, map[string]interface{}{ 141 "abc": r.MultipartForm.Value["abc"][0], 142 }) 143 case "body": 144 io.Copy(w, r.Body) 145 default: 146 w.WriteHeader(500) 147 fmt.Fprintf(w, "error") 148 } 149 })) 150 // 151 bval, err := PostBytes(nil, "%v/?format=text", ts.URL) 152 if err != nil || string(bval) != "1" { 153 t.Error(err) 154 return 155 } 156 bval, _, err = MethodBytes("POST", nil, nil, "%v/?format=text", ts.URL) 157 if err != nil || string(bval) != "1" { 158 t.Error(err) 159 return 160 } 161 bval, err = PostTypeBytes(ContentTypeForm, nil, "%v/?format=text", ts.URL) 162 if err != nil || string(bval) != "1" { 163 t.Error(err) 164 return 165 } 166 bval, _, err = PostHeaderBytes(xmap.M{"Content-Type": ContentTypeForm}, nil, "%v/?format=text", ts.URL) 167 if err != nil || string(bval) != "1" { 168 t.Error(err) 169 return 170 } 171 // 172 sval, err := PostText(nil, "%v/?format=text", ts.URL) 173 if err != nil || sval != "1" { 174 t.Error(err) 175 return 176 } 177 sval, _, err = MethodText("POST", nil, nil, "%v/?format=text", ts.URL) 178 if err != nil || sval != "1" { 179 t.Error(err) 180 return 181 } 182 sval, err = PostTypeText(ContentTypeForm, nil, "%v/?format=text", ts.URL) 183 if err != nil || sval != "1" { 184 t.Error(err) 185 return 186 } 187 sval, _, err = PostHeaderText(xmap.M{"Content-Type": ContentTypeForm}, nil, "%v/?format=text", ts.URL) 188 if err != nil || sval != "1" { 189 t.Error(err) 190 return 191 } 192 // 193 var ival int 194 mval, err := PostMap(nil, "%v?format=json", ts.URL) 195 if err != nil { 196 t.Error(err) 197 return 198 } 199 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 200 if err != nil || ival != 1 { 201 t.Error(err) 202 return 203 } 204 mval, _, err = MethodMap("POST", nil, nil, "%v?format=json", ts.URL) 205 if err != nil { 206 t.Error(err) 207 return 208 } 209 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 210 if err != nil || ival != 1 { 211 t.Error(err) 212 return 213 } 214 mval, _, err = PostHeaderMap(xmap.M{"Content-Type": ContentTypeForm}, nil, "%v?format=json", ts.URL) 215 if err != nil { 216 t.Error(err) 217 return 218 } 219 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 220 if err != nil || ival != 1 { 221 t.Error(err) 222 return 223 } 224 mval, err = PostTypeMap(ContentTypeForm, nil, "%v?format=json", ts.URL) 225 if err != nil { 226 t.Error(err) 227 return 228 } 229 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 230 if err != nil || ival != 1 { 231 t.Error(err) 232 return 233 } 234 mval, err = PostJSONMap(map[string]interface{}{"abc": "1"}, "%v?format=body", ts.URL) 235 if err != nil { 236 t.Error(err) 237 return 238 } 239 _, err = PostJSONMap(t.Fail, "%v?format=body", ts.URL) 240 if err == nil { 241 t.Error(err) 242 return 243 } 244 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 245 if err != nil || ival != 1 { 246 t.Error(err) 247 return 248 } 249 sval, err = PostFormText(map[string]interface{}{"abc": "1"}, "%v?format=json", ts.URL) 250 if err != nil || len(sval) < 1 { 251 t.Error(err) 252 return 253 } 254 mval, err = PostFormMap(map[string]interface{}{"abc": "1"}, "%v?format=json", ts.URL) 255 if err != nil { 256 t.Error(err) 257 return 258 } 259 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 260 if err != nil || ival != 1 { 261 t.Error(err) 262 return 263 } 264 sval, err = PostXMLText(t, "%v?format=body", ts.URL) 265 if err != nil { 266 t.Errorf("%v,%v", sval, err) 267 return 268 } 269 _, err = PostXMLText(t.Fail, "%v?format=body", ts.URL) 270 if err == nil { 271 t.Errorf("%v,%v", sval, err) 272 return 273 } 274 bval, _, err = PostMultipartBytes(nil, xmap.M{"abc": "123"}, "%v?format=part", ts.URL) 275 if err != nil || !strings.Contains(string(bval), "123") { 276 t.Errorf("err:%v,text:%v", err, bval) 277 return 278 } 279 sval, err = PostMultipartText(nil, xmap.M{"abc": "123"}, "%v?format=part", ts.URL) 280 if err != nil || !strings.Contains(sval, "123") { 281 t.Errorf("err:%v,text:%v", err, sval) 282 return 283 } 284 mval, err = PostMultipartMap(xmap.M{"abc": "123"}, xmap.M{"abc": "123"}, "%v?format=part", ts.URL) 285 if err != nil || mval.Str("abc") != "123" { 286 t.Errorf("err:%v,text:%v", err, sval) 287 return 288 } 289 { //json result 290 var jval xmap.M 291 jval = xmap.New() 292 err = PostJSON(&jval, bytes.NewBufferString("{}"), "%v?format=json", ts.URL) 293 if err != nil || len(jval) < 1 { 294 t.Error(err) 295 return 296 } 297 jval = xmap.New() 298 err = PostTypeJSON(&jval, ContentTypeJSON, bytes.NewBufferString("{}"), "%v?format=json", ts.URL) 299 if err != nil || len(jval) < 1 { 300 t.Error(err) 301 return 302 } 303 jval = xmap.New() 304 _, err = PostHeaderJSON(&jval, nil, bytes.NewBufferString("{}"), "%v?format=json", ts.URL) 305 if err != nil || len(jval) < 1 { 306 t.Error(err) 307 return 308 } 309 jval = xmap.New() 310 err = PostJSONJSON(&jval, xmap.New(), "%v?format=json", ts.URL) 311 if err != nil || len(jval) < 1 { 312 t.Error(err) 313 return 314 } 315 err = PostJSONJSON(&jval, t.Error, "%v?format=json", ts.URL) 316 if err == nil { 317 t.Error(err) 318 return 319 } 320 } 321 // 322 //test error 323 _, err = PostText(nil, "%v/?format=error", ts.URL) 324 if err == nil { 325 t.Error(err) 326 return 327 } 328 _, err = PostText(nil, "%v/\x06?format=text", ts.URL) 329 if err == nil { 330 t.Error(err) 331 return 332 } 333 _, err = PostText(nil, "%v/?format=text", "http://127.0.0.1:32") 334 if err == nil { 335 t.Error(err) 336 return 337 } 338 _, _, err = MethodText("POST", nil, nil, "%v/?format=error", ts.URL) 339 if err != nil { 340 t.Error(err) 341 return 342 } 343 _, _, err = MethodText("POST", nil, nil, "%v/?format=error", "http://127.0.0.1:32") 344 if err == nil { 345 t.Error(err) 346 return 347 } 348 // 349 _, err = PostMultipartText(nil, xmap.M{"abc": "123"}, "%v?format=error", ts.URL) 350 if err == nil { 351 t.Errorf("err:%v,text:%v", err, sval) 352 return 353 } 354 _, err = PostMultipartText(nil, xmap.M{"abc": "123"}, "%v?\x06format=text", ts.URL) 355 if err == nil { 356 t.Errorf("err:%v,text:%v", err, sval) 357 return 358 } 359 _, err = PostMultipartText(nil, xmap.M{"abc": "123"}, "%v?format=text", "http://127.0.0.1:32") 360 if err == nil { 361 t.Errorf("err:%v,text:%v", err, sval) 362 return 363 } 364 } 365 366 func TestUpload(t *testing.T) { 367 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 368 var format = r.URL.Query().Get("format") 369 switch format { 370 case "json": 371 r.ParseMultipartForm(1024) 372 f, _ := r.MultipartForm.File["abc"][0].Open() 373 data, _ := ioutil.ReadAll(f) 374 f.Close() 375 xjson.WriteJSON(w, map[string]interface{}{ 376 "abc": string(data), 377 }) 378 case "text": 379 r.ParseMultipartForm(1024) 380 f, _ := r.MultipartForm.File["abc"][0].Open() 381 io.Copy(w, f) 382 f.Close() 383 default: 384 w.WriteHeader(500) 385 fmt.Fprintf(w, "error") 386 } 387 })) 388 var ival int 389 os.Remove("/tmp/xhttp_test.txt") 390 ioutil.WriteFile("/tmp/xhttp_test.txt", []byte("1"), os.ModePerm) 391 // 392 sval, err := UploadText(nil, "abc", "/tmp/xhttp_test.txt", "%v?format=text", ts.URL) 393 if err != nil || sval != "1" { 394 t.Error(err) 395 return 396 } 397 sval, _, err = UploadHeaderText(xmap.M{"h1": 1}, xmap.M{"f1": 1}, "abc", "/tmp/xhttp_test.txt", "%v?format=text", ts.URL) 398 if err != nil || sval != "1" { 399 t.Error(err) 400 return 401 } 402 // 403 mval, err := UploadMap(nil, "abc", "/tmp/xhttp_test.txt", "%v?format=json", ts.URL) 404 if err != nil { 405 t.Error(err) 406 return 407 } 408 err = mval.ValidFormat(`abc,r|i,r:0;`, &ival) 409 if err != nil || ival != 1 { 410 t.Error(err) 411 return 412 } 413 // 414 //test error 415 _, err = UploadText(nil, "abc", "/tmp/xhttp_test.txt", "%v/\x01?format=json", ts.URL) 416 if err == nil { 417 t.Error(err) 418 return 419 } 420 _, err = UploadText(nil, "abc", "/tmp/xhttp_test.txt", "%v?format=error", ts.URL) 421 if err == nil { 422 t.Error(err) 423 return 424 } 425 _, err = UploadText(nil, "abc", "/tmp/xxxxx", "%v?format=text", ts.URL) 426 if err == nil { 427 t.Error(err) 428 return 429 } 430 } 431 432 func TestDownload(t *testing.T) { 433 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 434 var format = r.URL.Query().Get("format") 435 switch format { 436 case "filename": 437 w.Header().Set("Content-Disposition", "binary;filename=\"xhttp_downt.txt\"") 438 fmt.Fprintf(w, "1") 439 case "text": 440 fmt.Fprintf(w, "1") 441 default: 442 w.WriteHeader(500) 443 fmt.Fprintf(w, "error") 444 } 445 })) 446 // 447 os.Remove("/tmp/xhttp_downt.txt") 448 _, err := Download("/tmp/", "%v?format=filename", ts.URL) 449 if err != nil { 450 t.Error(err) 451 return 452 } 453 bval, err := ioutil.ReadFile("/tmp/xhttp_downt.txt") 454 if err != nil || string(bval) != "1" { 455 t.Error(err) 456 return 457 } 458 // 459 os.Remove("/tmp/xhttp_downt2.txt") 460 _, err = Download("/tmp/", "%v/xhttp_downt2.txt?format=text", ts.URL) 461 if err != nil { 462 t.Error(err) 463 return 464 } 465 bval, err = ioutil.ReadFile("/tmp/xhttp_downt2.txt") 466 if err != nil || string(bval) != "1" { 467 t.Error(err) 468 return 469 } 470 // 471 os.Remove("/tmp/index.html") 472 _, err = DownloadHeader("/tmp/", xmap.M{"x": 1}, "%v/?format=text", ts.URL) 473 if err != nil { 474 t.Error(err) 475 return 476 } 477 bval, err = ioutil.ReadFile("/tmp/index.html") 478 if err != nil || string(bval) != "1" { 479 t.Error(err) 480 return 481 } 482 // 483 //test error 484 _, err = Download("/tmp/", "%v\x01/?format=text", ts.URL) 485 if err == nil { 486 t.Error(err) 487 return 488 } 489 _, err = Download("/tmp/", "%v/?format=error", ts.URL) 490 if err == nil { 491 t.Error(err) 492 return 493 } 494 _, err = Download("/tmp/", "http://127.0.0.1:32") 495 if err == nil { 496 t.Error(err) 497 return 498 } 499 } 500 501 func TestCreateMultipartBody(t *testing.T) { 502 CreateMultipartBody(map[string]interface{}{"A": 1}) 503 } 504 505 // func TestReadAllStr(t *testing.T) { 506 // res, _ := readAllStr(nil) 507 // if len(res) > 0 { 508 // t.Error("not empty") 509 // return 510 // } 511 // r, _ := os.Open("name") 512 // res, _ = readAllStr(r) 513 // if len(res) > 0 { 514 // t.Error("not empty") 515 // return 516 // } 517 // } 518 519 // func TestHTTP2(t *testing.T) { 520 // ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 521 // w.Write([]byte("{\"code\":1}")) 522 // })) 523 // ts2 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 524 // w.Write([]byte("{\"code:1}")) 525 // })) 526 // ts3 := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 527 // })) 528 // res := HTTPGet2(ts.URL) 529 // fmt.Println(res) 530 // res = HTTPGet2(ts2.URL) 531 // fmt.Println(res) 532 // res = HTTPGet2(ts3.URL) 533 // fmt.Println(res) 534 // _, err := HPostF(ts.URL, map[string]string{"ma": "123"}, "abc", "") 535 // if err == nil { 536 // t.Error("not error") 537 // return 538 // } 539 // _, err = HPostF("hhh", map[string]string{"ma": "123"}, "abc", "test.txt") 540 // if err == nil { 541 // t.Error("not error") 542 // return 543 // } 544 // _, err = HPostF(ts.URL, map[string]string{"ma": "123"}, "abc", "test.txt") 545 // if err != nil { 546 // t.Error(err.Error()) 547 // return 548 // } 549 // _, _, err = HTTPClient.HPostF_H(ts.URL, map[string]string{"ma": "123"}, map[string]string{"ma": "123"}, "abc", "test.txt") 550 // if err != nil { 551 // t.Error(err.Error()) 552 // return 553 // } 554 // _, err = HPostF(ts.URL, map[string]string{"ma": "123"}, "abc", "/tmp") 555 // if err == nil { 556 // t.Error("not error") 557 // return 558 // } 559 // _, err = HPostF2(ts.URL, map[string]string{"ma": "123"}, "abc", "test.txt") 560 // if err != nil { 561 // t.Error(err.Error()) 562 // return 563 // } 564 // _, _, err = HTTPClient.HGet_H(map[string]string{"ma": "123"}, "%s?abc=%s", ts.URL, "1111") 565 // if err != nil { 566 // t.Error(err.Error()) 567 // return 568 // } 569 // HPostF2("kkk", map[string]string{"ma": "123"}, "abc", "test.txt") 570 // HPostF2("123%34%56://s", map[string]string{"ma": "123"}, "abc", "test.txt") 571 // HTTPPost(ts.URL, map[string]string{"ma": "123"}) 572 // HTTPPost2(ts.URL, map[string]string{"ma": "123"}) 573 // HTTPPost2("jhj", map[string]string{"ma": "123"}) 574 // // 575 // HTTPClient.DLoad("/tmp/aa.log", map[string]string{"ma": "123"}, "%s", ts.URL) 576 // fmt.Println(HTTPClient.DLoad("/sg/aa.log", map[string]string{"ma": "123"}, "%s", ts.URL)) 577 // } 578 // func TestHTTPErr(t *testing.T) { 579 // fmt.Println(HPostF2("123%45%6", map[string]string{"ma": "123"}, "abc", "test.txt")) 580 // fmt.Println(HGet("123%45%6")) 581 // fmt.Println(HPostN("123%45%6", "ABcc", nil)) 582 // fmt.Println(DLoad("spath", "123%45%6")) 583 // } 584 // func TestHpp(t *testing.T) { 585 // HGet("123%45%67://s") 586 // HGet("kk") 587 // HGet2("kk") 588 // HPost("jjjj", nil) 589 // HPost2("kkk", nil) 590 // HGet2("kkk") 591 // } 592 593 // // 594 // type osize struct { 595 // } 596 597 // func (o *osize) Size() int64 { 598 // return 100 599 // } 600 601 // type ostat struct { 602 // F *os.File 603 // } 604 605 // func (o *ostat) Stat() (os.FileInfo, error) { 606 // return o.F.Stat() 607 // } 608 // func TestFormFSzie(t *testing.T) { 609 // ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 610 // w.Write([]byte("{\"code\":1}")) 611 // src, _, err := r.FormFile("abc") 612 // if err != nil { 613 // t.Error(err.Error()) 614 // return 615 // } 616 // fsize := FormFSzie(src) 617 // if fsize < 1 { 618 // t.Error("not size") 619 // } 620 // })) 621 // _, err := HPostF(ts.URL, map[string]string{"ma": "123"}, "abc", "test.txt") 622 // if err != nil { 623 // t.Error(err.Error()) 624 // } 625 // f, _ := os.Open("test.txt") 626 // defer f.Close() 627 // fsize := FormFSzie(f) 628 // if fsize < 1 { 629 // t.Error("not right") 630 // } 631 // fsize = FormFSzie(&osize{}) 632 // if fsize < 1 { 633 // t.Error("not right") 634 // } 635 // } 636 637 // func TestMap2Query(t *testing.T) { 638 // mv := map[string]interface{}{} 639 // mv["abc"] = "123" 640 // mv["dd"] = "ee" 641 // fmt.Println(Map2Query(mv)) 642 // } 643 644 // func TestAHttpPost(t *testing.T) { 645 // ts := httptest.NewServer(http.HandlerFunc( 646 // func(w http.ResponseWriter, r *http.Request) { 647 // r.ParseMultipartForm(10000000) 648 // // r.PostFormValue(key) 649 // fmt.Println(r.FormValue("ab")) 650 // fmt.Println(r.PostFormValue("ab")) 651 // })) 652 // HPostF2s(ts.URL, map[string]string{ 653 // "ab": "233", 654 // }, "", "") 655 // } 656 657 // func HPostF2s(url string, fields map[string]string, fkey string, fp string) (string, error) { 658 // ctype, bodyBuf, err := CreateFormBody2(fields, fkey, fp) 659 // if err != nil { 660 // return "", err 661 // } 662 // res, err := http.Post(url, ctype, bodyBuf) 663 // if err != nil { 664 // return "", err 665 // } 666 // return readAllStr(res.Body) 667 // } 668 669 // func CreateFormBody2(fields map[string]string, fkey string, fp string) (string, *bytes.Buffer, error) { 670 // bodyBuf := &bytes.Buffer{} 671 // bodyWriter := multipart.NewWriter(bodyBuf) 672 // for k, v := range fields { 673 // bodyWriter.WriteField(k, v) 674 // } 675 // w, _ := bodyWriter.CreateFormField("kkk") 676 // w.Write([]byte("kkkkkkk")) 677 // if len(fkey) > 0 { 678 // fileWriter, err := bodyWriter.CreateFormFile(fkey, fp) 679 // if err != nil { 680 // return "", nil, err 681 // } 682 // fh, err := os.Open(fp) 683 // if err != nil { 684 // return "", nil, err 685 // } 686 // defer fh.Close() 687 // _, err = io.Copy(fileWriter, fh) 688 // if err != nil { 689 // return "", nil, err 690 // } 691 // } 692 // ctype := bodyWriter.FormDataContentType() 693 // bodyWriter.Close() 694 // return ctype, bodyBuf, nil 695 // } 696 697 // type ErrWriter struct { 698 // } 699 700 // func (e *ErrWriter) Write(p []byte) (n int, err error) { 701 // return 0, errors.New("test erro") 702 // } 703 704 // func TestCreateFileForm(t *testing.T) { 705 // bodyWriter := multipart.NewWriter(&ErrWriter{}) 706 // err := CreateFileForm(bodyWriter, "sss", "sss") 707 // if err == nil { 708 // t.Error("not error") 709 // } 710 // fmt.Println(err.Error()) 711 // } 712 713 // func TestJson2Ary(t *testing.T) { 714 // ary, err := Json2Ary(` 715 // [1,2,"ss"] 716 // `) 717 // if err != nil { 718 // t.Error(err.Error()) 719 // return 720 // } 721 // fmt.Println(ary) 722 // _, err = Json2Ary(` 723 // [1,2,ss"] 724 // `) 725 // if err == nil { 726 // t.Error("not error") 727 // return 728 // } 729 // } 730 731 // type ErrReader struct { 732 // } 733 734 // func (e *ErrReader) Read(p []byte) (n int, err error) { 735 // return 0, errors.New("error") 736 // } 737 // func TestPostN(t *testing.T) { 738 // ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 739 // w.Write([]byte("Ok")) 740 // })) 741 // _, data, err := HPostN(ts.URL, "text/plain", bytes.NewBuffer([]byte("WWW"))) 742 // if err != nil { 743 // t.Error(err.Error()) 744 // return 745 // } 746 // fmt.Println(data) 747 // fmt.Println(HPostN("kkk://sssss", "text/plain", bytes.NewBuffer([]byte("WWW")))) 748 // fmt.Println(HPostN("http:///kkkfjdfsfsd", "text/plain", bytes.NewBuffer([]byte("WWW")))) 749 // // fmt.Println(HPostN("http://www.baidu.com", "text/plain", &ErrReader{})) 750 // } 751 // func TestPostN2(t *testing.T) { 752 // _, err := http.NewRequest("POT", "123%45%6://www.ss.com?", nil) 753 // fmt.Println(err) 754 // } 755 756 // func TestHttps(t *testing.T) { 757 // fmt.Println(HGet("https://qnear.com")) 758 // } 759 760 func TestShould(t *testing.T) { 761 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 762 switch r.URL.Path { 763 case "/ok": 764 fmt.Fprintf(w, "%v", converter.JSON(xmap.M{"code": 0})) 765 default: 766 http.NotFound(w, r) 767 } 768 769 })) 770 client := NewShouldClient() 771 client.Should(t, "code", 0).GetMap("%v/ok", ts.URL) 772 client.Should(t, "code", 0).GetHeaderMap(nil, "%v/ok", ts.URL) 773 client.Should(t, "code", 0).PostMap(nil, "%v/ok", ts.URL) 774 client.Should(t, "code", 0).PostTypeMap("application/json", nil, "%v/ok", ts.URL) 775 client.Should(t, "code", 0).PostHeaderMap(nil, nil, "%v/ok", ts.URL) 776 client.Should(t, "code", 0).PostJSONMap(xmap.M{}, "%v/ok", ts.URL) 777 client.Should(t, "code", 0).MethodMap("POST", nil, nil, "%v/ok", ts.URL) 778 client.Should(t, "code", 0).PostFormMap(nil, "%v/ok", ts.URL) 779 client.Should(t, "code", 0).PostMultipartMap(nil, nil, "%v/ok", ts.URL) 780 client.Should(t, "code", 0).UploadMap(nil, "file", "xhttp.go", "%v/ok", ts.URL) 781 client.ShouldError(t).GetMap("%v/none", ts.URL) 782 client.Should(t).OnlyLog(true).GetMap("%v/none", ts.URL) 783 }