| package text |
| |
| import ( |
| "bytes" |
| "testing" |
| ) |
| |
| type T struct { |
| inp, exp, pre string |
| } |
| |
| var tests = []T{ |
| { |
| "The quick brown fox\njumps over the lazy\ndog.\nBut not quickly.\n", |
| "xxxThe quick brown fox\nxxxjumps over the lazy\nxxxdog.\nxxxBut not quickly.\n", |
| "xxx", |
| }, |
| { |
| "The quick brown fox\njumps over the lazy\ndog.\n\nBut not quickly.", |
| "xxxThe quick brown fox\nxxxjumps over the lazy\nxxxdog.\n\nxxxBut not quickly.", |
| "xxx", |
| }, |
| } |
| |
| func TestIndent(t *testing.T) { |
| for _, test := range tests { |
| got := Indent(test.inp, test.pre) |
| if got != test.exp { |
| t.Errorf("mismatch %q != %q", got, test.exp) |
| } |
| } |
| } |
| |
| type IndentWriterTest struct { |
| inp, exp string |
| pre []string |
| } |
| |
| var ts = []IndentWriterTest{ |
| { |
| ` |
| The quick brown fox |
| jumps over the lazy |
| dog. |
| But not quickly. |
| `[1:], |
| ` |
| xxxThe quick brown fox |
| xxxjumps over the lazy |
| xxxdog. |
| xxxBut not quickly. |
| `[1:], |
| []string{"xxx"}, |
| }, |
| { |
| ` |
| The quick brown fox |
| jumps over the lazy |
| dog. |
| But not quickly. |
| `[1:], |
| ` |
| xxaThe quick brown fox |
| xxxjumps over the lazy |
| xxxdog. |
| xxxBut not quickly. |
| `[1:], |
| []string{"xxa", "xxx"}, |
| }, |
| { |
| ` |
| The quick brown fox |
| jumps over the lazy |
| dog. |
| But not quickly. |
| `[1:], |
| ` |
| xxaThe quick brown fox |
| xxbjumps over the lazy |
| xxcdog. |
| xxxBut not quickly. |
| `[1:], |
| []string{"xxa", "xxb", "xxc", "xxx"}, |
| }, |
| { |
| ` |
| The quick brown fox |
| jumps over the lazy |
| dog. |
| |
| But not quickly.`[1:], |
| ` |
| xxaThe quick brown fox |
| xxxjumps over the lazy |
| xxxdog. |
| xxx |
| xxxBut not quickly.`[1:], |
| []string{"xxa", "xxx"}, |
| }, |
| } |
| |
| func TestIndentWriter(t *testing.T) { |
| for _, test := range ts { |
| b := new(bytes.Buffer) |
| pre := make([][]byte, len(test.pre)) |
| for i := range test.pre { |
| pre[i] = []byte(test.pre[i]) |
| } |
| w := NewIndentWriter(b, pre...) |
| if _, err := w.Write([]byte(test.inp)); err != nil { |
| t.Error(err) |
| } |
| if got := b.String(); got != test.exp { |
| t.Errorf("mismatch %q != %q", got, test.exp) |
| t.Log(got) |
| t.Log(test.exp) |
| } |
| } |
| } |