summaryrefslogtreecommitdiffstats
path: root/modules/charset/breakwriter_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/charset/breakwriter_test.go')
-rw-r--r--modules/charset/breakwriter_test.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/modules/charset/breakwriter_test.go b/modules/charset/breakwriter_test.go
new file mode 100644
index 00000000..5eeeedc4
--- /dev/null
+++ b/modules/charset/breakwriter_test.go
@@ -0,0 +1,68 @@
+// Copyright 2022 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package charset
+
+import (
+ "strings"
+ "testing"
+)
+
+func TestBreakWriter_Write(t *testing.T) {
+ tests := []struct {
+ name string
+ kase string
+ expect string
+ wantErr bool
+ }{
+ {
+ name: "noline",
+ kase: "abcdefghijklmnopqrstuvwxyz",
+ expect: "abcdefghijklmnopqrstuvwxyz",
+ },
+ {
+ name: "endline",
+ kase: "abcdefghijklmnopqrstuvwxyz\n",
+ expect: "abcdefghijklmnopqrstuvwxyz<br>",
+ },
+ {
+ name: "startline",
+ kase: "\nabcdefghijklmnopqrstuvwxyz",
+ expect: "<br>abcdefghijklmnopqrstuvwxyz",
+ },
+ {
+ name: "onlyline",
+ kase: "\n\n\n",
+ expect: "<br><br><br>",
+ },
+ {
+ name: "empty",
+ kase: "",
+ expect: "",
+ },
+ {
+ name: "midline",
+ kase: "\nabc\ndefghijkl\nmnopqrstuvwxy\nz",
+ expect: "<br>abc<br>defghijkl<br>mnopqrstuvwxy<br>z",
+ },
+ }
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ buf := &strings.Builder{}
+ b := &BreakWriter{
+ Writer: buf,
+ }
+ n, err := b.Write([]byte(tt.kase))
+ if (err != nil) != tt.wantErr {
+ t.Errorf("BreakWriter.Write() error = %v, wantErr %v", err, tt.wantErr)
+ return
+ }
+ if n != len(tt.kase) {
+ t.Errorf("BreakWriter.Write() = %v, want %v", n, len(tt.kase))
+ }
+ if buf.String() != tt.expect {
+ t.Errorf("BreakWriter.Write() wrote %q, want %v", buf.String(), tt.expect)
+ }
+ })
+ }
+}