resumablerequestreader_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package httputils
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "net/http"
  6. "net/http/httptest"
  7. "strings"
  8. "testing"
  9. )
  10. func TestResumableRequestReader(t *testing.T) {
  11. srvtxt := "some response text data"
  12. ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  13. fmt.Fprintln(w, srvtxt)
  14. }))
  15. defer ts.Close()
  16. var req *http.Request
  17. req, err := http.NewRequest("GET", ts.URL, nil)
  18. if err != nil {
  19. t.Fatal(err)
  20. }
  21. client := &http.Client{}
  22. retries := uint32(5)
  23. imgSize := int64(len(srvtxt))
  24. resreq := ResumableRequestReader(client, req, retries, imgSize)
  25. defer resreq.Close()
  26. data, err := ioutil.ReadAll(resreq)
  27. if err != nil {
  28. t.Fatal(err)
  29. }
  30. resstr := strings.TrimSuffix(string(data), "\n")
  31. if resstr != srvtxt {
  32. t.Errorf("resstr != srvtxt")
  33. }
  34. }
  35. func TestResumableRequestReaderWithInitialResponse(t *testing.T) {
  36. srvtxt := "some response text data"
  37. ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
  38. fmt.Fprintln(w, srvtxt)
  39. }))
  40. defer ts.Close()
  41. var req *http.Request
  42. req, err := http.NewRequest("GET", ts.URL, nil)
  43. if err != nil {
  44. t.Fatal(err)
  45. }
  46. client := &http.Client{}
  47. retries := uint32(5)
  48. imgSize := int64(len(srvtxt))
  49. res, err := client.Do(req)
  50. if err != nil {
  51. t.Fatal(err)
  52. }
  53. resreq := ResumableRequestReaderWithInitialResponse(client, req, retries, imgSize, res)
  54. defer resreq.Close()
  55. data, err := ioutil.ReadAll(resreq)
  56. if err != nil {
  57. t.Fatal(err)
  58. }
  59. resstr := strings.TrimSuffix(string(data), "\n")
  60. if resstr != srvtxt {
  61. t.Errorf("resstr != srvtxt")
  62. }
  63. }