column_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package colwriter
  2. import (
  3. "bytes"
  4. "testing"
  5. )
  6. var src = `
  7. .git
  8. .gitignore
  9. .godir
  10. Procfile:
  11. README.md
  12. api.go
  13. apps.go
  14. auth.go
  15. darwin.go
  16. data.go
  17. dyno.go:
  18. env.go
  19. git.go
  20. help.go
  21. hkdist
  22. linux.go
  23. ls.go
  24. main.go
  25. plugin.go
  26. run.go
  27. scale.go
  28. ssh.go
  29. tail.go
  30. term
  31. unix.go
  32. update.go
  33. version.go
  34. windows.go
  35. `[1:]
  36. var tests = []struct {
  37. wid int
  38. flag uint
  39. src string
  40. want string
  41. }{
  42. {80, 0, "", ""},
  43. {80, 0, src, `
  44. .git README.md darwin.go git.go ls.go scale.go unix.go
  45. .gitignore api.go data.go help.go main.go ssh.go update.go
  46. .godir apps.go dyno.go: hkdist plugin.go tail.go version.go
  47. Procfile: auth.go env.go linux.go run.go term windows.go
  48. `[1:]},
  49. {80, BreakOnColon, src, `
  50. .git .gitignore .godir
  51. Procfile:
  52. README.md api.go apps.go auth.go darwin.go data.go
  53. dyno.go:
  54. env.go hkdist main.go scale.go term version.go
  55. git.go linux.go plugin.go ssh.go unix.go windows.go
  56. help.go ls.go run.go tail.go update.go
  57. `[1:]},
  58. {20, 0, `
  59. Hello
  60. Γειά σου
  61. 안녕
  62. 今日は
  63. `[1:], `
  64. Hello 안녕
  65. Γειά σου 今日は
  66. `[1:]},
  67. }
  68. func TestWriter(t *testing.T) {
  69. for _, test := range tests {
  70. b := new(bytes.Buffer)
  71. w := NewWriter(b, test.wid, test.flag)
  72. if _, err := w.Write([]byte(test.src)); err != nil {
  73. t.Error(err)
  74. }
  75. if err := w.Flush(); err != nil {
  76. t.Error(err)
  77. }
  78. if g := b.String(); test.want != g {
  79. t.Log("\n" + test.want)
  80. t.Log("\n" + g)
  81. t.Errorf("%q != %q", test.want, g)
  82. }
  83. }
  84. }