#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.input.keyboard_focus", UIValidationDomain::Editor, "input", "Editor Input | Keyboard Focus", RepoRelative("tests/UI/Editor/integration/input/keyboard_focus/View.xcui"), RepoRelative("tests/UI/Editor/integration/shared/themes/editor_validation.xctheme"), RepoRelative("tests/UI/Editor/integration/input/keyboard_focus/captures") }, { "editor.input.pointer_states", UIValidationDomain::Editor, "input", "Editor Input | Pointer States", RepoRelative("tests/UI/Editor/integration/input/pointer_states/View.xcui"), RepoRelative("tests/UI/Editor/integration/shared/themes/editor_validation.xctheme"), RepoRelative("tests/UI/Editor/integration/input/pointer_states/captures") }, { "editor.input.shortcut_scope", UIValidationDomain::Editor, "input", "Editor Input | Shortcut Scope", RepoRelative("tests/UI/Editor/integration/input/shortcut_scope/View.xcui"), RepoRelative("tests/UI/Editor/integration/shared/themes/editor_validation.xctheme"), RepoRelative("tests/UI/Editor/integration/input/shortcut_scope/captures") }, { "editor.layout.splitter_resize", UIValidationDomain::Editor, "layout", "Editor Layout | Splitter Resize", RepoRelative("tests/UI/Editor/integration/layout/splitter_resize/View.xcui"), RepoRelative("tests/UI/Editor/integration/shared/themes/editor_validation.xctheme"), RepoRelative("tests/UI/Editor/integration/layout/splitter_resize/captures") }, { "editor.layout.tab_strip_selection", UIValidationDomain::Editor, "layout", "Editor Layout | TabStrip Selection", RepoRelative("tests/UI/Editor/integration/layout/tab_strip_selection/View.xcui"), RepoRelative("tests/UI/Editor/integration/shared/themes/editor_validation.xctheme"), RepoRelative("tests/UI/Editor/integration/layout/tab_strip_selection/captures") }, { "editor.layout.workspace_compose", UIValidationDomain::Editor, "layout", "Editor Layout | Workspace Compose", RepoRelative("tests/UI/Editor/integration/layout/workspace_compose/View.xcui"), RepoRelative("tests/UI/Editor/integration/shared/themes/editor_validation.xctheme"), RepoRelative("tests/UI/Editor/integration/layout/workspace_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