#include "app_core/app_frame.h" #include "test_harness.h" namespace { void initial_surface_matches_legacy_default(pp::tests::Harness& harness) { const auto plan = pp::app::plan_app_initial_surface(); PP_EXPECT(harness, plan.width == 960.0F); PP_EXPECT(harness, plan.height == 540.0F); } void update_plan_skips_idle_frames(pp::tests::Harness& harness) { const auto plan = pp::app::plan_app_frame_update(false, false); PP_EXPECT(harness, !plan.update_frame); PP_EXPECT(harness, !plan.update_layouts); PP_EXPECT(harness, !plan.refresh_canvas_toolbar); } void update_plan_refreshes_redraw_or_animated_frames(pp::tests::Harness& harness) { const auto redraw = pp::app::plan_app_frame_update(true, false); const auto animated = pp::app::plan_app_frame_update(false, true); PP_EXPECT(harness, redraw.update_frame); PP_EXPECT(harness, redraw.update_layouts); PP_EXPECT(harness, redraw.refresh_canvas_toolbar); PP_EXPECT(harness, animated.update_frame); PP_EXPECT(harness, animated.update_layouts); PP_EXPECT(harness, animated.refresh_canvas_toolbar); } void draw_plan_selects_canvas_and_ui_passes(pp::tests::Harness& harness) { const auto plan = pp::app::plan_app_frame_draw(true, true, true, true, false); PP_EXPECT(harness, plan.draw_canvas_stroke); PP_EXPECT(harness, plan.draw_vr_ui); PP_EXPECT(harness, plan.draw_main_ui); PP_EXPECT(harness, plan.reset_redraw); } void draw_plan_skips_missing_canvas_document(pp::tests::Harness& harness) { const auto missing_node = pp::app::plan_app_frame_draw(false, true, false, true, false); const auto missing_document = pp::app::plan_app_frame_draw(true, false, false, true, false); PP_EXPECT(harness, !missing_node.draw_canvas_stroke); PP_EXPECT(harness, !missing_document.draw_canvas_stroke); } void draw_plan_respects_vr_visibility_modes(pp::tests::Harness& harness) { const auto hidden_vr_ui = pp::app::plan_app_frame_draw(true, true, true, false, false); const auto vr_only = pp::app::plan_app_frame_draw(true, true, false, true, true); PP_EXPECT(harness, !hidden_vr_ui.draw_vr_ui); PP_EXPECT(harness, hidden_vr_ui.draw_main_ui); PP_EXPECT(harness, !vr_only.draw_vr_ui); PP_EXPECT(harness, !vr_only.draw_main_ui); } } // namespace int main() { pp::tests::Harness harness; harness.run("initial surface matches legacy default", initial_surface_matches_legacy_default); harness.run("update plan skips idle frames", update_plan_skips_idle_frames); harness.run("update plan refreshes redraw or animated frames", update_plan_refreshes_redraw_or_animated_frames); 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); return harness.finish(); }