Merge lines.love
[view.love.git] / text_tests
blob2a3113143bfd1a2ac4bdcfd0e4caa1e2cb9ea4a8
1 == Summary of tests for the text editor
3 This doesn't include all tests. Intended to be the "timeless core" of a text
4 editor widget that shouldn't change across forks.
6 # basic
7 initial state
8 draw text
9 draw wrapping text
10 draw word wrapping text
11 draw text wrapping within word
12 draw wrapping text containing non ascii
14 # mouse
15 click moves cursor
16 click to left of line
17 click takes margins into account
18 click on empty line
19 click on wrapping line
20 click on wrapping line takes margins into account
21 click on wrapping line
22 click on wrapping line rendered from partway at top of screen
23 click past end of wrapping line
24 click past end of wrapping line containing non ascii
25 click past end of word wrapping line
26 click below final line does nothing
28 # cursor movement
29 move left
30   move left to previous line
31 move right
32   move right to next line
34 move to start of word
35   move to start of previous word
36   move to start of word on previous line
37 move past end of word
38   move past end of word on next line
39 skip to previous word
40   skip past tab to previous word
41   skip multiple spaces to previous word
42 skip to next word
43   skip past tab to next word
44   skip multiple spaces to next word
46 # mutating text
47 insert first character
48 edit wrapping text
49 insert newline
50 insert newline at start of line
51 insert from clipboard
52 backspace from start of final line
53 backspace past line boundary
54 backspace over selection
55 backspace over selection reverse
56 backspace over multiple lines
57 backspace to end of line
58 backspace to start of line
60 # scroll
61 pagedown
62 pagedown often shows start of wrapping line
63 pagedown can start from middle of long wrapping line
64 pagedown never moves up
65 down arrow moves cursor
66 down arrow scrolls down by one line
67 down arrow scrolls down by one screen line
68 down arrow scrolls down by one screen line after splitting within word
69 pagedown followed by down arrow does not scroll screen up
70 up arrow moves cursor
71 up arrow scrolls up by one line
72 up arrow scrolls up by one screen line
73 up arrow scrolls up to final screen line
74 up arrow scrolls up to empty line
75 pageup
76 pageup scrolls up by screen line
77 pageup scrolls up from middle screen line
78 enter on bottom line scrolls down
79 enter on final line avoids scrolling down when not at bottom
80 inserting text on final line avoids scrolling down when not at bottom
81 typing on bottom line scrolls down
82 left arrow scrolls up in wrapped line
83 right arrow scrolls down in wrapped line
84 home scrolls up in wrapped line
85 end scrolls down in wrapped line
86 position cursor on recently edited wrapping line
87 backspace can scroll up
88 backspace can scroll up screen line
90 # selection
91 select text using shift and cursor movement operations
92 select text using mouse
93   clicking to left of a line = start of line
94   clicking to right of a line = end of line
95   clicking above topmost line = top of screen
96   clicking below bottom-most line = bottom of screen
97 select text using mouse and shift
98 select text repeatedly using mouse and shift
99 cursor movement without shift resets selection
100 mouse click without shift resets selection
101 edit deletes selection
102 edit with shift key deletes selection
103 deleting selection may scroll
104 copy does not reset selection
106 cut without selection
107 paste replaces selection
109 # search
110 search
111 search upwards
112 search wrap
113 search wrap upwards
115 # undo
116 undo insert text
117 undo delete text
118 undo restores selection