91 lines
1.5 KiB
Go
91 lines
1.5 KiB
Go
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)
|
||
}
|
||
}
|
||
}
|