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)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|