#include "app_core/document_canvas.h" #include "test_harness.h" #include namespace { void clear_plan_records_legacy_canvas_effects(pp::tests::Harness& harness) { const auto plan = pp::app::plan_document_canvas_clear(true, 0.0F, 0.1F, 0.2F, 0.3F); PP_EXPECT(harness, plan); if (plan) { PP_EXPECT(harness, plan.value().clears_canvas); PP_EXPECT(harness, plan.value().records_undo); PP_EXPECT(harness, plan.value().marks_unsaved); PP_EXPECT(harness, !plan.value().no_op); PP_EXPECT(harness, plan.value().r == 0.0F); PP_EXPECT(harness, plan.value().g == 0.1F); PP_EXPECT(harness, plan.value().b == 0.2F); PP_EXPECT(harness, plan.value().a == 0.3F); } } void clear_plan_noops_without_canvas(pp::tests::Harness& harness) { const auto plan = pp::app::plan_document_canvas_clear(false); PP_EXPECT(harness, plan); if (plan) { PP_EXPECT(harness, !plan.value().clears_canvas); PP_EXPECT(harness, !plan.value().records_undo); PP_EXPECT(harness, !plan.value().marks_unsaved); PP_EXPECT(harness, plan.value().no_op); } } void clear_plan_rejects_bad_color_channels(pp::tests::Harness& harness) { PP_EXPECT(harness, !pp::app::plan_document_canvas_clear(true, -0.01F, 0.0F, 0.0F, 0.0F)); PP_EXPECT(harness, !pp::app::plan_document_canvas_clear(true, 0.0F, 1.01F, 0.0F, 0.0F)); PP_EXPECT(harness, !pp::app::plan_document_canvas_clear( true, 0.0F, 0.0F, std::numeric_limits::infinity(), 0.0F)); } } // namespace int main() { pp::tests::Harness harness; harness.run("clear plan records legacy canvas effects", clear_plan_records_legacy_canvas_effects); harness.run("clear plan noops without canvas", clear_plan_noops_without_canvas); harness.run("clear plan rejects bad color channels", clear_plan_rejects_bad_color_channels); return harness.finish(); }