Files
XCEngine/tests/NewEditor/test_sandbox_frame_builder.cpp

55 lines
1.7 KiB
C++

#include <gtest/gtest.h>
#include "SandboxFrameBuilder.h"
#include <string>
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"));
}