|
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