3#include "../UITestHarness.h"
4#include "events/StateEvents.h"
5#include <imgui_te_context.h>
9 ImGuiTestEngine *engine,
13 ImGuiTest *t = IM_REGISTER_TEST(engine, category, name);
14 t->TeardownFunc = [](ImGuiTestContext *ctx) {
17 harness->get_editor_context()->event_bus.dispatch<editor::CloseProjectEvent>();
26 ImGuiTest *t =
nullptr;
27 t = RegisterTestWithTeardown(engine,
"ProjectHub",
"WindowVisible");
28 t->TestFunc = [](ImGuiTestContext *ctx) {
30 ctx->WindowInfo(
"Project Hub", ImGuiTestOpFlags_None);
33 t = RegisterTestWithTeardown(engine,
"ProjectHub",
"CreateButton_OpensCreator");
34 t->TestFunc = [](ImGuiTestContext *ctx) {
36 IM_CHECK(ctx->WindowInfo(
"Hellfire - Project Hub").ID != 0);
37 ctx->SetRef(
"Hellfire - Project Hub");
38 ctx->ItemClick(
"HubLayout/New Project");
41 IM_CHECK(ctx->WindowInfo(
"//Create New Project").ID != 0);
46 ImGuiTest *t =
nullptr;
48 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"WindowOpens_FromProjectHub");
49 t->TestFunc = [](ImGuiTestContext *ctx) {
52 ctx->SetRef(
"//Hellfire - Project Hub");
53 ctx->ItemClick(
"HubLayout/New Project");
56 IM_CHECK(ctx->ItemInfo(
"//Create New Project").ID != 0);
59 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"CancelButton_ReturnsToHub");
60 t->TestFunc = [](ImGuiTestContext *ctx) {
63 ctx->SetRef(
"//Hellfire - Project Hub");
64 ctx->ItemClick(
"HubLayout/New Project");
67 ctx->SetRef(
"//Create New Project");
68 ctx->ItemClick(
"**/Cancel");
71 IM_CHECK(ctx->ItemInfo(
"//Hellfire - Project Hub").ID != 0);
74 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"FormInputs_AcceptText");
75 t->TestFunc = [](ImGuiTestContext *ctx) {
78 ctx->SetRef(
"//Hellfire - Project Hub");
79 ctx->ItemClick(
"HubLayout/New Project");
82 ctx->SetRef(
"//Create New Project");
84 ctx->ItemClick(
"**/##name");
85 ctx->KeyCharsAppend(
"MyTestProject");
88 ctx->ItemClick(
"**/##location");
89 ctx->KeyCharsAppend(
"C:/Projects");
93 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"CreateButton_DisabledWhenEmpty");
94 t->TestFunc = [](ImGuiTestContext *ctx) {
97 ctx->SetRef(
"//Hellfire - Project Hub");
98 ctx->ItemClick(
"HubLayout/New Project");
101 ctx->SetRef(
"//Create New Project");
104 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"CreateProject_EndToEnd");
105 t->TestFunc = [](ImGuiTestContext *ctx) {
108 ctx->SetRef(
"//Hellfire - Project Hub");
109 ctx->ItemClick(
"HubLayout/New Project");
112 ctx->SetRef(
"//Create New Project");
114 ctx->ItemClick(
"**/##name");
115 ctx->KeyCharsAppend(
"E2ETestProject");
117 ctx->ItemClick(
"**/##location");
118 ctx->KeyCharsAppend(
"C:/TestProjects");
121 ctx->ItemClick(
"**/Create");
132 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"FormResets_WhenReopened");
133 t->TestFunc = [](ImGuiTestContext *ctx) {
137 ctx->SetRef(
"//Hellfire - Project Hub");
138 ctx->ItemClick(
"HubLayout/New Project");
141 ctx->SetRef(
"//Create New Project");
142 ctx->ItemClick(
"**/##name");
143 ctx->KeyCharsAppend(
"SomeProject");
147 ctx->ItemClick(
"**/Cancel");
151 ctx->SetRef(
"//Hellfire - Project Hub");
152 ctx->ItemClick(
"HubLayout/New Project");
156 ctx->SetRef(
"//Create New Project");
157 ImGuiTestItemInfo create_btn = ctx->ItemInfo(
"**/Create");
158 IM_CHECK((create_btn.ItemFlags & ImGuiItemFlags_Disabled) != 0);
165 t = RegisterTestWithTeardown(engine,
"ProjectCreator",
"FolderButton_Exists");
166 t->TestFunc = [](ImGuiTestContext *ctx) {
169 ctx->SetRef(
"//Hellfire - Project Hub");
170 ctx->ItemClick(
"HubLayout/New Project");
173 ctx->SetRef(
"//Create New Project");
~UITestHarness() override
void on_initialize(Application &app) override
void on_end_frame() override
void on_render() override
int get_exit_code() const
static UITestHarness * instance
void RegisterProjectCreatorTests(ImGuiTestEngine *engine)
ImGuiTest * RegisterTestWithTeardown(ImGuiTestEngine *engine, const char *category, const char *name)
void RegisterProjectHubTests(ImGuiTestEngine *engine)
void RegisterEditorStateTests(ImGuiTestEngine *engine)