-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix admin config page error, use tests to cover the admin config and …
…500 error page (#24965) The admin config page has been broken for many many times, a little refactoring would make this page panic. So, add a test for it, and add another test to cover the 500 error page. Co-authored-by: Giteabot <teabot@gitea.io>
- Loading branch information
1 parent
73b57c2
commit ca5f302
Showing
6 changed files
with
70 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
// Copyright 2023 The Gitea Authors. All rights reserved. | ||
// SPDX-License-Identifier: MIT | ||
|
||
package common | ||
|
||
import ( | ||
"context" | ||
"errors" | ||
"net/http" | ||
"net/http/httptest" | ||
"net/url" | ||
"path/filepath" | ||
"testing" | ||
|
||
"code.gitea.io/gitea/models/unittest" | ||
"code.gitea.io/gitea/modules/test" | ||
"code.gitea.io/gitea/modules/web/middleware" | ||
|
||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
func TestRenderPanicErrorPage(t *testing.T) { | ||
w := httptest.NewRecorder() | ||
req := &http.Request{URL: &url.URL{}} | ||
req = req.WithContext(middleware.WithContextData(context.Background())) | ||
RenderPanicErrorPage(w, req, errors.New("fake panic error (for test only)")) | ||
respContent := w.Body.String() | ||
assert.Contains(t, respContent, `class="page-content status-page-500"`) | ||
assert.Contains(t, respContent, `</html>`) | ||
|
||
// the 500 page doesn't have normal pages footer, it makes it easier to distinguish a normal page and a failed page. | ||
// especially when a sub-template causes page error, the HTTP response code is still 200, | ||
// the different "footer" is the only way to know whether a page is fully rendered without error. | ||
assert.False(t, test.IsNormalPageCompleted(respContent)) | ||
} | ||
|
||
func TestMain(m *testing.M) { | ||
unittest.MainTest(m, &unittest.TestOptions{ | ||
GiteaRootPath: filepath.Join("..", ".."), | ||
}) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// Copyright 2023 The Gitea Authors. All rights reserved. | ||
// SPDX-License-Identifier: MIT | ||
|
||
package integration | ||
|
||
import ( | ||
"net/http" | ||
"testing" | ||
|
||
"code.gitea.io/gitea/modules/test" | ||
"code.gitea.io/gitea/tests" | ||
|
||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
func TestAdminConfig(t *testing.T) { | ||
defer tests.PrepareTestEnv(t)() | ||
|
||
session := loginUser(t, "user1") | ||
req := NewRequest(t, "GET", "/admin/config") | ||
resp := session.MakeRequest(t, req, http.StatusOK) | ||
assert.True(t, test.IsNormalPageCompleted(resp.Body.String())) | ||
} |