test: undo naming a point

[?]
Jun 15, 2022, 5:38 AM
T7SJSJIH3FUWK2TK6DNVLCNYL7ROJGFVMOOCIY3L46EX5T7M7VNAC

Dependencies

  • [2] GHZMRR33 some more manual tests related to drawings
  • [3] KAUD3YIK tests: deleting points/shapes
  • [4] YW5324Q3 bugfix: cut (C-x) without first selecting anything
  • [5] CPZGQT72 go through and fix similar issues
  • [6] K464QQR4 more defensive resize handling
  • [*] OTIBCAUJ love2d scaffold
  • [*] OGUV4HSA remove some memory leaks from rendered fragments
  • [*] NQWWTGXR switch undo/redo to ctrl- hotkeys
  • [*] LS55YKGW switch copy/paste to ctrl- hotkeys
  • [*] K2X6G75Z start writing some tests for drawings
  • [*] BJ5X5O4A let's prevent the text cursor from ever getting on a drawing

Change contents

  • edit in main.lua at line 412
    [9.17776]
    [10.351]
    save_to_disk(Lines, Filename)
  • edit in main.lua at line 424
    [9.17869]
    [11.38]
    save_to_disk(Lines, Filename)
  • edit in drawing_tests.lua at line 551
    [3.5526]
    function test_undo_name_point()
    io.write('\ntest_undo_name_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()
    -- draw a line
    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_name_point/baseline/#shapes')
    check_eq(#drawing.points, 2, 'F - test_undo_name_point/baseline/#points')
    check_eq(drawing.shapes[1].mode, 'line', 'F - test_undo_name_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_name_point/baseline/p1:x')
    check_eq(p1.y, 6, 'F - test_undo_name_point/baseline/p1:y')
    check_eq(p2.x, 35, 'F - test_undo_name_point/baseline/p2:x')
    check_eq(p2.y, 36, 'F - test_undo_name_point/baseline/p2:y')
    check_nil(p2.name, 'F - test_undo_name_point/baseline/p2:name')
    check_eq(#History, 1, 'F - test_undo_name_point/baseline/history:1')
    -- enter 'name' mode without moving the mouse
    App.run_after_keychord('C-n')
    App.run_after_textinput('A')
    App.run_after_keychord('return')
    check_eq(p2.name, 'A', 'F - test_undo_name_point/baseline')
    check_eq(#History, 3, 'F - test_undo_name_point/baseline/history:2')
    check_eq(Next_history, 4, 'F - test_undo_name_point/baseline/next_history')
    -- undo
    App.run_after_keychord('C-z')
    local drawing = Lines[1]
    local p2 = drawing.points[drawing.shapes[1].p2]
    check_eq(Next_history, 3, 'F - test_undo_name_point/next_history')
    check_eq(p2.name, '', 'F - test_undo_name_point') -- not quite what it was before, but close enough
    -- change is saved
    Lines = load_from_disk(Filename)
    local p2 = Lines[1].points[drawing.shapes[1].p2]
    check_eq(p2.name, '', 'F - test_undo_name_point/save')
    end
  • edit in Manual_tests.md at line 16
    [2.13][2.13:29]()
    naming points