Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.1 KiB
54 lines
1.1 KiB
// Copyright 2020 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package eventsource |
|
|
|
import ( |
|
"bytes" |
|
"testing" |
|
) |
|
|
|
func Test_wrapNewlines(t *testing.T) { |
|
tests := []struct { |
|
name string |
|
prefix string |
|
value string |
|
output string |
|
}{ |
|
{ |
|
"check no new lines", |
|
"prefix: ", |
|
"value", |
|
"prefix: value\n", |
|
}, |
|
{ |
|
"check simple newline", |
|
"prefix: ", |
|
"value1\nvalue2", |
|
"prefix: value1\nprefix: value2\n", |
|
}, |
|
{ |
|
"check pathological newlines", |
|
"p: ", |
|
"\n1\n\n2\n3\n", |
|
"p: \np: 1\np: \np: 2\np: 3\np: \n", |
|
}, |
|
} |
|
for _, tt := range tests { |
|
t.Run(tt.name, func(t *testing.T) { |
|
w := &bytes.Buffer{} |
|
gotSum, err := wrapNewlines(w, []byte(tt.prefix), []byte(tt.value)) |
|
if err != nil { |
|
t.Errorf("wrapNewlines() error = %v", err) |
|
return |
|
} |
|
if gotSum != int64(len(tt.output)) { |
|
t.Errorf("wrapNewlines() = %v, want %v", gotSum, int64(len(tt.output))) |
|
} |
|
if gotW := w.String(); gotW != tt.output { |
|
t.Errorf("wrapNewlines() = %v, want %v", gotW, tt.output) |
|
} |
|
}) |
|
} |
|
}
|
|
|