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.
|
|
|
|
package colwriter
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var src = `
|
|
|
|
|
.git
|
|
|
|
|
.gitignore
|
|
|
|
|
.godir
|
|
|
|
|
Procfile:
|
|
|
|
|
README.md
|
|
|
|
|
api.go
|
|
|
|
|
apps.go
|
|
|
|
|
auth.go
|
|
|
|
|
darwin.go
|
|
|
|
|
data.go
|
|
|
|
|
dyno.go:
|
|
|
|
|
env.go
|
|
|
|
|
git.go
|
|
|
|
|
help.go
|
|
|
|
|
hkdist
|
|
|
|
|
linux.go
|
|
|
|
|
ls.go
|
|
|
|
|
main.go
|
|
|
|
|
plugin.go
|
|
|
|
|
run.go
|
|
|
|
|
scale.go
|
|
|
|
|
ssh.go
|
|
|
|
|
tail.go
|
|
|
|
|
term
|
|
|
|
|
unix.go
|
|
|
|
|
update.go
|
|
|
|
|
version.go
|
|
|
|
|
windows.go
|
|
|
|
|
`[1:]
|
|
|
|
|
|
|
|
|
|
var tests = []struct {
|
|
|
|
|
wid int
|
|
|
|
|
flag uint
|
|
|
|
|
src string
|
|
|
|
|
want string
|
|
|
|
|
}{
|
|
|
|
|
{80, 0, "", ""},
|
|
|
|
|
{80, 0, src, `
|
|
|
|
|
.git README.md darwin.go git.go ls.go scale.go unix.go
|
|
|
|
|
.gitignore api.go data.go help.go main.go ssh.go update.go
|
|
|
|
|
.godir apps.go dyno.go: hkdist plugin.go tail.go version.go
|
|
|
|
|
Procfile: auth.go env.go linux.go run.go term windows.go
|
|
|
|
|
`[1:]},
|
|
|
|
|
{80, BreakOnColon, src, `
|
|
|
|
|
.git .gitignore .godir
|
|
|
|
|
|
|
|
|
|
Procfile:
|
|
|
|
|
README.md api.go apps.go auth.go darwin.go data.go
|
|
|
|
|
|
|
|
|
|
dyno.go:
|
|
|
|
|
env.go hkdist main.go scale.go term version.go
|
|
|
|
|
git.go linux.go plugin.go ssh.go unix.go windows.go
|
|
|
|
|
help.go ls.go run.go tail.go update.go
|
|
|
|
|
`[1:]},
|
|
|
|
|
{20, 0, `
|
|
|
|
|
Hello
|
|
|
|
|
Γειά σου
|
|
|
|
|
안녕
|
|
|
|
|
今日は
|
|
|
|
|
`[1:], `
|
|
|
|
|
Hello 안녕
|
|
|
|
|
Γειά σου 今日は
|
|
|
|
|
`[1:]},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestWriter(t *testing.T) {
|
|
|
|
|
for _, test := range tests {
|
|
|
|
|
b := new(bytes.Buffer)
|
|
|
|
|
w := NewWriter(b, test.wid, test.flag)
|
|
|
|
|
if _, err := w.Write([]byte(test.src)); err != nil {
|
|
|
|
|
t.Error(err)
|
|
|
|
|
}
|
|
|
|
|
if err := w.Flush(); err != nil {
|
|
|
|
|
t.Error(err)
|
|
|
|
|
}
|
|
|
|
|
if g := b.String(); test.want != g {
|
|
|
|
|
t.Log("\n" + test.want)
|
|
|
|
|
t.Log("\n" + g)
|
|
|
|
|
t.Errorf("%q != %q", test.want, g)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|