|
4 | 4 | "crypto/tls"
|
5 | 5 | "io/ioutil"
|
6 | 6 | "net"
|
| 7 | + "net/http" |
7 | 8 | "net/http/httptest"
|
8 | 9 | "strings"
|
9 | 10 | "testing"
|
@@ -362,3 +363,30 @@ func Test_Proxy_Do_RestoreOriginalURL(t *testing.T) {
|
362 | 363 | utils.AssertEqual(t, nil, err1)
|
363 | 364 | utils.AssertEqual(t, nil, err2)
|
364 | 365 | }
|
| 366 | + |
| 367 | +func Test_Proxy_Do_HTTP_Prefix_URL(t *testing.T) { |
| 368 | + t.Parallel() |
| 369 | + |
| 370 | + _, addr := createProxyTestServer(func(c *fiber.Ctx) error { |
| 371 | + return c.SendString("hello world") |
| 372 | + }, t) |
| 373 | + |
| 374 | + app := fiber.New(fiber.Config{DisableStartupMessage: true}) |
| 375 | + app.Get("/*", func(c *fiber.Ctx) error { |
| 376 | + path := c.OriginalURL() |
| 377 | + url := strings.TrimPrefix(path, "/") |
| 378 | + |
| 379 | + utils.AssertEqual(t, "http://"+addr, url) |
| 380 | + if err := Do(c, url); err != nil { |
| 381 | + return err |
| 382 | + } |
| 383 | + c.Response().Header.Del(fiber.HeaderServer) |
| 384 | + return nil |
| 385 | + }) |
| 386 | + |
| 387 | + resp, err := app.Test(httptest.NewRequest(http.MethodGet, "/http://"+addr, nil)) |
| 388 | + utils.AssertEqual(t, nil, err) |
| 389 | + s, err := ioutil.ReadAll(resp.Body) |
| 390 | + utils.AssertEqual(t, nil, err) |
| 391 | + utils.AssertEqual(t, "hello world", string(s)) |
| 392 | +} |
0 commit comments