code.gitea.io/gitea@v1.19.3/modules/charset/breakwriter_test.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package charset 5 6 import ( 7 "strings" 8 "testing" 9 ) 10 11 func TestBreakWriter_Write(t *testing.T) { 12 tests := []struct { 13 name string 14 kase string 15 expect string 16 wantErr bool 17 }{ 18 { 19 name: "noline", 20 kase: "abcdefghijklmnopqrstuvwxyz", 21 expect: "abcdefghijklmnopqrstuvwxyz", 22 }, 23 { 24 name: "endline", 25 kase: "abcdefghijklmnopqrstuvwxyz\n", 26 expect: "abcdefghijklmnopqrstuvwxyz<br>", 27 }, 28 { 29 name: "startline", 30 kase: "\nabcdefghijklmnopqrstuvwxyz", 31 expect: "<br>abcdefghijklmnopqrstuvwxyz", 32 }, 33 { 34 name: "onlyline", 35 kase: "\n\n\n", 36 expect: "<br><br><br>", 37 }, 38 { 39 name: "empty", 40 kase: "", 41 expect: "", 42 }, 43 { 44 name: "midline", 45 kase: "\nabc\ndefghijkl\nmnopqrstuvwxy\nz", 46 expect: "<br>abc<br>defghijkl<br>mnopqrstuvwxy<br>z", 47 }, 48 } 49 for _, tt := range tests { 50 t.Run(tt.name, func(t *testing.T) { 51 buf := &strings.Builder{} 52 b := &BreakWriter{ 53 Writer: buf, 54 } 55 n, err := b.Write([]byte(tt.kase)) 56 if (err != nil) != tt.wantErr { 57 t.Errorf("BreakWriter.Write() error = %v, wantErr %v", err, tt.wantErr) 58 return 59 } 60 if n != len(tt.kase) { 61 t.Errorf("BreakWriter.Write() = %v, want %v", n, len(tt.kase)) 62 } 63 if buf.String() != tt.expect { 64 t.Errorf("BreakWriter.Write() wrote %q, want %v", buf.String(), tt.expect) 65 } 66 }) 67 } 68 }