#include #include "SandboxFrameBuilder.h" #include namespace { bool DrawDataContainsText( const XCEngine::UI::UIDrawData& drawData, const std::string& text) { for (const XCEngine::UI::UIDrawList& drawList : drawData.GetDrawLists()) { for (const XCEngine::UI::UIDrawCommand& command : drawList.GetCommands()) { if (command.type == XCEngine::UI::UIDrawCommandType::Text && command.text == text) { return true; } } } return false; } } // namespace TEST(NewEditorSandboxFrameTest, BuildsNativeEditorSandboxPacket) { XCEngine::NewEditor::SandboxFrameOptions options = {}; options.width = 1440.0f; options.height = 900.0f; options.timeSeconds = 1.0; const XCEngine::UI::UIDrawData drawData = XCEngine::NewEditor::BuildSandboxFrame(options); EXPECT_FALSE(drawData.Empty()); EXPECT_GT(drawData.GetTotalCommandCount(), 40u); EXPECT_TRUE(DrawDataContainsText(drawData, "XCUI Native Sandbox")); EXPECT_TRUE(DrawDataContainsText(drawData, "Hierarchy")); EXPECT_TRUE(DrawDataContainsText(drawData, "Scene")); EXPECT_TRUE(DrawDataContainsText(drawData, "Inspector")); EXPECT_TRUE(DrawDataContainsText(drawData, "No ImGui Host")); } TEST(NewEditorSandboxFrameTest, ClampsInvalidSizeToSafeFallback) { XCEngine::NewEditor::SandboxFrameOptions options = {}; options.width = 0.0f; options.height = -10.0f; const XCEngine::UI::UIDrawData drawData = XCEngine::NewEditor::BuildSandboxFrame(options); EXPECT_FALSE(drawData.Empty()); EXPECT_TRUE(DrawDataContainsText(drawData, "XCUI Native Sandbox")); }