Split legacy ImGui shell out of Application
This commit is contained in:
@@ -319,4 +319,90 @@ TEST(ApplicationShellCommandBindingsTest, HostedPreviewRegistrationGuardsAllowTe
|
||||
EXPECT_FALSE(Application::HasHostedPreviewPublishedTexture(registration));
|
||||
}
|
||||
|
||||
TEST(ApplicationShellCommandBindingsTest, NativeHostedPreviewConsumptionLeavesHostedPathInDirectAppendMode) {
|
||||
const auto consumption = Application::ResolveNativeHostedPreviewConsumption(
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
"Pending",
|
||||
"Waiting");
|
||||
|
||||
EXPECT_EQ(
|
||||
consumption.surfaceState,
|
||||
Application::NativeHostedPreviewSurfaceState::Disabled);
|
||||
EXPECT_FALSE(consumption.queueRuntimeFrame);
|
||||
EXPECT_TRUE(consumption.appendRuntimeDrawDataToShell);
|
||||
EXPECT_FALSE(consumption.showSurfaceImage);
|
||||
EXPECT_TRUE(consumption.drawRuntimeDebugRects);
|
||||
EXPECT_TRUE(consumption.placeholderTitle.empty());
|
||||
EXPECT_TRUE(consumption.placeholderSubtitle.empty());
|
||||
EXPECT_EQ(
|
||||
Application::ComposeNativeHostedPreviewStatusLine(consumption, "Runtime status"),
|
||||
"Runtime status");
|
||||
}
|
||||
|
||||
TEST(ApplicationShellCommandBindingsTest, NativeHostedPreviewConsumptionQueuesFrameWhileAwaitingFirstSurfacePublish) {
|
||||
const auto consumption = Application::ResolveNativeHostedPreviewConsumption(
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
"Native XCUI preview pending",
|
||||
"Waiting for queued native preview output to publish into the shell card.");
|
||||
|
||||
EXPECT_EQ(
|
||||
consumption.surfaceState,
|
||||
Application::NativeHostedPreviewSurfaceState::AwaitingSubmit);
|
||||
EXPECT_TRUE(consumption.queueRuntimeFrame);
|
||||
EXPECT_FALSE(consumption.appendRuntimeDrawDataToShell);
|
||||
EXPECT_FALSE(consumption.showSurfaceImage);
|
||||
EXPECT_FALSE(consumption.drawRuntimeDebugRects);
|
||||
EXPECT_EQ(consumption.placeholderTitle, "Native XCUI preview pending");
|
||||
EXPECT_EQ(
|
||||
consumption.placeholderSubtitle,
|
||||
"Waiting for queued native preview output to publish into the shell card.");
|
||||
EXPECT_EQ(
|
||||
Application::ComposeNativeHostedPreviewStatusLine(consumption, "Runtime status"),
|
||||
"Native surface awaiting submit | Runtime status");
|
||||
}
|
||||
|
||||
TEST(ApplicationShellCommandBindingsTest, NativeHostedPreviewConsumptionDistinguishesWarmingFromLiveSurfaceStates) {
|
||||
const auto warming = Application::ResolveNativeHostedPreviewConsumption(
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
"Native layout preview pending",
|
||||
"Waiting for queued native preview output to publish into the layout card.");
|
||||
const auto live = Application::ResolveNativeHostedPreviewConsumption(
|
||||
true,
|
||||
true,
|
||||
true,
|
||||
"Native layout preview pending",
|
||||
"Waiting for queued native preview output to publish into the layout card.");
|
||||
|
||||
EXPECT_EQ(
|
||||
warming.surfaceState,
|
||||
Application::NativeHostedPreviewSurfaceState::Warming);
|
||||
EXPECT_TRUE(warming.queueRuntimeFrame);
|
||||
EXPECT_FALSE(warming.appendRuntimeDrawDataToShell);
|
||||
EXPECT_FALSE(warming.showSurfaceImage);
|
||||
EXPECT_FALSE(warming.drawRuntimeDebugRects);
|
||||
EXPECT_EQ(warming.placeholderTitle, "Native layout preview pending");
|
||||
EXPECT_EQ(
|
||||
Application::ComposeNativeHostedPreviewStatusLine(warming, "Layout status"),
|
||||
"Native surface warming | Layout status");
|
||||
|
||||
EXPECT_EQ(
|
||||
live.surfaceState,
|
||||
Application::NativeHostedPreviewSurfaceState::Live);
|
||||
EXPECT_TRUE(live.queueRuntimeFrame);
|
||||
EXPECT_FALSE(live.appendRuntimeDrawDataToShell);
|
||||
EXPECT_TRUE(live.showSurfaceImage);
|
||||
EXPECT_TRUE(live.drawRuntimeDebugRects);
|
||||
EXPECT_TRUE(live.placeholderTitle.empty());
|
||||
EXPECT_TRUE(live.placeholderSubtitle.empty());
|
||||
EXPECT_EQ(
|
||||
Application::ComposeNativeHostedPreviewStatusLine(live, "Layout status"),
|
||||
"Native surface live | Layout status");
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user