aboutsummaryrefslogtreecommitdiffstats
path: root/routers/install
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-05-23 09:29:15 +0800
committerGitHub <noreply@github.com>2023-05-23 09:29:15 +0800
commitabcf5a7b5e2c3df951b8048317a99a89b040b489 (patch)
tree46f089aec1c83dfa45e7e9ff18cbe4e508306cbb /routers/install
parent5c0745c0349f0709d0fc36fd8a97dcab86bce28a (diff)
downloadgitea-abcf5a7b5e2c3df951b8048317a99a89b040b489.tar.gz
gitea-abcf5a7b5e2c3df951b8048317a99a89b040b489.zip
Fix install page context, make the install page tests really test (#24858)
Fix #24856 Rename "context.contextKey" to "context.WebContextKey", this context is for web context only. But the Context itself is not renamed, otherwise it would cause a lot of changes (if we really want to rename it, there could be a separate PR). The old test code doesn't really test, the "install page" gets broken not only one time, so use new test code to make sure the "install page" could work.
Diffstat (limited to 'routers/install')
-rw-r--r--routers/install/install.go3
-rw-r--r--routers/install/routes.go3
-rw-r--r--routers/install/routes_test.go41
3 files changed, 32 insertions, 15 deletions
diff --git a/routers/install/install.go b/routers/install/install.go
index 89b91a5a48..4635cd7cb6 100644
--- a/routers/install/install.go
+++ b/routers/install/install.go
@@ -59,7 +59,7 @@ func Contexter() func(next http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) {
base, baseCleanUp := context.NewBaseContext(resp, req)
- ctx := context.Context{
+ ctx := &context.Context{
Base: base,
Flash: &middleware.Flash{},
Render: rnd,
@@ -67,6 +67,7 @@ func Contexter() func(next http.Handler) http.Handler {
}
defer baseCleanUp()
+ ctx.AppendContextValue(context.WebContextKey, ctx)
ctx.Data.MergeFrom(middleware.CommonTemplateContextData())
ctx.Data.MergeFrom(middleware.ContextData{
"locale": ctx.Locale,
diff --git a/routers/install/routes.go b/routers/install/routes.go
index 52c07cfa26..f09a22b1e6 100644
--- a/routers/install/routes.go
+++ b/routers/install/routes.go
@@ -4,7 +4,6 @@
package install
import (
- goctx "context"
"fmt"
"html"
"net/http"
@@ -18,7 +17,7 @@ import (
)
// Routes registers the installation routes
-func Routes(ctx goctx.Context) *web.Route {
+func Routes() *web.Route {
base := web.NewRoute()
base.Use(common.ProtocolMiddlewares()...)
base.RouteMethods("/assets/*", "GET, HEAD", public.AssetsHandlerFunc("/assets/"))
diff --git a/routers/install/routes_test.go b/routers/install/routes_test.go
index e3d2a42467..fcbd052977 100644
--- a/routers/install/routes_test.go
+++ b/routers/install/routes_test.go
@@ -1,24 +1,41 @@
-// Copyright 2021 The Gitea Authors. All rights reserved.
+// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package install
import (
- "context"
+ "net/http/httptest"
+ "path/filepath"
"testing"
+ "code.gitea.io/gitea/models/unittest"
+
"github.com/stretchr/testify/assert"
)
func TestRoutes(t *testing.T) {
- // TODO: this test seems not really testing the handlers
- ctx, cancel := context.WithCancel(context.Background())
- defer cancel()
- base := Routes(ctx)
- assert.NotNil(t, base)
- r := base.R.Routes()[1]
- routes := r.SubRoutes.Routes()[0]
- assert.EqualValues(t, "/", routes.Pattern)
- assert.Nil(t, routes.SubRoutes)
- assert.Len(t, routes.Handlers, 2)
+ r := Routes()
+ assert.NotNil(t, r)
+
+ w := httptest.NewRecorder()
+ req := httptest.NewRequest("GET", "/", nil)
+ r.ServeHTTP(w, req)
+ assert.EqualValues(t, 200, w.Code)
+ assert.Contains(t, w.Body.String(), `class="page-content install"`)
+
+ w = httptest.NewRecorder()
+ req = httptest.NewRequest("GET", "/no-such", nil)
+ r.ServeHTTP(w, req)
+ assert.EqualValues(t, 404, w.Code)
+
+ w = httptest.NewRecorder()
+ req = httptest.NewRequest("GET", "/assets/img/gitea.svg", nil)
+ r.ServeHTTP(w, req)
+ assert.EqualValues(t, 200, w.Code)
+}
+
+func TestMain(m *testing.M) {
+ unittest.MainTest(m, &unittest.TestOptions{
+ GiteaRootPath: filepath.Join("..", ".."),
+ })
}