summaryrefslogtreecommitdiff
path: root/src/unit_tests.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-06-06 19:54:13 +0200
committerMaxime Coste <frrrwww@gmail.com>2013-06-06 19:54:13 +0200
commit59b996be7556495e151ace6441a10ab8e381c761 (patch)
treeb97be9097bb66a902de3d442917517ff610370a8 /src/unit_tests.cc
parent2a74b0e9e23e927121908ef534393ffd1b80e8ca (diff)
add an UndoGroupOptimizer test
Diffstat (limited to 'src/unit_tests.cc')
-rw-r--r--src/unit_tests.cc21
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();
}