119 lines
3.2 KiB
Plaintext
119 lines
3.2 KiB
Plaintext
== Summary of tests for the text editor
|
|
|
|
This doesn't include all tests. Intended to be the "timeless core" of a text
|
|
editor widget that shouldn't change across forks.
|
|
|
|
# basic
|
|
initial state
|
|
draw text
|
|
draw wrapping text
|
|
draw word wrapping text
|
|
draw text wrapping within word
|
|
draw wrapping text containing non ascii
|
|
|
|
# mouse
|
|
click moves cursor
|
|
click to left of line
|
|
click takes margins into account
|
|
click on empty line
|
|
click on wrapping line
|
|
click on wrapping line takes margins into account
|
|
click on wrapping line
|
|
click on wrapping line rendered from partway at top of screen
|
|
click past end of wrapping line
|
|
click past end of wrapping line containing non ascii
|
|
click past end of word wrapping line
|
|
click below final line does nothing
|
|
|
|
# cursor movement
|
|
move left
|
|
move left to previous line
|
|
move right
|
|
move right to next line
|
|
|
|
move to start of word
|
|
move to start of previous word
|
|
move to start of word on previous line
|
|
move past end of word
|
|
move past end of word on next line
|
|
skip to previous word
|
|
skip past tab to previous word
|
|
skip multiple spaces to previous word
|
|
skip to next word
|
|
skip past tab to next word
|
|
skip multiple spaces to next word
|
|
|
|
# mutating text
|
|
insert first character
|
|
edit wrapping text
|
|
insert newline
|
|
insert newline at start of line
|
|
insert from clipboard
|
|
backspace from start of final line
|
|
backspace past line boundary
|
|
backspace over selection
|
|
backspace over selection reverse
|
|
backspace over multiple lines
|
|
backspace to end of line
|
|
backspace to start of line
|
|
|
|
# scroll
|
|
pagedown
|
|
pagedown often shows start of wrapping line
|
|
pagedown can start from middle of long wrapping line
|
|
pagedown never moves up
|
|
down arrow moves cursor
|
|
down arrow scrolls down by one line
|
|
down arrow scrolls down by one screen line
|
|
down arrow scrolls down by one screen line after splitting within word
|
|
pagedown followed by down arrow does not scroll screen up
|
|
up arrow moves cursor
|
|
up arrow scrolls up by one line
|
|
up arrow scrolls up by one screen line
|
|
up arrow scrolls up to final screen line
|
|
up arrow scrolls up to empty line
|
|
pageup
|
|
pageup scrolls up by screen line
|
|
pageup scrolls up from middle screen line
|
|
enter on bottom line scrolls down
|
|
enter on final line avoids scrolling down when not at bottom
|
|
inserting text on final line avoids scrolling down when not at bottom
|
|
typing on bottom line scrolls down
|
|
left arrow scrolls up in wrapped line
|
|
right arrow scrolls down in wrapped line
|
|
home scrolls up in wrapped line
|
|
end scrolls down in wrapped line
|
|
position cursor on recently edited wrapping line
|
|
backspace can scroll up
|
|
backspace can scroll up screen line
|
|
|
|
# selection
|
|
select text using shift and cursor movement operations
|
|
select text using mouse
|
|
clicking to left of a line = start of line
|
|
clicking to right of a line = end of line
|
|
clicking above topmost line = top of screen
|
|
clicking below bottom-most line = bottom of screen
|
|
select text using mouse and shift
|
|
select text repeatedly using mouse and shift
|
|
cursor movement without shift resets selection
|
|
mouse click without shift resets selection
|
|
edit deletes selection
|
|
edit with shift key deletes selection
|
|
deleting selection may scroll
|
|
copy does not reset selection
|
|
cut
|
|
cut without selection
|
|
paste replaces selection
|
|
|
|
# search
|
|
search
|
|
search upwards
|
|
search wrap
|
|
search wrap upwards
|
|
|
|
# undo
|
|
undo insert text
|
|
undo delete text
|
|
undo restores selection
|