Files
EdgeNode/internal/waf/checkpoints/request_upload_test.go
GoEdgeLab 4245c73c47 实现WAF
2020-10-08 15:06:42 +08:00

82 lines
1.6 KiB
Go

package checkpoints
import (
"bytes"
"github.com/TeaOSLab/EdgeNode/internal/waf/requests"
"io/ioutil"
"mime/multipart"
"net/http"
"testing"
)
func TestRequestUploadCheckpoint_RequestValue(t *testing.T) {
body := bytes.NewBuffer([]byte{})
writer := multipart.NewWriter(body)
{
part, err := writer.CreateFormField("name")
if err == nil {
part.Write([]byte("lu"))
}
}
{
part, err := writer.CreateFormField("age")
if err == nil {
part.Write([]byte("20"))
}
}
{
part, err := writer.CreateFormFile("myFile", "hello.txt")
if err == nil {
part.Write([]byte("Hello, World!"))
}
}
{
part, err := writer.CreateFormFile("myFile2", "hello.PHP")
if err == nil {
part.Write([]byte("Hello, World, PHP!"))
}
}
{
part, err := writer.CreateFormFile("myFile3", "hello.asp")
if err == nil {
part.Write([]byte("Hello, World, ASP Pages!"))
}
}
{
part, err := writer.CreateFormFile("myFile4", "hello.asp")
if err == nil {
part.Write([]byte("Hello, World, ASP Pages!"))
}
}
writer.Close()
rawReq, err := http.NewRequest(http.MethodPost, "http://teaos.cn/", body)
if err != nil {
t.Fatal()
}
req := requests.NewRequest(rawReq)
req.Header.Add("Content-Type", writer.FormDataContentType())
checkpoint := new(RequestUploadCheckpoint)
t.Log(checkpoint.RequestValue(req, "field", nil))
t.Log(checkpoint.RequestValue(req, "minSize", nil))
t.Log(checkpoint.RequestValue(req, "maxSize", nil))
t.Log(checkpoint.RequestValue(req, "name", nil))
t.Log(checkpoint.RequestValue(req, "ext", nil))
data, err := ioutil.ReadAll(req.Body)
if err != nil {
t.Fatal(err)
}
t.Log(string(data))
}