BufferView: add functions to move cursor up/down by screen row
This commit is contained in:
1 parent
fcd198b691
commit
84759d0a36
3 files changed
+141
-18
No files matched your search
@@ -467,3 +467,56 @@ TEST(BufferViewTest, sets_target_column_when_traversing_left_and_right)
|
||||
EXPECT_EQ(1, LineNumber(iterator));
|
||||
EXPECT_EQ(C('a'), **iterator);
|
||||
}
|
||||
|
||||
TEST(BufferViewTest, moves_cursor_by_screen_row)
|
||||
{
|
||||
auto b = buffer1();
|
||||
auto iterator = b->add_iterator();
|
||||
BufferView bv(b, iterator, Cwd);
|
||||
bv.resize(4, 4);
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(1 + i, LineNumber(iterator));
|
||||
}
|
||||
EXPECT_EQ(C('6'), **iterator);
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(6, LineNumber(iterator));
|
||||
EXPECT_EQ(C('d'), **iterator);
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
|
||||
bv.update();
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::RIGHT, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(C('f'), **iterator);
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(C('7'), **iterator);
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(C('f'), **iterator);
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(C('b'), **iterator);
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(C('5'), **iterator);
|
||||
}
|
||||
|
||||
TEST(BufferViewTest, cursor_move_screen_row_up_and_down_returns_false_at_top_and_bottom)
|
||||
{
|
||||
auto b = buffer1();
|
||||
auto iterator = b->add_iterator();
|
||||
BufferView bv(b, iterator, Cwd);
|
||||
bv.resize(4, 4);
|
||||
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_UP, false));
|
||||
bv.update();
|
||||
EXPECT_EQ(0, LineNumber(iterator));
|
||||
for (int i = 0; i < 16; i++)
|
||||
{
|
||||
EXPECT_TRUE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
|
||||
bv.update();
|
||||
}
|
||||
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
|
||||
}
|
||||
Reference in new issue
Block a user