#include "test_framework.hpp" #include "lumacs/editor_core.hpp" using namespace lumacs; TEST(EditorCore_KillWord) { EditorCore core; core.buffer().insert({0, 0}, "Hello World"); core.set_cursor({0, 0}); core.kill_word(); ASSERT_EQ(std::string(" World"), core.buffer().content()); ASSERT_EQ(std::string("Hello"), core.kill_ring().current()); } TEST(EditorCore_BackwardKillWord) { EditorCore core; core.buffer().insert({0, 0}, "Hello World"); core.set_cursor({0, 5}); // After "Hello" core.backward_kill_word(); ASSERT_EQ(std::string(" World"), core.buffer().content()); ASSERT_EQ(std::string("Hello"), core.kill_ring().current()); } TEST(EditorCore_KillWord_Middle) { EditorCore core; core.buffer().insert({0, 0}, "Hello World"); core.set_cursor({0, 2}); // "He|llo" core.kill_word(); // Should kill "llo" ASSERT_EQ(std::string("He World"), core.buffer().content()); ASSERT_EQ(std::string("llo"), core.kill_ring().current()); } TEST(EditorCore_BackwardKillWord_Middle) { EditorCore core; core.buffer().insert({0, 0}, "Hello World"); core.set_cursor({0, 3}); // "Hel|lo" core.backward_kill_word(); // Should kill "Hel" ASSERT_EQ(std::string("lo World"), core.buffer().content()); ASSERT_EQ(std::string("Hel"), core.kill_ring().current()); }