diff options
Diffstat (limited to 'legacy-cpp/tests/test_lua_manager.cc')
| -rw-r--r-- | legacy-cpp/tests/test_lua_manager.cc | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/legacy-cpp/tests/test_lua_manager.cc b/legacy-cpp/tests/test_lua_manager.cc deleted file mode 100644 index 37d7017..0000000 --- a/legacy-cpp/tests/test_lua_manager.cc +++ /dev/null @@ -1,231 +0,0 @@ -#include <gtest/gtest.h> -#include "../src/config/lua_manager.h" -#include <memory> - -class LuaManagerTest : public ::testing::Test { -protected: - void SetUp() override { - lua_manager = std::make_unique<LuaManager>(); - EXPECT_TRUE(lua_manager->initialize()); - } - - void TearDown() override { - if (lua_manager) { - lua_manager->shutdown(); - } - } - - std::unique_ptr<LuaManager> lua_manager; -}; - -TEST_F(LuaManagerTest, Initialization) { - EXPECT_TRUE(lua_manager->initialize()); - EXPECT_TRUE(lua_manager->is_initialized()); -} - -TEST_F(LuaManagerTest, ConfigurationValues) { - // Test string values - lua_manager->set_string("test.string", "test_value"); - EXPECT_EQ(lua_manager->get_string("test.string", ""), "test_value"); - EXPECT_EQ(lua_manager->get_string("test.nonexistent", "default"), "default"); - - // Test integer values - lua_manager->set_int("test.int", 42); - EXPECT_EQ(lua_manager->get_int("test.int", 0), 42); - EXPECT_EQ(lua_manager->get_int("test.nonexistent", 100), 100); - - // Test boolean values - lua_manager->set_bool("test.bool", true); - EXPECT_TRUE(lua_manager->get_bool("test.bool", false)); - EXPECT_FALSE(lua_manager->get_bool("test.nonexistent", false)); -} - -TEST_F(LuaManagerTest, KeyBindings) { - // Test key binding - bool callback_called = false; - lua_manager->bind_key("Mod4+Return", [&callback_called]() { - callback_called = true; - }); - - // Simulate key press - lua_manager->handle_key_press("Mod4+Return"); - EXPECT_TRUE(callback_called); -} - -TEST_F(LuaManagerTest, LayoutManagement) { - // Test layout setting - lua_manager->set_layout(0, "tiling"); - EXPECT_EQ(lua_manager->get_layout(0), "tiling"); - - lua_manager->set_layout(1, "dynamic"); - EXPECT_EQ(lua_manager->get_layout(1), "dynamic"); -} - -TEST_F(LuaManagerTest, WindowDecorationControls) { - // Test decoration controls - EXPECT_TRUE(lua_manager->set_window_decorations("test_window", true)); - EXPECT_TRUE(lua_manager->get_window_decorations("test_window")); - - EXPECT_TRUE(lua_manager->set_window_decorations("test_window", false)); - EXPECT_FALSE(lua_manager->get_window_decorations("test_window")); - - // Test border color - EXPECT_TRUE(lua_manager->set_window_border_color("test_window", 255, 0, 0)); - - // Test border width - EXPECT_TRUE(lua_manager->set_window_border_width("test_window", 5)); -} - -TEST_F(LuaManagerTest, WindowStateControls) { - // Test floating state - EXPECT_TRUE(lua_manager->set_window_floating("test_window", true)); - EXPECT_TRUE(lua_manager->is_window_floating("test_window")); - - EXPECT_TRUE(lua_manager->set_window_floating("test_window", false)); - EXPECT_FALSE(lua_manager->is_window_floating("test_window")); - - // Test toggle - EXPECT_TRUE(lua_manager->toggle_window_floating("test_window")); - EXPECT_TRUE(lua_manager->is_window_floating("test_window")); -} - -TEST_F(LuaManagerTest, ConfigurationLoading) { - // Test loading configuration from string - std::string config = R"( - srd.set("test.loaded", true) - srd.set("test.value", 123) - srd.set("test.string", "loaded_value") - )"; - - EXPECT_TRUE(lua_manager->load_config_string(config)); - EXPECT_TRUE(lua_manager->get_bool("test.loaded", false)); - EXPECT_EQ(lua_manager->get_int("test.value", 0), 123); - EXPECT_EQ(lua_manager->get_string("test.string", ""), "loaded_value"); -} - -TEST_F(LuaManagerTest, ErrorHandling) { - // Test invalid Lua code - std::string invalid_config = "invalid lua code {"; - EXPECT_FALSE(lua_manager->load_config_string(invalid_config)); - - // Test error retrieval - auto errors = lua_manager->get_errors(); - EXPECT_FALSE(errors.empty()); -} - -TEST_F(LuaManagerTest, ThemeConfiguration) { - // Test theme colors - std::map<std::string, std::string> colors = { - {"background", "#2e3440"}, - {"foreground", "#eceff4"}, - {"accent", "#88c0d0"} - }; - - EXPECT_TRUE(lua_manager->set_theme_colors(colors)); - - // Test theme decorations - std::map<std::string, LuaConfigValue> decorations = { - {"border_width", {LuaConfigValue::Type::Number, "", 3.0, false, {}, ""}}, - {"border_color", {LuaConfigValue::Type::String, "#2e3440", 0.0, false, {}, ""}} - }; - - EXPECT_TRUE(lua_manager->set_theme_decorations(decorations)); -} - -TEST_F(LuaManagerTest, ConfigurationReloading) { - // Set initial configuration - lua_manager->set_string("test.reload", "initial"); - EXPECT_EQ(lua_manager->get_string("test.reload", ""), "initial"); - - // Reload configuration - EXPECT_TRUE(lua_manager->reload_config()); - - // Should be reset to default - EXPECT_EQ(lua_manager->get_string("test.reload", "default"), "default"); -} - -TEST_F(LuaManagerTest, LuaAPIFunctions) { - // Test Lua API registration - std::string api_test = R"( - - Test srd.set - srd.set("api.test", "value") - - - Test srd.get - local value = srd.get("api.test") - if value ~= "value" then - error("srd.get failed") - end - - - Test srd.bind - srd.bind("Mod4+Test", function() - srd.set("api.callback", "called") - end) - )"; - - EXPECT_TRUE(lua_manager->load_config_string(api_test)); - EXPECT_EQ(lua_manager->get_string("api.test", ""), "value"); -} - -TEST_F(LuaManagerTest, WindowAPIFunctions) { - // Test window API functions - std::string window_api_test = R"( - - Test window decoration controls - srd.window.set_decorations("test_window", true) - srd.window.set_border_color("test_window", 255, 0, 0) - srd.window.set_border_width("test_window", 5) - - - Test window state controls - srd.window.set_floating("test_window", true) - srd.window.toggle_floating("test_window") - )"; - - EXPECT_TRUE(lua_manager->load_config_string(window_api_test)); -} - -TEST_F(LuaManagerTest, LayoutAPIFunctions) { - // Test layout API functions - std::string layout_api_test = R"( - - Test layout setting - srd.layout.set("tiling") - - - Test layout configuration - srd.layout.configure("tiling", { - gap = "10", - border_width = "2" - }) - )"; - - EXPECT_TRUE(lua_manager->load_config_string(layout_api_test)); -} - -TEST_F(LuaManagerTest, PerformanceTest) { - // Test performance with many configuration values - for (int i = 0; i < 1000; ++i) { - std::string key = "perf.test." + std::to_string(i); - lua_manager->set_int(key, i); - } - - // Verify all values - for (int i = 0; i < 1000; ++i) { - std::string key = "perf.test." + std::to_string(i); - EXPECT_EQ(lua_manager->get_int(key, -1), i); - } -} - -TEST_F(LuaManagerTest, MemoryManagement) { - // Test memory management with large configurations - std::string large_config; - for (int i = 0; i < 100; ++i) { - large_config += "srd.set(\"large.test." + std::to_string(i) + "\", " + std::to_string(i) + ")\n"; - } - - EXPECT_TRUE(lua_manager->load_config_string(large_config)); - - // Reload to test cleanup - EXPECT_TRUE(lua_manager->reload_config()); -} - -int main(int argc, char **argv) { - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} |