about summary refs log tree commit diff stats
path: root/text_tests
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2023-06-02 07:43:20 -0700
committerKartik K. Agaram <vc@akkartik.com>2023-06-02 07:45:30 -0700
commite0462ea2d866588522501875840af464b75b4ece (patch)
tree40578873432f08467273a414944e4117b69b014e /text_tests
parentcdef37c4191e48228d1ea83eb590e1f3109e3c8b (diff)
downloadlines.love-e0462ea2d866588522501875840af464b75b4ece.tar.gz
save the list of tests in repo
Diffstat (limited to 'text_tests')
-rw-r--r--text_tests113
1 files changed, 113 insertions, 0 deletions
diff --git a/text_tests b/text_tests
new file mode 100644
index 0000000..b14f634
--- /dev/null
+++ b/text_tests
@@ -0,0 +1,113 @@
+== Summary of tests for the text editor
+
+This doesn't include all tests and might not change between forks, but it's
+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
+
+# 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
+select text using mouse and shift
+select text repeatedly using mouse and shift
+cursor movement 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