| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "gtest/gtest.h"
- #include "lumacs/editor_core.hpp"
- #include "lumacs/lua_api.hpp"
- #include "lumacs/keybinding.hpp"
- #include "lumacs/command_system.hpp"
- #include <memory>
- using namespace lumacs;
- class DefaultsLoadingTest : public ::testing::Test {
- protected:
- void SetUp() override {
- core = std::make_unique<EditorCore>();
-
- // Load the REAL defaults (this is what main.cpp does)
- core->lua_api()->load_init_file();
-
- // Ensure buffer is ready
- core->new_buffer("*scratch*");
- core->set_cursor({0,0});
- }
- void TearDown() override {
- core.reset();
- }
- std::unique_ptr<EditorCore> core;
- };
- TEST_F(DefaultsLoadingTest, SelfInsertFromDefaults) {
- std::string input_key = "h";
-
- // 1. Process key (should be unbound in defaults)
- auto result = core->keybinding_manager().process_key(input_key);
- EXPECT_EQ(result.type, KeyResult::Unbound);
-
- // 2. Simulate GtkEditor fallback logic
- if (result.type == KeyResult::Unbound) {
- if (input_key.length() == 1) {
- // This executes the LUA version of self-insert-command defined in defaults.hpp
- auto cmd_result = core->command_system().execute("self-insert-command", {input_key});
-
- EXPECT_EQ(cmd_result.status, CommandStatus::Success) << "Message: " << cmd_result.message;
- }
- }
-
- // 3. Verify state
- EXPECT_EQ(core->buffer().content(), "h");
- }
|