test: undo moving point

[?]
Jun 15, 2022, 5:43 AM
7DYUAOI6WHAP75T2KEGN6CPSASO7B6L6BDE6FQ5ELND7T6X3WO4AC

Dependencies

  • [2] T7SJSJIH test: undo naming a point
  • [3] GHZMRR33 some more manual tests related to drawings
  • [4] K464QQR4 more defensive resize handling
  • [*] K2X6G75Z start writing some tests for drawings
  • [*] BJ5X5O4A let's prevent the text cursor from ever getting on a drawing

Change contents

  • edit in drawing_tests.lua at line 594
    [2.2163]
    function test_undo_move_point()
    io.write('\ntest_undo_move_point')
    -- create a drawing with a line
    Filename = 'foo'
    App.screen.init{width=Margin_left+300, height=300}
    Lines = load_array{'```lines', '```', ''}
    Line_width = 256 -- drawing coordinates 1:1 with pixels
    Current_drawing_mode = 'line'
    App.draw()
    App.run_after_mouse_press(Margin_left+5, Margin_top+Drawing_padding_top+6, 1)
    App.run_after_mouse_release(Margin_left+35, Margin_top+Drawing_padding_top+36, 1)
    local drawing = Lines[1]
    check_eq(#drawing.shapes, 1, 'F - test_undo_move_point/baseline/#shapes')
    check_eq(#drawing.points, 2, 'F - test_undo_move_point/baseline/#points')
    check_eq(drawing.shapes[1].mode, 'line', 'F - test_undo_move_point/baseline/shape:1')
    local p1 = drawing.points[drawing.shapes[1].p1]
    local p2 = drawing.points[drawing.shapes[1].p2]
    check_eq(p1.x, 5, 'F - test_undo_move_point/baseline/p1:x')
    check_eq(p1.y, 6, 'F - test_undo_move_point/baseline/p1:y')
    check_eq(p2.x, 35, 'F - test_undo_move_point/baseline/p2:x')
    check_eq(p2.y, 36, 'F - test_undo_move_point/baseline/p2:y')
    check_nil(p2.name, 'F - test_undo_move_point/baseline/p2:name')
    -- move p2
    App.run_after_keychord('C-u')
    App.mouse_move(Margin_left+26, Margin_top+Drawing_padding_top+44)
    App.update(0.05)
    local p2 = drawing.points[drawing.shapes[1].p2]
    check_eq(p2.x, 26, 'F - test_undo_move_point/x')
    check_eq(p2.y, 44, 'F - test_undo_move_point/y')
    -- exit 'move' mode
    App.run_after_mouse_click(Margin_left+26, Margin_top+Drawing_padding_top+44, 1)
    check_eq(Next_history, 4, 'F - test_undo_move_point/next_history')
    -- undo
    App.run_after_keychord('C-z')
    App.run_after_keychord('C-z') -- bug: need to undo twice
    local drawing = Lines[1]
    local p2 = drawing.points[drawing.shapes[1].p2]
    check_eq(Next_history, 2, 'F - test_undo_move_point/next_history')
    check_eq(p2.x, 35, 'F - test_undo_move_point/x')
    check_eq(p2.y, 36, 'F - test_undo_move_point/y')
    -- change is saved
    Lines = load_from_disk(Filename)
    local p2 = Lines[1].points[drawing.shapes[1].p2]
    check_eq(p2.x, 35, 'F - test_undo_move_point/save/x')
    check_eq(p2.y, 36, 'F - test_undo_move_point/save/y')
    end
  • edit in Manual_tests.md at line 17
    [3.47][3.47:63]()
    moving points