yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
editor_integration_test.h
Go to the documentation of this file.
1#ifndef YAZE_TEST_EDITOR_INTEGRATION_TEST_H
2#define YAZE_TEST_EDITOR_INTEGRATION_TEST_H
3
4#define IMGUI_DEFINE_MATH_OPERATORS
5
6#include "imgui/imgui.h"
7#include "app/editor/editor.h"
8#include "app/rom.h"
10#include "app/core/window.h"
12
13#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
14#include "imgui_test_engine/imgui_te_context.h"
15#include "imgui_test_engine/imgui_te_engine.h"
16#endif
17
18namespace yaze {
19namespace test {
20
37 public:
40
41 // Initialize the test environment
42 absl::Status Initialize();
43
44 // Run the test
45 int RunTest();
46
47#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
48 // Register tests for a specific editor
49 virtual void RegisterTests(ImGuiTestEngine* engine) = 0;
50#else
51 // Default implementation when ImGui Test Engine is disabled
52 virtual void RegisterTests(void* engine) {}
53#endif
54
55 // Update the test environment
56 virtual absl::Status Update();
57
58 protected:
59
60 // Helper methods for testing with a ROM
61 absl::Status LoadTestRom(const std::string& filename);
62 absl::Status SaveTestRom(const std::string& filename);
63
64 // Helper methods for testing with a specific editor
65 absl::Status TestEditorInitialize(editor::Editor* editor);
66 absl::Status TestEditorLoad(editor::Editor* editor);
67 absl::Status TestEditorSave(editor::Editor* editor);
68 absl::Status TestEditorUpdate(editor::Editor* editor);
69 absl::Status TestEditorCut(editor::Editor* editor);
70 absl::Status TestEditorCopy(editor::Editor* editor);
71 absl::Status TestEditorPaste(editor::Editor* editor);
72 absl::Status TestEditorUndo(editor::Editor* editor);
73 absl::Status TestEditorRedo(editor::Editor* editor);
74 absl::Status TestEditorFind(editor::Editor* editor);
75 absl::Status TestEditorClear(editor::Editor* editor);
76
77 private:
79#ifdef YAZE_ENABLE_IMGUI_TEST_ENGINE
80 ImGuiTestEngine* engine_;
81 bool show_demo_window_;
82#endif
83 std::unique_ptr<Rom> test_rom_;
85 std::unique_ptr<gfx::SDL2Renderer> test_renderer_;
86};
87
88} // namespace test
89} // namespace yaze
90
91#endif // YAZE_TEST_EDITOR_INTEGRATION_TEST_H
Main controller for the application.
Definition controller.h:24
Interface for editor classes.
Definition editor.h:82
Base class for editor integration tests.
absl::Status TestEditorClear(editor::Editor *editor)
absl::Status TestEditorInitialize(editor::Editor *editor)
absl::Status SaveTestRom(const std::string &filename)
absl::Status TestEditorUpdate(editor::Editor *editor)
virtual void RegisterTests(void *engine)
absl::Status TestEditorSave(editor::Editor *editor)
absl::Status TestEditorLoad(editor::Editor *editor)
absl::Status TestEditorCut(editor::Editor *editor)
absl::Status TestEditorFind(editor::Editor *editor)
absl::Status TestEditorUndo(editor::Editor *editor)
absl::Status TestEditorPaste(editor::Editor *editor)
absl::Status TestEditorCopy(editor::Editor *editor)
absl::Status LoadTestRom(const std::string &filename)
std::unique_ptr< gfx::SDL2Renderer > test_renderer_
absl::Status TestEditorRedo(editor::Editor *editor)
Main namespace for the application.