summaryrefslogtreecommitdiffstats
path: root/pkg/utils/lines_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/utils/lines_test.go')
-rw-r--r--pkg/utils/lines_test.go94
1 files changed, 94 insertions, 0 deletions
diff --git a/pkg/utils/lines_test.go b/pkg/utils/lines_test.go
new file mode 100644
index 000000000..6069b8f93
--- /dev/null
+++ b/pkg/utils/lines_test.go
@@ -0,0 +1,94 @@
+package utils
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+// TestSplitLines is a function.
+func TestSplitLines(t *testing.T) {
+ type scenario struct {
+ multilineString string
+ expected []string
+ }
+
+ scenarios := []scenario{
+ {
+ "",
+ []string{},
+ },
+ {
+ "\n",
+ []string{},
+ },
+ {
+ "hello world !\nhello universe !\n",
+ []string{
+ "hello world !",
+ "hello universe !",
+ },
+ },
+ }
+
+ for _, s := range scenarios {
+ assert.EqualValues(t, s.expected, SplitLines(s.multilineString))
+ }
+}
+
+// TestTrimTrailingNewline is a function.
+func TestTrimTrailingNewline(t *testing.T) {
+ type scenario struct {
+ str string
+ expected string
+ }
+
+ scenarios := []scenario{
+ {
+ "hello world !\n",
+ "hello world !",
+ },
+ {
+ "hello world !",
+ "hello world !",
+ },
+ }
+
+ for _, s := range scenarios {
+ assert.EqualValues(t, s.expected, TrimTrailingNewline(s.str))
+ }
+}
+
+// TestNormalizeLinefeeds is a function.
+func TestNormalizeLinefeeds(t *testing.T) {
+ type scenario struct {
+ byteArray []byte
+ expected []byte
+ }
+ var scenarios = []scenario{
+ {
+ // \r\n
+ []byte{97, 115, 100, 102, 13, 10},
+ []byte{97, 115, 100, 102, 10},
+ },
+ {
+ // bash\r\nblah
+ []byte{97, 115, 100, 102, 13, 10, 97, 115, 100, 102},
+ []byte{97, 115, 100, 102, 10, 97, 115, 100, 102},
+ },
+ {
+ // \r
+ []byte{97, 115, 100, 102, 13},
+ []byte{97, 115, 100, 102},
+ },
+ {
+ // \n
+ []byte{97, 115, 100, 102, 10},
+ []byte{97, 115, 100, 102, 10},
+ },
+ }
+
+ for _, s := range scenarios {
+ assert.EqualValues(t, string(s.expected), NormalizeLinefeeds(string(s.byteArray)))
+ }
+}