yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
dungeon_object_rendering_e2e_tests.cc File Reference

End-to-end tests for dungeon object rendering system using imgui test engine. More...

#include <gtest/gtest.h>
#include "imgui.h"
#include "imgui_test_engine/imgui_te_context.h"
#include "imgui_test_engine/imgui_te_engine.h"
#include "imgui_test_engine/imgui_te_ui.h"
#include "app/controller.h"
#include "app/platform/window.h"
#include "app/editor/dungeon/dungeon_editor_v2.h"
#include "app/rom.h"
#include "zelda3/dungeon/room.h"
#include "zelda3/dungeon/room_object.h"
#include "test_utils.h"

Go to the source code of this file.

Classes

class  yaze::test::DungeonObjectRenderingE2ETests
 Comprehensive E2E test fixture for dungeon object rendering system. More...
 

Namespaces

namespace  yaze
 Main namespace for the application.
 
namespace  yaze::test
 

Macros

#define IMGUI_DEFINE_MATH_OPERATORS
 

Functions

void yaze::test::RegisterObjectBrowserTests_SelectObject (DungeonObjectRenderingE2ETests *self)
 Test: Select object from browser.
 
void yaze::test::RegisterObjectBrowserTests_SearchFilter (DungeonObjectRenderingE2ETests *self)
 Test: Search and filter objects.
 
void yaze::test::RegisterObjectPlacementTests_SnapToGrid (DungeonObjectRenderingE2ETests *self)
 Test: Place object with snap to grid.
 
void yaze::test::RegisterObjectPlacementTests_MultipleObjects (DungeonObjectRenderingE2ETests *self)
 Test: Place multiple objects sequentially.
 
void yaze::test::RegisterObjectSelectionTests_MultiSelect (DungeonObjectRenderingE2ETests *self)
 Test: Multi-select objects with Ctrl+drag.
 
void yaze::test::RegisterObjectSelectionTests_MoveObject (DungeonObjectRenderingE2ETests *self)
 Test: Move selected object with drag.
 
void yaze::test::RegisterObjectSelectionTests_DeleteObject (DungeonObjectRenderingE2ETests *self)
 Test: Delete selected object.
 
void yaze::test::RegisterLayerManagementTests_PlaceOnLayers (DungeonObjectRenderingE2ETests *self)
 Test: Place objects on different layers.
 
void yaze::test::RegisterLayerManagementTests_RenderingOrder (DungeonObjectRenderingE2ETests *self)
 Test: Layer rendering order.
 
void yaze::test::RegisterSaveWorkflowTests_RoundTrip (DungeonObjectRenderingE2ETests *self)
 Test: Save and reload room (round-trip)
 
void yaze::test::RegisterSaveWorkflowTests_MultipleTypes (DungeonObjectRenderingE2ETests *self)
 Test: Save with multiple object types.
 
void yaze::test::RegisterRenderingQualityTests_Palettes (DungeonObjectRenderingE2ETests *self)
 Test: Render with different palettes.
 
void yaze::test::RegisterRenderingQualityTests_ComplexRoom (DungeonObjectRenderingE2ETests *self)
 Test: Complex room scenario rendering.
 
 yaze::test::TEST_F (DungeonObjectRenderingE2ETests, RunAllTests)
 

Detailed Description

End-to-end tests for dungeon object rendering system using imgui test engine.

These tests orchestrate complete user workflows for the dungeon editor, validating:

  • Object browser and selection
  • Object placement on canvas
  • Object manipulation (move, delete, edit)
  • Layer management
  • Save/load workflows
  • Rendering quality across different scenarios

Created: October 4, 2025 Related: docs/dungeon_editing_implementation_plan.md


UPDATE NOTICE (October 2025): Tests need rewrite for DungeonEditorV2

These tests were written for the old monolithic DungeonEditor but need to be updated for the new DungeonEditorV2 card-based architecture:

OLD ARCHITECTURE:

  • Single "Dungeon Editor" window with tabs
  • Object Selector, Canvas, Layers all in one window
  • Monolithic UI structure

NEW ARCHITECTURE (DungeonEditorV2):

  • Independent EditorCard windows:
    • "Dungeon Controls" - main control panel
    • "Rooms List" - room selector
    • "Room Matrix" - visual room navigation
    • "Object Editor" - unified object placement/editing
    • "Palette Editor" - palette management
    • Individual room cards (e.g., "Room 0x00###RoomCard0")
  • Per-room layer visibility settings
  • Dockable, closable independent windows

REQUIRED UPDATES:

  1. Change window references from "Dungeon Editor" to appropriate card names
  2. Update tab navigation to card window focus
  3. Update object placement workflow for new ObjectEditorCard
  4. Update layer controls for per-room settings
  5. Update room selection to work with new room cards

Current Status: Tests compile but may fail due to UI structure changes. See: test/e2e/dungeon_editor_smoke_test.cc for updated test patterns.

Definition in file dungeon_object_rendering_e2e_tests.cc.

Macro Definition Documentation

◆ IMGUI_DEFINE_MATH_OPERATORS

#define IMGUI_DEFINE_MATH_OPERATORS

Definition at line 50 of file dungeon_object_rendering_e2e_tests.cc.