#include "EditorValidationScenario.h" #include #ifndef XCENGINE_EDITOR_UI_TESTS_REPO_ROOT #define XCENGINE_EDITOR_UI_TESTS_REPO_ROOT "." #endif namespace XCEngine::Tests::EditorUI { namespace { namespace fs = std::filesystem; fs::path RepoRootPath() { std::string root = XCENGINE_EDITOR_UI_TESTS_REPO_ROOT; if (root.size() >= 2u && root.front() == '"' && root.back() == '"') { root = root.substr(1u, root.size() - 2u); } return fs::path(root).lexically_normal(); } fs::path RepoRelative(const char* relativePath) { return (RepoRootPath() / relativePath).lexically_normal(); } const std::array& GetEditorValidationScenarios() { static const std::array scenarios = { { { "editor.shell.workspace_shell_compose", UIValidationDomain::Editor, "shell", "Editor 壳层 | 工作区组合", RepoRelative("tests/UI/Editor/integration/shell/workspace_shell_compose/View.xcui"), RepoRelative("tests/UI/Editor/integration/shell/workspace_shell_compose/captures") } } }; return scenarios; } } // namespace const EditorValidationScenario& GetDefaultEditorValidationScenario() { return GetEditorValidationScenarios().front(); } const EditorValidationScenario* FindEditorValidationScenario(std::string_view id) { for (const EditorValidationScenario& scenario : GetEditorValidationScenarios()) { if (scenario.id == id) { return &scenario; } } return nullptr; } } // namespace XCEngine::Tests::EditorUI