test/hyprland/backend: fix

This commit is contained in:
Austin Horstman 2024-06-09 10:18:42 -05:00
parent 959422f143
commit b365831839
No known key found for this signature in database
2 changed files with 56 additions and 95 deletions

View File

@ -4,107 +4,52 @@
#else #else
#include <catch2/catch.hpp> #include <catch2/catch.hpp>
#endif #endif
#include <catch2/reporters/catch_reporter_event_listener.hpp>
#include <catch2/reporters/catch_reporter_registrars.hpp>
#include "fixtures/IPCTestFixture.hpp"
#include "modules/hyprland/backend.hpp" #include "modules/hyprland/backend.hpp"
namespace fs = std::filesystem; namespace fs = std::filesystem;
namespace hyprland = waybar::modules::hyprland; namespace hyprland = waybar::modules::hyprland;
class testRunListener : public Catch::EventListenerBase { TEST_CASE_METHOD(IPCTestFixture, "XDGRuntimeDirExists", "[getSocketFolder]") {
public:
using Catch::EventListenerBase::EventListenerBase;
void testCaseStarting(Catch::TestCaseInfo const&) override {
// TODO: reset state of module here
}
};
CATCH_REGISTER_LISTENER(testRunListener)
TEST_CASE("GetSocketFolderTest", "[getSocketFolder]") {
SECTION("XDGRuntimeDirExists") {
// Test case: XDG_RUNTIME_DIR exists and contains "hypr" directory // Test case: XDG_RUNTIME_DIR exists and contains "hypr" directory
// Arrange // Arrange
std::cout << "Starting XDGRuntimeDirExists " << '\n'; tempDir = fs::temp_directory_path() / "hypr_test/run/user/1000";
const char* instanceSig = "instance_sig";
fs::path tempDir = fs::temp_directory_path() / "hypr_test/run/user/1000";
std::cout << "Temp dir: " << tempDir << '\n';
fs::path expectedPath = tempDir / "hypr" / instanceSig; fs::path expectedPath = tempDir / "hypr" / instanceSig;
std::cout << "Expected path: " << expectedPath << '\n';
fs::create_directories(tempDir / "hypr" / instanceSig); fs::create_directories(tempDir / "hypr" / instanceSig);
setenv("XDG_RUNTIME_DIR", tempDir.c_str(), 1); setenv("XDG_RUNTIME_DIR", tempDir.c_str(), 1);
// Act/* // Act
std::cout << "Getting socket folder" << '\n'; fs::path actualPath = getSocketFolder(instanceSig);
fs::path actualPath = hyprland::getSocketFolder(instanceSig);
// Assert expected result // Assert expected result
REQUIRE(actualPath == expectedPath); REQUIRE(actualPath == expectedPath);
// Cleanup
fs::remove_all(tempDir);
std::cout << "Finishing XDGRuntimeDirExists " << '\n';
} }
// TODO: properly clear state so we can actually test these.... TEST_CASE_METHOD(IPCTestFixture, "XDGRuntimeDirDoesNotExist", "[getSocketFolder]") {
/* SECTION("XDGRuntimeDirDoesNotExist") { */ // Test case: XDG_RUNTIME_DIR does not exist
/* // Test case: XDG_RUNTIME_DIR does not exist */ // Arrange
/* // Arrange */ unsetenv("XDG_RUNTIME_DIR");
/* std::cout << "Starting XDGRuntimeDirDoesNotExist " << '\n'; */ fs::path expectedPath = fs::path("/tmp") / "hypr" / instanceSig;
/* const char* instanceSig = "instance_sig"; */
/**/ // Act
/* std::cout << "Current XDG_RUNTIME_DIR: " << getenv("XDG_RUNTIME_DIR") << '\n'; */ fs::path actualPath = getSocketFolder(instanceSig);
/**/
/* unsetenv("XDG_RUNTIME_DIR"); */ // Assert expected result
/**/ REQUIRE(actualPath == expectedPath);
/* std::cout << "New XDG_RUNTIME_DIR: " << getenv("XDG_RUNTIME_DIR") << '\n'; */ }
/**/
/* // Act */ TEST_CASE_METHOD(IPCTestFixture, "XDGRuntimeDirExistsNoHyprDir", "[getSocketFolder]") {
/* fs::path actualPath = hyprland::getSocketFolder(instanceSig); */ // Test case: XDG_RUNTIME_DIR exists but does not contain "hypr" directory
/**/ // Arrange
/* // Assert expected result */ fs::path tempDir = fs::temp_directory_path() / "hypr_test/run/user/1000";
/* fs::path expectedPath = fs::path("/tmp") / "hypr" / instanceSig; */ fs::create_directories(tempDir);
/* REQUIRE(actualPath == expectedPath); */ setenv("XDG_RUNTIME_DIR", tempDir.c_str(), 1);
/**/ fs::path expectedPath = fs::path("/tmp") / "hypr" / instanceSig;
/* // Cleanup */
/* std::cout << "Finishing XDGRuntimeDirDoesNotExist " << '\n'; */ // Act
/* } */ fs::path actualPath = getSocketFolder(instanceSig);
/**/
/* SECTION("XDGRuntimeDirExistsNoHyprDir") { */ // Assert expected result
/* // Test case: XDG_RUNTIME_DIR exists but does not contain "hypr" directory */ REQUIRE(actualPath == expectedPath);
/* // Arrange */
/* std::cout << "Starting XDGRuntimeDirExistsNoHyprDir " << '\n'; */
/**/
/* const char* instanceSig = "instance_sig"; */
/**/
/* fs::path tempDir = fs::temp_directory_path() / "hypr_test/run/user/1000"; */
/* std::cout << "Temp dir: " << tempDir << '\n'; */
/**/
/* fs::create_directories(tempDir); */
/**/
/* setenv("XDG_RUNTIME_DIR", tempDir.c_str(), 1); */
/**/
/* std::cout << "Current XDG_RUNTIME_DIR: " << getenv("XDG_RUNTIME_DIR") << '\n'; */
/**/
/* // Act */
/* fs::path actualPath = hyprland::getSocketFolder(instanceSig); */
/**/
/* // Assert expected result */
/* fs::path expectedPath = fs::path("/tmp") / "hypr" / instanceSig; */
/* std::cout << "Expected path: " << expectedPath << '\n'; */
/**/
/* REQUIRE(actualPath == expectedPath); */
/**/
/* // Cleanup */
/* fs::remove_all(tempDir); */
/**/
/* std::cout << "Finishing XDGRuntimeDirExistsNoHyprDir " << '\n'; */
/* } */
} }

View File

@ -0,0 +1,16 @@
#include "modules/hyprland/backend.hpp"
namespace fs = std::filesystem;
namespace hyprland = waybar::modules::hyprland;
class IPCTestFixture : public hyprland::IPC {
public:
IPCTestFixture() : IPC() { IPC::socketFolder_ = ""; }
~IPCTestFixture() { fs::remove_all(tempDir); }
protected:
const char* instanceSig = "instance_sig";
fs::path tempDir = fs::temp_directory_path() / "hypr_test";
private:
};