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  }