diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-06-06 19:54:13 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-06-06 19:54:13 +0200 |
| commit | 59b996be7556495e151ace6441a10ab8e381c761 (patch) | |
| tree | b97be9097bb66a902de3d442917517ff610370a8 /src/unit_tests.cc | |
| parent | 2a74b0e9e23e927121908ef534393ffd1b80e8ca (diff) | |
add an UndoGroupOptimizer test
Diffstat (limited to 'src/unit_tests.cc')
| -rw-r--r-- | src/unit_tests.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/unit_tests.cc b/src/unit_tests.cc index 00f54eb3..e0537123 100644 --- a/src/unit_tests.cc +++ b/src/unit_tests.cc @@ -48,6 +48,26 @@ void test_buffer() kak_assert(buffer.string(buffer.advance(buffer.end_coord(), -6), buffer.end_coord()) == "mutch\n"); } +void test_undo_group_optimizer() +{ + std::vector<String> lines = { "allo ?\n", "mais que fais la police\n", " hein ?\n", " youpi\n" }; + Buffer buffer("test", Buffer::Flags::None, lines); + auto pos = buffer.insert(buffer.end(), "kanaky\n"); + buffer.erase(pos, buffer.end()); + buffer.insert(buffer.iterator_at(2_line), "tchou\n"); + buffer.insert(buffer.iterator_at(2_line), "mutch\n"); + buffer.erase(buffer.iterator_at({2, 1}), buffer.iterator_at({2, 5})); + buffer.erase(buffer.iterator_at(2_line), buffer.end()); + buffer.insert(buffer.end(), "youpi"); + buffer.undo(); + buffer.redo(); + buffer.undo(); + + kak_assert((int)buffer.line_count() == lines.size()); + for (size_t i = 0; i < lines.size(); ++i) + kak_assert(lines[i] == buffer[LineCount((int)i)]); +} + void test_editor() { using namespace std::placeholders; @@ -128,6 +148,7 @@ void run_unit_tests() test_string(); test_keys(); test_buffer(); + test_undo_group_optimizer(); test_editor(); test_incremental_inserter(); } |
