Extract about menu action planning
This commit is contained in:
@@ -268,6 +268,16 @@ add_test(NAME pp_ui_core_layout_xml_tests COMMAND pp_ui_core_layout_xml_tests)
|
||||
set_tests_properties(pp_ui_core_layout_xml_tests PROPERTIES
|
||||
LABELS "ui;desktop-fast;fuzz")
|
||||
|
||||
add_executable(pp_app_core_about_menu_tests
|
||||
app_core/about_menu_tests.cpp)
|
||||
target_link_libraries(pp_app_core_about_menu_tests PRIVATE
|
||||
pp_app_core
|
||||
pp_test_harness)
|
||||
|
||||
add_test(NAME pp_app_core_about_menu_tests COMMAND pp_app_core_about_menu_tests)
|
||||
set_tests_properties(pp_app_core_about_menu_tests PROPERTIES
|
||||
LABELS "app;ui;desktop-fast;fuzz")
|
||||
|
||||
add_executable(pp_app_core_brush_ui_tests
|
||||
app_core/brush_ui_tests.cpp)
|
||||
target_link_libraries(pp_app_core_brush_ui_tests PRIVATE
|
||||
@@ -851,6 +861,30 @@ if(TARGET pano_cli)
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
add_test(NAME pano_cli_plan_about_menu_news_smoke
|
||||
COMMAND pano_cli plan-about-menu --command news --version-major 2 --version-minor 5 --version-fix 7)
|
||||
set_tests_properties(pano_cli_plan_about_menu_news_smoke PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-about-menu\".*\"command\":\"news\".*\"versionMajor\":2.*\"action\":\"show-whats-new-dialog\".*\"label\":\"What's new in 2.5.7\\?\".*\"closesRootPopup\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_about_menu_performance_no_canvas_smoke
|
||||
COMMAND pano_cli plan-about-menu --command performance --no-canvas)
|
||||
set_tests_properties(pano_cli_plan_about_menu_performance_no_canvas_smoke PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-about-menu\".*\"hasCanvas\":false.*\"action\":\"no-op-unavailable\".*\"label\":\"Performance test \\(No canvas\\)\".*\"closesRootPopup\":false.*\"requiresCanvas\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_about_menu_crash_disabled_smoke
|
||||
COMMAND pano_cli plan-about-menu --command crash --no-diagnostics)
|
||||
set_tests_properties(pano_cli_plan_about_menu_crash_disabled_smoke PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-about-menu\".*\"diagnosticsAvailable\":false.*\"action\":\"no-op-unavailable\".*\"closesRootPopup\":false")
|
||||
|
||||
add_test(NAME pano_cli_plan_about_menu_rejects_unknown
|
||||
COMMAND pano_cli plan-about-menu --command missing)
|
||||
set_tests_properties(pano_cli_plan_about_menu_rejects_unknown PROPERTIES
|
||||
LABELS "app;ui;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
add_test(NAME pano_cli_plan_app_status_smoke
|
||||
COMMAND pano_cli plan-app-status
|
||||
--doc-name demo
|
||||
|
||||
81
tests/app_core/about_menu_tests.cpp
Normal file
81
tests/app_core/about_menu_tests.cpp
Normal file
@@ -0,0 +1,81 @@
|
||||
#include "app_core/about_menu.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void about_menu_maps_user_facing_dialog_actions(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto help = pp::app::plan_about_menu_command(pp::app::AboutMenuCommand::help_guide, 1, 2, 3);
|
||||
const auto about = pp::app::plan_about_menu_command(pp::app::AboutMenuCommand::about_app, 1, 2, 3);
|
||||
const auto news = pp::app::plan_about_menu_command(pp::app::AboutMenuCommand::whats_new, 1, 2, 3);
|
||||
|
||||
PP_EXPECT(harness, help.action == pp::app::AboutMenuAction::show_user_manual);
|
||||
PP_EXPECT(harness, help.label == "Help Guide");
|
||||
PP_EXPECT(harness, help.closes_root_popup);
|
||||
PP_EXPECT(harness, about.action == pp::app::AboutMenuAction::show_about_dialog);
|
||||
PP_EXPECT(harness, about.label == "About PanoPainter");
|
||||
PP_EXPECT(harness, news.action == pp::app::AboutMenuAction::show_whats_new_dialog);
|
||||
PP_EXPECT(harness, news.label == "What's new in 1.2.3?");
|
||||
}
|
||||
|
||||
void about_menu_gates_diagnostic_crash_action(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto enabled = pp::app::plan_about_menu_command(
|
||||
pp::app::AboutMenuCommand::induce_crash,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
true);
|
||||
const auto disabled = pp::app::plan_about_menu_command(
|
||||
pp::app::AboutMenuCommand::induce_crash,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
false);
|
||||
|
||||
PP_EXPECT(harness, enabled.action == pp::app::AboutMenuAction::trigger_crash_test);
|
||||
PP_EXPECT(harness, enabled.closes_root_popup);
|
||||
PP_EXPECT(harness, disabled.action == pp::app::AboutMenuAction::no_op_unavailable);
|
||||
PP_EXPECT(harness, !disabled.closes_root_popup);
|
||||
}
|
||||
|
||||
void about_menu_performance_test_declares_workload_and_canvas_requirement(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto available = pp::app::plan_about_menu_command(
|
||||
pp::app::AboutMenuCommand::performance_test,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
true,
|
||||
true);
|
||||
const auto no_canvas = pp::app::plan_about_menu_command(
|
||||
pp::app::AboutMenuCommand::performance_test,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
true,
|
||||
false);
|
||||
|
||||
PP_EXPECT(harness, available.action == pp::app::AboutMenuAction::run_performance_test);
|
||||
PP_EXPECT(harness, available.requires_canvas);
|
||||
PP_EXPECT(harness, available.performance_iterations == 100);
|
||||
PP_EXPECT(harness, available.performance_updates_per_iteration == 10);
|
||||
PP_EXPECT(harness, available.closes_root_popup);
|
||||
PP_EXPECT(harness, no_canvas.action == pp::app::AboutMenuAction::no_op_unavailable);
|
||||
PP_EXPECT(harness, no_canvas.label == "Performance test (No canvas)");
|
||||
PP_EXPECT(harness, no_canvas.requires_canvas);
|
||||
PP_EXPECT(harness, !no_canvas.closes_root_popup);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
pp::tests::Harness harness;
|
||||
harness.run("about menu maps user facing dialog actions", about_menu_maps_user_facing_dialog_actions);
|
||||
harness.run("about menu gates diagnostic crash action", about_menu_gates_diagnostic_crash_action);
|
||||
harness.run(
|
||||
"about menu performance test declares workload and canvas requirement",
|
||||
about_menu_performance_test_declares_workload_and_canvas_requirement);
|
||||
return harness.finish();
|
||||
}
|
||||
Reference in New Issue
Block a user