go-prompt/output_vt100_test.go

82 lines
1.3 KiB
Go
Raw Normal View History

2018-02-15 09:15:32 +00:00
package prompt
import (
"bytes"
"testing"
)
2018-06-20 16:31:29 +00:00
func TestVT100WriterWrite(t *testing.T) {
2018-02-15 09:15:32 +00:00
scenarioTable := []struct {
input []byte
expected []byte
}{
{
input: []byte{0x1b},
expected: []byte{'?'},
},
{
input: []byte{'a'},
expected: []byte{'a'},
},
}
for _, s := range scenarioTable {
2018-06-20 16:31:29 +00:00
pw := &VT100Writer{}
2018-02-15 09:15:32 +00:00
pw.Write(s.input)
if !bytes.Equal(pw.buffer, s.expected) {
t.Errorf("Should be %+#v, but got %+#v", pw.buffer, s.expected)
}
}
}
2018-06-20 16:31:29 +00:00
func TestVT100WriterWriteStr(t *testing.T) {
2018-02-15 09:15:32 +00:00
scenarioTable := []struct {
input string
expected []byte
}{
{
input: "\x1b",
expected: []byte{'?'},
},
{
input: "a",
expected: []byte{'a'},
},
}
for _, s := range scenarioTable {
2018-06-20 16:31:29 +00:00
pw := &VT100Writer{}
2018-02-15 09:15:32 +00:00
pw.WriteStr(s.input)
if !bytes.Equal(pw.buffer, s.expected) {
t.Errorf("Should be %+#v, but got %+#v", pw.buffer, s.expected)
}
}
}
2018-06-20 16:31:29 +00:00
func TestVT100WriterWriteRawStr(t *testing.T) {
2018-02-15 09:15:32 +00:00
scenarioTable := []struct {
input string
expected []byte
}{
{
input: "\x1b",
expected: []byte{0x1b},
},
{
input: "a",
expected: []byte{'a'},
},
}
for _, s := range scenarioTable {
2018-06-20 16:31:29 +00:00
pw := &VT100Writer{}
2018-02-15 09:15:32 +00:00
pw.WriteRawStr(s.input)
if !bytes.Equal(pw.buffer, s.expected) {
t.Errorf("Should be %+#v, but got %+#v", pw.buffer, s.expected)
}
}
}