#include "app_core/app_shutdown.h"
#include "test_harness.h"

namespace {

void shutdown_plan_preserves_legacy_cleanup_sequence(pp::tests::Harness& harness)
{
    const auto plan = pp::app::plan_app_shutdown();

    PP_EXPECT(harness, plan.save_ui_state);
    PP_EXPECT(harness, plan.terminate_stroke_preview_renderer);
    PP_EXPECT(harness, plan.stop_recording);
    PP_EXPECT(harness, plan.invalidate_textures);
    PP_EXPECT(harness, plan.invalidate_shaders);
    PP_EXPECT(harness, plan.unload_layouts);
    PP_EXPECT(harness, plan.destroy_ui_render_target);
    PP_EXPECT(harness, plan.destroy_face_plane);
    PP_EXPECT(harness, plan.release_panel_nodes);
    PP_EXPECT(harness, plan.clear_quick_mode_state);
}

} // namespace

int main()
{
    pp::tests::Harness harness;
    harness.run("shutdown plan preserves legacy cleanup sequence", shutdown_plan_preserves_legacy_cleanup_sequence);
    return harness.finish();
}
