Files
XCEngine/tests/UI/Editor/integration/shared/src/EditorValidationScenario.cpp

60 lines
1.6 KiB
C++
Raw Normal View History

#include "EditorValidationScenario.h"
#include <array>
#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<EditorValidationScenario, 1>& GetEditorValidationScenarios() {
static const std::array<EditorValidationScenario, 1> 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