go test -run Test_App_Mixed_Routes_WithSameLen
(t *testing.T)
| 1697 | |
| 1698 | // go test -run Test_App_Mixed_Routes_WithSameLen |
| 1699 | func Test_App_Mixed_Routes_WithSameLen(t *testing.T) { |
| 1700 | t.Parallel() |
| 1701 | app := New() |
| 1702 | |
| 1703 | // middleware |
| 1704 | app.Use(func(c Ctx) error { |
| 1705 | c.Set("TestHeader", "TestValue") |
| 1706 | return c.Next() |
| 1707 | }) |
| 1708 | // routes with the same length |
| 1709 | app.Get("/tesbar", func(c Ctx) error { |
| 1710 | c.Type("html") |
| 1711 | return c.Send([]byte("TEST_BAR")) |
| 1712 | }) |
| 1713 | app.Get("/foobar", func(c Ctx) error { |
| 1714 | c.Type("html") |
| 1715 | return c.Send([]byte("FOO_BAR")) |
| 1716 | }) |
| 1717 | |
| 1718 | // match get route |
| 1719 | req := httptest.NewRequest(MethodGet, "/foobar", http.NoBody) |
| 1720 | resp, err := app.Test(req) |
| 1721 | require.NoError(t, err, "app.Test(req)") |
| 1722 | require.Equal(t, 200, resp.StatusCode, "Status code") |
| 1723 | require.NotEmpty(t, resp.Header.Get(HeaderContentLength)) |
| 1724 | require.Equal(t, "TestValue", resp.Header.Get("TestHeader")) |
| 1725 | require.Equal(t, "text/html; charset=utf-8", resp.Header.Get(HeaderContentType)) |
| 1726 | |
| 1727 | body, err := io.ReadAll(resp.Body) |
| 1728 | require.NoError(t, err) |
| 1729 | require.Equal(t, "FOO_BAR", string(body)) |
| 1730 | |
| 1731 | // match static route |
| 1732 | req = httptest.NewRequest(MethodGet, "/tesbar", http.NoBody) |
| 1733 | resp, err = app.Test(req) |
| 1734 | require.NoError(t, err, "app.Test(req)") |
| 1735 | require.Equal(t, 200, resp.StatusCode, "Status code") |
| 1736 | require.NotEmpty(t, resp.Header.Get(HeaderContentLength)) |
| 1737 | require.Equal(t, "TestValue", resp.Header.Get("TestHeader")) |
| 1738 | require.Equal(t, "text/html; charset=utf-8", resp.Header.Get(HeaderContentType)) |
| 1739 | |
| 1740 | body, err = io.ReadAll(resp.Body) |
| 1741 | require.NoError(t, err) |
| 1742 | require.Contains(t, string(body), "TEST_BAR") |
| 1743 | } |
| 1744 | |
| 1745 | func Test_App_Group_Invalid(t *testing.T) { |
| 1746 | t.Parallel() |