github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/strutil/chop_test.go (about)

     1  package strutil
     2  
     3  import (
     4  	"testing"
     5  
     6  	. "github.com/markusbkk/elvish/pkg/tt"
     7  )
     8  
     9  func TestChopLineEnding(t *testing.T) {
    10  	Test(t, Fn("ChopLineEnding", ChopLineEnding), Table{
    11  		Args("").Rets(""),
    12  		Args("text").Rets("text"),
    13  		Args("text\n").Rets("text"),
    14  		Args("text\r\n").Rets("text"),
    15  		// Only chop off one line ending
    16  		Args("text\n\n").Rets("text\n"),
    17  		// Preserve internal line endings
    18  		Args("text\ntext 2\n").Rets("text\ntext 2"),
    19  	})
    20  }
    21  
    22  func TestChopTerminator(t *testing.T) {
    23  	Test(t, Fn("ChopTerminator", ChopTerminator), Table{
    24  		Args("", byte('\x00')).Rets(""),
    25  		Args("foo", byte('\x00')).Rets("foo"),
    26  		Args("foo\x00", byte('\x00')).Rets("foo"),
    27  		Args("foo\x00\x00", byte('\x00')).Rets("foo\x00"),
    28  		Args("foo\x00bar\x00", byte('\x00')).Rets("foo\x00bar"),
    29  	})
    30  }