2026-04-06 03:17:53 +08:00
|
|
|
#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();
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-06 04:27:54 +08:00
|
|
|
const std::array<EditorValidationScenario, 6>& GetEditorValidationScenarios() {
|
|
|
|
|
static const std::array<EditorValidationScenario, 6> scenarios = { {
|
2026-04-06 03:17:53 +08:00
|
|
|
{
|
|
|
|
|
"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")
|
2026-04-06 04:27:54 +08:00
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"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")
|
2026-04-06 03:17:53 +08:00
|
|
|
}
|
|
|
|
|
} };
|
|
|
|
|
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
|