BufferView updates cursor screen row to follow moved cursor

This commit is contained in:
josh committed 2017-09-03 18:15:37 -04:00
1 parent 14e285041e
commit 359f5bed9f
3 files changed
+87 -4

No files matched your search

+52
View File
@@ -137,3 +137,55 @@ TEST(BufferViewTest, fills_view_with_last_lines_of_buffer_when_cursor_warps_to_l
EXPECT_EQ(0, bv.cursor_screen_column());
EXPECT_EQ(0, bv.cursor_virtual_column());
}
TEST(BufferViewTest, adjusts_cursor_row_as_cursor_moves)
{
auto b = buffer1();
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(5, 5);
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
iterator->go_next_line(); // to 1
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
iterator->go_next_line(); // to 2
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
iterator->go_next_line(); // to 3
bv.update();
EXPECT_EQ(3, bv.cursor_screen_row());
iterator->go_next_line(); // to 4
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
iterator->go_next_line(); // to 5
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
iterator->go_next_line(); // to 6
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
iterator->go_next_line(); // to 7
bv.update();
EXPECT_EQ(4, bv.cursor_screen_row());
iterator->go_previous_line(); // to 6
bv.update();
EXPECT_EQ(2, bv.cursor_screen_row());
iterator->go_previous_line(); // to 5
bv.update();
EXPECT_EQ(1, bv.cursor_screen_row());
iterator->go_previous_line(); // to 4
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
iterator->go_previous_line(); // to 3
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
iterator->go_previous_line(); // to 2
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
iterator->go_previous_line(); // to 1
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
iterator->go_previous_line(); // to 0
bv.update();
EXPECT_EQ(0, bv.cursor_screen_row());
}