BufferView: add scroll_view_{up,down}()

This commit is contained in:
josh committed 2017-09-13 20:08:09 -04:00
1 parent 84759d0a36
commit 70aba6e2d4
3 files changed
+189

No files matched your search

+113
View File
@@ -520,3 +520,116 @@ TEST(BufferViewTest, cursor_move_screen_row_up_and_down_returns_false_at_top_and
}
EXPECT_FALSE(bv.cursor_move(BufferView::CursorMovement::SCREEN_ROW_DOWN, false));
}
TEST(BufferViewTest, scrolls_the_view_up_and_down)
{
auto b = buffer1();
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(40, 6);
bv.update();
EXPECT_EQ(0, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_down(1, false);
bv.update();
EXPECT_EQ(1, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_down(5, false);
bv.update();
EXPECT_EQ(6, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_down(1, false);
bv.update();
EXPECT_EQ(7, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_down(1, false);
bv.update();
EXPECT_EQ(7, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_down(3, false);
bv.update();
EXPECT_EQ(7, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(7, LineNumber(iterator));
EXPECT_EQ(1, bv.cursor_screen_row());
bv.scroll_view_up(4, false);
bv.update();
EXPECT_EQ(7, LineNumber(iterator));
EXPECT_EQ(5, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(6, LineNumber(iterator));
EXPECT_EQ(5, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(5, LineNumber(iterator));
EXPECT_EQ(5, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(5, LineNumber(iterator));
EXPECT_EQ(5, bv.cursor_screen_row());
bv.scroll_view_up(3, false);
bv.update();
EXPECT_EQ(5, LineNumber(iterator));
EXPECT_EQ(5, bv.cursor_screen_row());
}
TEST(BufferViewTest, scrolls_the_view_up_and_down_with_nonzero_scroll_offset)
{
auto b = buffer1();
auto iterator = b->add_iterator();
BufferView bv(b, iterator, Cwd);
bv.resize(40, 6);
bv.set_scroll_offset(2);
bv.update();
EXPECT_EQ(0, LineNumber(iterator));
EXPECT_EQ(0, bv.cursor_screen_row());
bv.scroll_view_down(1, false);
bv.update();
EXPECT_EQ(3, LineNumber(iterator));
EXPECT_EQ(2, bv.cursor_screen_row());
bv.scroll_view_down(5, false);
bv.update();
EXPECT_EQ(8, LineNumber(iterator));
EXPECT_EQ(2, bv.cursor_screen_row());
bv.scroll_view_down(1, false);
bv.update();
EXPECT_EQ(9, LineNumber(iterator));
EXPECT_EQ(2, bv.cursor_screen_row());
bv.scroll_view_down(1, false);
bv.update();
EXPECT_EQ(9, LineNumber(iterator));
EXPECT_EQ(2, bv.cursor_screen_row());
bv.scroll_view_down(3, false);
bv.update();
EXPECT_EQ(9, LineNumber(iterator));
EXPECT_EQ(2, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(9, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
bv.scroll_view_up(4, false);
bv.update();
EXPECT_EQ(5, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(4, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(3, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
bv.scroll_view_up(1, false);
bv.update();
EXPECT_EQ(3, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
bv.scroll_view_up(3, false);
bv.update();
EXPECT_EQ(3, LineNumber(iterator));
EXPECT_EQ(3, bv.cursor_screen_row());
}