55 lines
1.7 KiB
C++
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"));
|
|
}
|