summaryrefslogtreecommitdiffstats
path: root/routers/utils
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
commitdd136858f1ea40ad3c94191d647487fa4f31926c (patch)
tree58fec94a7b2a12510c9664b21793f1ed560c6518 /routers/utils
parentInitial commit. (diff)
downloadforgejo-upstream/9.0.0.tar.xz
forgejo-upstream/9.0.0.zip
Adding upstream version 9.0.0.HEADupstream/9.0.0upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'routers/utils')
-rw-r--r--routers/utils/utils.go14
-rw-r--r--routers/utils/utils_test.go40
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: &#34;abc.exe&#34;",
+ },
+ {
+ 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)
+ }
+ })
+ }
+}