test/hyprland/backend: fix
This commit is contained in:
parent
959422f143
commit
b365831839
|
@ -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'; */
|
|
||||||
/* } */
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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:
|
||||||
|
};
|
Loading…
Reference in New Issue