Add Buffer::erase_range()

This commit is contained in:
josh committed 2017-11-17 16:58:28 -05:00
1 parent 438a3e6960
commit c3852e950a
3 files changed
+46

No files matched your search

+31
View File
@@ -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;