elvish/pkg/edit/buf_to_html_test.go
2019-12-23 20:00:59 +00:00

50 lines
1.0 KiB
Go

package edit
import (
"testing"
"github.com/elves/elvish/pkg/cli/term"
"github.com/elves/elvish/pkg/tt"
)
func TestBufToHTML(t *testing.T) {
tt.Test(t, tt.Fn("bufToHTML", bufToHTML), tt.Table{
// Just plain text.
tt.Args(
bb().Write("abc").Buffer(),
).Rets(
`abc` + "\n",
),
// Just styled text.
tt.Args(
bb().WriteStringSGR("abc", "31").Buffer(),
).Rets(
`<span class="sgr-31">abc</span>` + "\n",
),
// Mixing plain and styled texts.
tt.Args(
bb().
WriteStringSGR("abc", "31").
Write(" def ").
WriteStringSGR("xyz", "1").
Buffer(),
).Rets(
`<span class="sgr-31">abc</span> def <span class="sgr-1">xyz</span>` + "\n",
),
// Multiple lines.
tt.Args(
bb().
WriteStringSGR("abc", "31").
Newline().Write("def").
Newline().WriteStringSGR("xyz", "1").
Buffer(),
).Rets(
`<span class="sgr-31">abc</span>` + "\n" +
`def` + "\n" +
`<span class="sgr-1">xyz</span>` + "\n",
),
})
}
func bb() *term.BufferBuilder { return term.NewBufferBuilder(20) }