text_tests 3.2 KB

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