Add Buffer::erase_range()
This commit is contained in:
1 parent
438a3e6960
commit
c3852e950a
3 files changed
+46
No files matched your search
@@ -133,6 +133,37 @@ TEST(BufferTest, allows_inserting_and_erasing_characters)
|
||||
b.exit_insert_mode();
|
||||
}
|
||||
|
||||
TEST(BufferTest, allows_erasing_ranges)
|
||||
{
|
||||
std::string s("abc\ndef\n");
|
||||
Buffer b((const uint8_t *)&s[0], s.size());
|
||||
auto it = b.add_iterator();
|
||||
auto it2 = b.add_iterator();
|
||||
it2->go_next_line();
|
||||
|
||||
/* Invalid tests. */
|
||||
b.erase_range(b.end(), b.end());
|
||||
EXPECT_EQ(ss("abc\ndef\n"), b.get_string());
|
||||
b.erase_range(*it, b.begin());
|
||||
EXPECT_EQ(ss("abc\ndef\n"), b.get_string());
|
||||
|
||||
EXPECT_EQ(C('a'), **it);
|
||||
EXPECT_EQ(C('d'), **it2);
|
||||
b.erase_range(*it, *it2);
|
||||
EXPECT_EQ(ss("def\n"), b.get_string());
|
||||
EXPECT_EQ(*it, *it2);
|
||||
EXPECT_EQ(C('d'), **it);
|
||||
while (it2->valid())
|
||||
{
|
||||
it2->go_forward();
|
||||
}
|
||||
EXPECT_EQ(C('d'), **it);
|
||||
b.erase_range(*it, *it2);
|
||||
EXPECT_EQ(ss(""), b.get_string());
|
||||
EXPECT_FALSE(it->valid());
|
||||
EXPECT_FALSE(it2->valid());
|
||||
}
|
||||
|
||||
TEST(BufferTest, adds_a_newline_after_inserted_character_when_inserting_in_an_empty_buffer)
|
||||
{
|
||||
Buffer b;
|
||||
|
||||
Reference in new issue
Block a user