Skip to content

Commit

Permalink
feat: add more adaptor test
Browse files Browse the repository at this point in the history
  • Loading branch information
ViolaPioggia committed Feb 16, 2024
1 parent 2ad57d2 commit b71bf69
Showing 1 changed file with 154 additions and 3 deletions.
157 changes: 154 additions & 3 deletions adaptor/handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,13 @@ func TestHeaders(t *testing.T) {
assert.DeepEqual(t, k, "value1")
c := req.Header.Get("cookie")
assert.DeepEqual(t, c, "cookie=cookie_value")
// assert.DeepEqual(t, req.ContentLength, 15) todo: fix this
assert.DeepEqual(t, req.Header.Get("Content-Type"), "application/form")

resp.Header().Add("Content-Encoding", "test")
_, err := resp.Write([]byte("Content-Encoding: test\n"))
if err != nil {
panic(err)
}
}

hertzHandler := NewHertzHTTPHandler(http.HandlerFunc(handler))
Expand All @@ -392,9 +398,154 @@ func TestHeaders(t *testing.T) {
req.Header.Set("key1", "value1")
req.Header.SetCookie("cookie", "cookie_value")
req.Header.SetMethod("GET")
req.Header.InitContentLengthWithValue(14)
// req.Header.SetContentLength(15) todo: fix this
req.Header.SetContentTypeBytes([]byte("application/form"))

err := c.Do(context.Background(), req, resp)
assert.Nil(t, err)

assert.DeepEqual(t, resp.Header.Get("Content-Encoding"), "test")
}

func TestForm(t *testing.T) {
t.Parallel()

opt := config.NewOptions([]config.Option{})
opt.Addr = "127.0.0.1:10029"
engine := route.NewEngine(opt)
handler := func(resp http.ResponseWriter, req *http.Request) {
assert.DeepEqual(t, req.Header.Get("Content-Type"), "application/x-www-form-urlencoded")
err := req.ParseForm()
if err != nil {
return
}
assert.DeepEqual(t, req.FormValue("form_data"), "value")
//assert.DeepEqual(t, req.MultipartForm.Value["multiform_data"][0], "value")

}

hertzHandler := NewHertzHTTPHandler(http.HandlerFunc(handler))

engine.POST("/", hertzHandler)
go engine.Run()
defer func() {
engine.Close()
}()
time.Sleep(time.Millisecond * 500)

c, _ := client.NewClient()

req := protocol.AcquireRequest()
resp := protocol.AcquireResponse()
defer func() {
protocol.ReleaseRequest(req)
protocol.ReleaseResponse(resp)
}()
req.SetRequestURI("http://127.0.0.1:10029")
req.SetMethod("POST")

req.SetFormData(map[string]string{"form_data": "value"})
//req.SetMultipartFormData(map[string]string{"multiform_data": "value"})

err := c.Do(context.Background(), req, resp)
assert.Nil(t, err)

}

func TestMultiForm(t *testing.T) {
t.Parallel()

opt := config.NewOptions([]config.Option{})
opt.Addr = "127.0.0.1:10030"
engine := route.NewEngine(opt)
handler := func(resp http.ResponseWriter, req *http.Request) {
assert.NotEqual(t, req.Header.Get("Content-Type"), "application/x-www-form-urlencoded")
err := req.ParseMultipartForm(32 << 20)
if err != nil {
return
}
assert.DeepEqual(t, req.FormValue("multiform_data"), "value")

}

hertzHandler := NewHertzHTTPHandler(http.HandlerFunc(handler))

engine.POST("/", hertzHandler)
go engine.Run()
defer func() {
engine.Close()
}()
time.Sleep(time.Millisecond * 500)

c, _ := client.NewClient()

req := protocol.AcquireRequest()
resp := protocol.AcquireResponse()
defer func() {
protocol.ReleaseRequest(req)
protocol.ReleaseResponse(resp)
}()
req.SetRequestURI("http://127.0.0.1:10030")
req.SetMethod("POST")

req.SetMultipartFormData(map[string]string{"multiform_data": "value"})

err := c.Do(context.Background(), req, resp)
assert.Nil(t, err)

}

//func TestFile(t *testing.T) {
// t.Parallel()
//
// opt := config.NewOptions([]config.Option{})
// opt.Addr = "127.0.0.1:10031"
// engine := route.NewEngine(opt)
// handler := func(resp http.ResponseWriter, req *http.Request) {
// assert.NotEqual(t, req.Header.Get("Content-Type"), "application/x-www-form-urlencoded")
//
// err := req.ParseMultipartForm(32 << 20)
// if err != nil {
// fmt.Println(err)
// panic(err)
// }
//
// file, m, err := req.FormFile("adaptor")
// if err != nil {
// fmt.Println(err)
// panic(err)
// }
//
// assert.DeepEqual(t, m.Filename, "handler.go")
//
// content, err := ioutil.ReadAll(file)
// assert.Nil(t, err)
// assert.DeepEqual(t, string(content), "package adaptor\n")
//
// }
//
// hertzHandler := NewHertzHTTPHandler(http.HandlerFunc(handler))
//
// engine.POST("/", hertzHandler)
// go engine.Run()
// defer func() {
// engine.Close()
// }()
// time.Sleep(time.Millisecond * 500)
//
// c, _ := client.NewClient()
//
// req := protocol.AcquireRequest()
// resp := protocol.AcquireResponse()
// defer func() {
// protocol.ReleaseRequest(req)
// protocol.ReleaseResponse(resp)
// }()
// req.SetRequestURI("http://127.0.0.1:10031")
// req.SetMethod("POST")
// req.SetFile("adaptor", "handler.go")
// fmt.Println(req.MultipartFiles()[0])
//
// err := c.Do(context.Background(), req, resp)
// assert.Nil(t, err)
//
//} todo: fix this test

0 comments on commit b71bf69

Please sign in to comment.