More test coverage
Some checks failed
timw4mail/gilo/pipeline/head There was a failure building this commit

This commit is contained in:
Timothy Warren 2021-04-01 18:51:52 -04:00
parent 1c424fad74
commit 5cb2047762
3 changed files with 56 additions and 22 deletions

View File

@ -75,6 +75,10 @@ func (e *editor) ProcessKeypress() bool {
return false
case key.Enter:
case key.Backspace, key.Ctrl('h'):
case key.Esc:
// Modifier keys that return ANSI escape sequences
str := parseEscapeSequence()

View File

@ -10,24 +10,52 @@ func TestNew(t *testing.T) {
}
}
//type moveCursor struct {
// key string
// editor *editor
//}
//
//var cursorTests = []moveCursor{
// {"\x1b", New()},
//}
//
//func TestMoveCursor(t *testing.T) {
// for _, test := range cursorTests {
// e := New()
// e.moveCursor(test.key)
// want := test.editor
// got := e
//
// if got != want {
// t.Errorf("Output %v not equal to expected %v for input %q", got, want, test.key)
// }
// }
//}
type moveCursor struct {
keys []string
withFile bool
cursor *point
}
var cursorTests = []moveCursor{
{[]string{"\x1b"}, false, &point{0,0}},
{[]string{keyRight}, true, &point{1,0}},
{[]string{keyEnd}, true, &point{14, 0}},
{[]string{keyEnd, keyHome}, true, &point{0, 0}},
{[]string{keyRight, keyLeft}, true, &point{0, 0}},
{[]string{keyDown, keyUp}, true, &point{0, 0}},
{[]string{keyPageUp}, true, &point{0, 0}},
}
func TestMoveCursor(t *testing.T) {
for _, test := range cursorTests {
e := New()
if test.withFile {
e.Open("editor.go")
}
for _, key := range test.keys {
e.moveCursor(key)
}
want := test.cursor
got := e.cursor
if got.x != want.x || got.y != want.y {
t.Errorf("Output %v not equal to expected %v for input %q", got, want, test.keys)
}
}
}
func TestInsertChar(t *testing.T) {
e := New()
e.insertChar('q')
if e.document.rowCount() != 1 {
t.Errorf("A row was not created when the character was inserted")
}
row := e.document.rows[0]
if row.size() != 1 {
t.Errorf("Failed to add character to row. Row: %v", row)
}
}

View File

@ -5,7 +5,9 @@ package key
// ----------------------------------------------------------------------------
const (
Esc = '\x1b'
Backspace = 0x7f
Esc = 0x1b
Enter = '\r'
)
// Is this an ASCII character?