Replace new_editor with native XCUI shell sandbox

This commit is contained in:
2026-04-05 20:46:24 +08:00
parent 18f3f9f227
commit ba6c8eaae5
108 changed files with 2041 additions and 24403 deletions

View File

@@ -0,0 +1,54 @@
#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"));
}