about summary refs log tree commit diff stats
path: root/manual_tests
blob: 4fbe02d55f62f5a9fa94f8a1eb7efb15214240b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
-- static properties of the code
All strings are UTF-8. Bytes within them are not characters.
I try to label byte offsets as _offset, and character positions as _pos.
For example, string.sub should never use a _pos to substring, only an _offset.
Wish I had some static typing here. We're not going to try to write tests to catch issues like this.

-- manual tests
file load:
  cursor_line = 1
  first line is a drawing -> cursor_line = 2
click on text -> cursor moves
click on first character of text -> cursor on first character of text
click to right of text -> cursor past end of line
click to right of wrapped text -> cursor on final character of line
click on drawing -> cursor doesn't move
cursor past end of line -> renders
create drawing -> cursor bumps down below drawing
backspace
  cursor_pos == 0, previous line is a drawing -> delete drawing, cursor still visible at start of line
  cursor_pos == 0, previous line is text -> join lines, cursor still at same character

drawing
  draw a line, circle, rectangle, square, polygon
  select a point and move it
  select a point and name it

enter
  cursor_pos == 0 -> insert empty line above current line

scrolling:
  given moby dick, a file containing all text:
  page up moves top line on screen to bottom
  page down moves bottom line on screen to top
  cursor remains on screen
  cursor remains on text line
  'up' arrow with cursor at top of screen scrolls up one line (drawings still fully in or out)
    if cursor line wrapped before, it scrolls up by only one screen line
    if previous line (above top of screen) wrapped, it scrolls up by only one screen line
  'down' arrow with cursor at bottom of screen scrolls down one line (drawings still fully in or out)
    if cursor line wrapped before, it scrolls down by only one screen line

persistence:
  draw a line, circle, rectangle, square, polygon, quit, restart. All the shapes you drew should still be visible.
  select a point and name it, quit, restart. Name is still visible.

clipboard:
  cut/copy without making a selection

resize:
  create a file containing a long line of characters without spaces. try
  resizing the window vertically and horizontally, as far as possible.