package editor import "testing" 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) } } }