diff options
Diffstat (limited to 'routers/utils')
-rw-r--r-- | routers/utils/utils.go | 14 | ||||
-rw-r--r-- | routers/utils/utils_test.go | 40 |
2 files changed, 54 insertions, 0 deletions
diff --git a/routers/utils/utils.go b/routers/utils/utils.go new file mode 100644 index 0000000..3035073 --- /dev/null +++ b/routers/utils/utils.go @@ -0,0 +1,14 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package utils + +import ( + "html" + "strings" +) + +// SanitizeFlashErrorString will sanitize a flash error string +func SanitizeFlashErrorString(x string) string { + return strings.ReplaceAll(html.EscapeString(x), "\n", "<br>") +} diff --git a/routers/utils/utils_test.go b/routers/utils/utils_test.go new file mode 100644 index 0000000..6e7f3c3 --- /dev/null +++ b/routers/utils/utils_test.go @@ -0,0 +1,40 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package utils + +import ( + "testing" +) + +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) + } + }) + } +} |