Extract image import route planning
This commit is contained in:
@@ -338,6 +338,16 @@ add_test(NAME pp_app_core_document_canvas_tests COMMAND pp_app_core_document_can
|
||||
set_tests_properties(pp_app_core_document_canvas_tests PROPERTIES
|
||||
LABELS "app;document;desktop-fast;fuzz")
|
||||
|
||||
add_executable(pp_app_core_document_import_tests
|
||||
app_core/document_import_tests.cpp)
|
||||
target_link_libraries(pp_app_core_document_import_tests PRIVATE
|
||||
pp_app_core
|
||||
pp_test_harness)
|
||||
|
||||
add_test(NAME pp_app_core_document_import_tests COMMAND pp_app_core_document_import_tests)
|
||||
set_tests_properties(pp_app_core_document_import_tests PROPERTIES
|
||||
LABELS "app;document;desktop-fast;fuzz")
|
||||
|
||||
add_executable(pp_app_core_document_export_tests
|
||||
app_core/document_export_tests.cpp)
|
||||
target_link_libraries(pp_app_core_document_export_tests PRIVATE
|
||||
@@ -788,6 +798,24 @@ if(TARGET pano_cli)
|
||||
LABELS "app;document;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
add_test(NAME pano_cli_plan_image_import_wide_equirect_smoke
|
||||
COMMAND pano_cli plan-image-import --width 4096 --height 2048)
|
||||
set_tests_properties(pano_cli_plan_image_import_wide_equirect_smoke PROPERTIES
|
||||
LABELS "app;document;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-image-import\".*\"width\":4096.*\"height\":2048.*\"action\":\"import-equirectangular\".*\"importsEquirectangular\":true.*\"entersTransformMode\":false")
|
||||
|
||||
add_test(NAME pano_cli_plan_image_import_transform_smoke
|
||||
COMMAND pano_cli plan-image-import --width 1024 --height 1024)
|
||||
set_tests_properties(pano_cli_plan_image_import_transform_smoke PROPERTIES
|
||||
LABELS "app;document;integration;desktop-fast"
|
||||
PASS_REGULAR_EXPRESSION "\"command\":\"plan-image-import\".*\"width\":1024.*\"height\":1024.*\"action\":\"place-transform\".*\"importsEquirectangular\":false.*\"entersTransformMode\":true")
|
||||
|
||||
add_test(NAME pano_cli_plan_image_import_rejects_invalid_dimensions
|
||||
COMMAND pano_cli plan-image-import --width 0 --height 1024)
|
||||
set_tests_properties(pano_cli_plan_image_import_rejects_invalid_dimensions PROPERTIES
|
||||
LABELS "app;document;integration;desktop-fast;fuzz"
|
||||
WILL_FAIL TRUE)
|
||||
|
||||
add_test(NAME pano_cli_plan_layer_rename_smoke
|
||||
COMMAND pano_cli plan-layer-rename --old-name Base --new-name Paint)
|
||||
set_tests_properties(pano_cli_plan_layer_rename_smoke PROPERTIES
|
||||
|
||||
56
tests/app_core/document_import_tests.cpp
Normal file
56
tests/app_core/document_import_tests.cpp
Normal file
@@ -0,0 +1,56 @@
|
||||
#include "app_core/document_import.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void import_plan_detects_wide_equirectangular_images(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_document_image_import(4096, 2048);
|
||||
PP_EXPECT(harness, plan);
|
||||
if (plan) {
|
||||
PP_EXPECT(harness, plan.value().action == pp::app::DocumentImageImportAction::import_equirectangular);
|
||||
PP_EXPECT(harness, plan.value().imports_equirectangular);
|
||||
PP_EXPECT(harness, !plan.value().enters_transform_mode);
|
||||
}
|
||||
}
|
||||
|
||||
void import_plan_detects_legacy_vertical_cube_strips(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_document_image_import(512, 3072);
|
||||
PP_EXPECT(harness, plan);
|
||||
if (plan) {
|
||||
PP_EXPECT(harness, plan.value().action == pp::app::DocumentImageImportAction::import_equirectangular);
|
||||
PP_EXPECT(harness, plan.value().imports_equirectangular);
|
||||
PP_EXPECT(harness, !plan.value().enters_transform_mode);
|
||||
}
|
||||
}
|
||||
|
||||
void import_plan_places_regular_images_as_transform_sources(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto plan = pp::app::plan_document_image_import(1024, 1024);
|
||||
PP_EXPECT(harness, plan);
|
||||
if (plan) {
|
||||
PP_EXPECT(harness, plan.value().action == pp::app::DocumentImageImportAction::place_transform);
|
||||
PP_EXPECT(harness, !plan.value().imports_equirectangular);
|
||||
PP_EXPECT(harness, plan.value().enters_transform_mode);
|
||||
}
|
||||
}
|
||||
|
||||
void import_plan_rejects_invalid_dimensions(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(harness, !pp::app::plan_document_image_import(0, 1024));
|
||||
PP_EXPECT(harness, !pp::app::plan_document_image_import(1024, 0));
|
||||
PP_EXPECT(harness, !pp::app::plan_document_image_import(-1, 1024));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
pp::tests::Harness harness;
|
||||
harness.run("import plan detects wide equirectangular images", import_plan_detects_wide_equirectangular_images);
|
||||
harness.run("import plan detects legacy vertical cube strips", import_plan_detects_legacy_vertical_cube_strips);
|
||||
harness.run("import plan places regular images as transform sources", import_plan_places_regular_images_as_transform_sources);
|
||||
harness.run("import plan rejects invalid dimensions", import_plan_rejects_invalid_dimensions);
|
||||
return harness.finish();
|
||||
}
|
||||
Reference in New Issue
Block a user