* code.gitea.io/gitea/routers/utils coverage: 100.0% * code.gitea.io/gitea/routers/install 0% -> 5.0% * ConvertUtf8ToUtf8mb4: make sure DBType is mysqltags/v1.15.0-rc1
@@ -8,10 +8,16 @@ import ( | |||
"fmt" | |||
"code.gitea.io/gitea/modules/setting" | |||
"xorm.io/xorm/schemas" | |||
) | |||
// ConvertUtf8ToUtf8mb4 converts database and tables from utf8 to utf8mb4 if it's mysql and set ROW_FORMAT=dynamic | |||
func ConvertUtf8ToUtf8mb4() error { | |||
if x.Dialect().URI().DBType != schemas.MYSQL { | |||
return nil | |||
} | |||
_, err := x.Exec(fmt.Sprintf("ALTER DATABASE `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci", setting.Database.Name)) | |||
if err != nil { | |||
return err |
@@ -0,0 +1,20 @@ | |||
// Copyright 2021 The Gitea Authors. All rights reserved. | |||
// Use of this source code is governed by a MIT-style | |||
// license that can be found in the LICENSE file. | |||
package install | |||
import ( | |||
"testing" | |||
"github.com/stretchr/testify/assert" | |||
) | |||
func TestRoutes(t *testing.T) { | |||
routes := Routes() | |||
assert.NotNil(t, routes) | |||
assert.Len(t, routes.R.Routes(), 1) | |||
assert.EqualValues(t, "/", routes.R.Routes()[0].Pattern) | |||
assert.Nil(t, routes.R.Routes()[0].SubRoutes) | |||
assert.Len(t, routes.R.Routes()[0].Handlers, 2) | |||
} |
@@ -62,7 +62,41 @@ func TestIsExternalURL(t *testing.T) { | |||
"//try.gitea.io/test?param=false"), | |||
newTest(false, | |||
"/hey/hey/hey#3244"), | |||
newTest(true, | |||
"://missing protocol scheme"), | |||
} { | |||
assert.Equal(t, test.Expected, IsExternalURL(test.RawURL)) | |||
} | |||
} | |||
func TestSanitizeFlashErrorString(t *testing.T) { | |||
tests := []struct { | |||
name string | |||
arg string | |||
want string | |||
}{ | |||
{ | |||
name: "no error", | |||
arg: "", | |||
want: "", | |||
}, | |||
{ | |||
name: "normal error", | |||
arg: "can not open file: \"abc.exe\"", | |||
want: "can not open file: "abc.exe"", | |||
}, | |||
{ | |||
name: "line break error", | |||
arg: "some error:\n\nawesome!", | |||
want: "some error:<br><br>awesome!", | |||
}, | |||
} | |||
for _, tt := range tests { | |||
t.Run(tt.name, func(t *testing.T) { | |||
if got := SanitizeFlashErrorString(tt.arg); got != tt.want { | |||
t.Errorf("SanitizeFlashErrorString() = '%v', want '%v'", got, tt.want) | |||
} | |||
}) | |||
} | |||
} |