test_editor_core.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "test_framework.hpp"
  2. #include "lumacs/editor_core.hpp"
  3. using namespace lumacs;
  4. TEST(EditorCore_KillWord) {
  5. EditorCore core;
  6. core.buffer().insert({0, 0}, "Hello World");
  7. core.set_cursor({0, 0});
  8. core.kill_word();
  9. ASSERT_EQ(std::string(" World"), core.buffer().content());
  10. ASSERT_EQ(std::string("Hello"), core.kill_ring().current());
  11. }
  12. TEST(EditorCore_BackwardKillWord) {
  13. EditorCore core;
  14. core.buffer().insert({0, 0}, "Hello World");
  15. core.set_cursor({0, 5}); // After "Hello"
  16. core.backward_kill_word();
  17. ASSERT_EQ(std::string(" World"), core.buffer().content());
  18. ASSERT_EQ(std::string("Hello"), core.kill_ring().current());
  19. }
  20. TEST(EditorCore_KillWord_Middle) {
  21. EditorCore core;
  22. core.buffer().insert({0, 0}, "Hello World");
  23. core.set_cursor({0, 2}); // "He|llo"
  24. core.kill_word(); // Should kill "llo"
  25. ASSERT_EQ(std::string("He World"), core.buffer().content());
  26. ASSERT_EQ(std::string("llo"), core.kill_ring().current());
  27. }
  28. TEST(EditorCore_BackwardKillWord_Middle) {
  29. EditorCore core;
  30. core.buffer().insert({0, 0}, "Hello World");
  31. core.set_cursor({0, 3}); // "Hel|lo"
  32. core.backward_kill_word(); // Should kill "Hel"
  33. ASSERT_EQ(std::string("lo World"), core.buffer().content());
  34. ASSERT_EQ(std::string("Hel"), core.kill_ring().current());
  35. }