|
1 | 1 | package runner |
2 | 2 |
|
3 | 3 | import ( |
4 | | - "bytes" |
5 | 4 | "context" |
6 | 5 | "crypto/tls" |
7 | 6 | "encoding/json" |
8 | 7 | "fmt" |
9 | 8 | "io" |
10 | | - "mime/multipart" |
11 | 9 | "net/http" |
12 | | - "net/url" |
13 | | - "os" |
14 | 10 | "reflect" |
15 | 11 | "strings" |
16 | 12 | "time" |
@@ -202,40 +198,14 @@ func (r *simpleTestCaseRunner) RunTestCase(testcase *testing.TestCase, dataConte |
202 | 198 | } |
203 | 199 |
|
204 | 200 | var requestBody io.Reader |
205 | | - if testcase.Request.Body != "" { |
206 | | - requestBody = bytes.NewBufferString(testcase.Request.Body) |
207 | | - } else if testcase.Request.BodyFromFile != "" { |
208 | | - var data []byte |
209 | | - if data, err = os.ReadFile(testcase.Request.BodyFromFile); err != nil { |
210 | | - return |
211 | | - } |
212 | | - requestBody = bytes.NewBufferString(string(data)) |
| 201 | + if requestBody, err = testcase.Request.GetBody(); err != nil { |
| 202 | + return |
213 | 203 | } |
214 | 204 |
|
215 | 205 | if err = testcase.Request.Render(dataContext); err != nil { |
216 | 206 | return |
217 | 207 | } |
218 | 208 |
|
219 | | - if len(testcase.Request.Form) > 0 { |
220 | | - if testcase.Request.Header[contentType] == "multipart/form-data" { |
221 | | - multiBody := &bytes.Buffer{} |
222 | | - writer := multipart.NewWriter(multiBody) |
223 | | - for key, val := range testcase.Request.Form { |
224 | | - writer.WriteField(key, val) |
225 | | - } |
226 | | - |
227 | | - _ = writer.Close() |
228 | | - requestBody = multiBody |
229 | | - testcase.Request.Header[contentType] = writer.FormDataContentType() |
230 | | - } else if testcase.Request.Header[contentType] == "application/x-www-form-urlencoded" { |
231 | | - data := url.Values{} |
232 | | - for key, val := range testcase.Request.Form { |
233 | | - data.Set(key, val) |
234 | | - } |
235 | | - requestBody = strings.NewReader(data.Encode()) |
236 | | - } |
237 | | - } |
238 | | - |
239 | 209 | var request *http.Request |
240 | 210 | if request, err = http.NewRequestWithContext(ctx, testcase.Request.Method, testcase.Request.API, requestBody); err != nil { |
241 | 211 | return |
@@ -436,5 +406,3 @@ func jsonSchemaValidation(schema string, body []byte) (err error) { |
436 | 406 | } |
437 | 407 | return |
438 | 408 | } |
439 | | - |
440 | | -const contentType = "Content-Type" |
0 commit comments