Extend app frame planning to tick and resize
This commit is contained in:
@@ -974,10 +974,23 @@ if(TARGET pano_cli)
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-frame\".*\"surface\":\\{\"width\":960,\"height\":540\\}.*\"updateFrame\":true.*\"updateLayouts\":true.*\"refreshCanvasToolbar\":true.*\"drawCanvasStroke\":true.*\"drawVrUi\":true.*\"drawMainUi\":true.*\"resetRedraw\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_frame_idle_missing_canvas_smoke
|
||||
COMMAND pano_cli plan-app-frame --no-canvas --ui-hidden --vr-only)
|
||||
COMMAND pano_cli plan-app-frame --no-canvas --ui-hidden --vr-only --no-designer-layout)
|
||||
set_tests_properties(pano_cli_plan_app_frame_idle_missing_canvas_smoke PROPERTIES
|
||||
LABELS "app;integration;desktop-fast;fuzz"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-frame\".*\"updateFrame\":false.*\"drawCanvasStroke\":false.*\"drawVrUi\":false.*\"drawMainUi\":false.*\"resetRedraw\":true")
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-frame\".*\"updateFrame\":false.*\"tickDesignerLayout\":false.*\"tickMainLayout\":true.*\"drawCanvasStroke\":false.*\"drawVrUi\":false.*\"drawMainUi\":false.*\"resetRedraw\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_frame_resize_smoke
|
||||
COMMAND pano_cli plan-app-frame --resize-width 1024.9 --resize-height 512.1)
|
||||
set_tests_properties(pano_cli_plan_app_frame_resize_smoke PROPERTIES
|
||||
LABELS "app;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-frame\".*\"resize\":\\{\"width\":1024.9,\"height\":512.1,\"renderTargetWidth\":1024,\"renderTargetHeight\":512,\"recreateUiRenderTarget\":true,\"requestRedraw\":true\\}")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_frame_rejects_bad_resize
|
||||
COMMAND pano_cli plan-app-frame --bad-resize)
|
||||
set_tests_properties(pano_cli_plan_app_frame_rejects_bad_resize PROPERTIES
|
||||
LABELS "app;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-app-frame\".*\"message\":\"resize dimensions")
|
||||
|
||||
add_test(NAME pano_cli_plan_app_shutdown_smoke
|
||||
COMMAND pano_cli plan-app-shutdown)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#include "app_core/app_frame.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
#include <cmath>
|
||||
|
||||
namespace {
|
||||
|
||||
void initial_surface_matches_legacy_default(pp::tests::Harness& harness)
|
||||
@@ -63,6 +65,42 @@ void draw_plan_respects_vr_visibility_modes(pp::tests::Harness& harness)
|
||||
PP_EXPECT(harness, !vr_only.draw_main_ui);
|
||||
}
|
||||
|
||||
void tick_plan_selects_available_layouts(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto both = pp::app::plan_app_frame_tick(true, true);
|
||||
const auto main_only = pp::app::plan_app_frame_tick(false, true);
|
||||
const auto none = pp::app::plan_app_frame_tick(false, false);
|
||||
|
||||
PP_EXPECT(harness, both.tick_designer_layout);
|
||||
PP_EXPECT(harness, both.tick_main_layout);
|
||||
PP_EXPECT(harness, !main_only.tick_designer_layout);
|
||||
PP_EXPECT(harness, main_only.tick_main_layout);
|
||||
PP_EXPECT(harness, !none.tick_designer_layout);
|
||||
PP_EXPECT(harness, !none.tick_main_layout);
|
||||
}
|
||||
|
||||
void resize_plan_projects_render_target_and_redraw(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_app_resize(1280.9F, 720.1F);
|
||||
|
||||
PP_EXPECT(harness, plan);
|
||||
if (plan) {
|
||||
PP_EXPECT(harness, plan.value().width == 1280.9F);
|
||||
PP_EXPECT(harness, plan.value().height == 720.1F);
|
||||
PP_EXPECT(harness, plan.value().render_target_width == 1280);
|
||||
PP_EXPECT(harness, plan.value().render_target_height == 720);
|
||||
PP_EXPECT(harness, plan.value().recreate_ui_render_target);
|
||||
PP_EXPECT(harness, plan.value().request_redraw);
|
||||
}
|
||||
}
|
||||
|
||||
void resize_plan_rejects_invalid_dimensions(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(harness, !pp::app::plan_app_resize(0.0F, 720.0F));
|
||||
PP_EXPECT(harness, !pp::app::plan_app_resize(1280.0F, -1.0F));
|
||||
PP_EXPECT(harness, !pp::app::plan_app_resize(std::nanf(""), 720.0F));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
int main()
|
||||
@@ -74,5 +112,8 @@ int main()
|
||||
harness.run("draw plan selects canvas and UI passes", draw_plan_selects_canvas_and_ui_passes);
|
||||
harness.run("draw plan skips missing canvas document", draw_plan_skips_missing_canvas_document);
|
||||
harness.run("draw plan respects VR visibility modes", draw_plan_respects_vr_visibility_modes);
|
||||
harness.run("tick plan selects available layouts", tick_plan_selects_available_layouts);
|
||||
harness.run("resize plan projects render target and redraw", resize_plan_projects_render_target_and_redraw);
|
||||
harness.run("resize plan rejects invalid dimensions", resize_plan_rejects_invalid_dimensions);
|
||||
return harness.finish();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user