Plan app export targets in app core
This commit is contained in:
60
tests/app_core/document_export_tests.cpp
Normal file
60
tests/app_core/document_export_tests.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "app_core/document_export.h"
|
||||
#include "test_harness.h"
|
||||
|
||||
namespace {
|
||||
|
||||
void equirectangular_export_builds_file_target(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto target = pp::app::make_document_export_file_target("D:/Paint", "demo", ".png");
|
||||
PP_EXPECT(harness, target);
|
||||
PP_EXPECT(harness, target.value().path == "D:/Paint/demo.png");
|
||||
PP_EXPECT(harness, target.value().suggested_name == "demo.png");
|
||||
}
|
||||
|
||||
void export_file_target_rejects_invalid_input(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto missing_name = pp::app::make_document_export_file_target("D:/Paint", "", ".jpg");
|
||||
const auto missing_extension = pp::app::make_document_export_file_target("D:/Paint", "demo", "");
|
||||
PP_EXPECT(harness, !missing_name);
|
||||
PP_EXPECT(harness, missing_name.status().code == pp::foundation::StatusCode::invalid_argument);
|
||||
PP_EXPECT(harness, !missing_extension);
|
||||
PP_EXPECT(harness, missing_extension.status().code == pp::foundation::StatusCode::invalid_argument);
|
||||
}
|
||||
|
||||
void collection_export_builds_directory_and_stem(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto target = pp::app::make_document_export_collection_target("D:/Paint", "demo", "_layers");
|
||||
PP_EXPECT(harness, target);
|
||||
PP_EXPECT(harness, target.value().directory == "D:/Paint/demo_layers");
|
||||
PP_EXPECT(harness, target.value().stem_path == "D:/Paint/demo_layers/demo");
|
||||
}
|
||||
|
||||
void picked_directory_export_builds_stem(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto target = pp::app::make_document_export_stem_target("D:/Exports", "demo");
|
||||
PP_EXPECT(harness, target);
|
||||
PP_EXPECT(harness, target.value().stem_path == "D:/Exports/demo");
|
||||
}
|
||||
|
||||
void video_export_builds_suggested_name(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto timelapse = pp::app::make_document_export_suggested_name("demo", "-timelapse");
|
||||
const auto animation = pp::app::make_document_export_suggested_name("demo", "-animation");
|
||||
PP_EXPECT(harness, timelapse);
|
||||
PP_EXPECT(harness, animation);
|
||||
PP_EXPECT(harness, timelapse.value().name == "demo-timelapse");
|
||||
PP_EXPECT(harness, animation.value().name == "demo-animation");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
pp::tests::Harness harness;
|
||||
harness.run("equirectangular export builds file target", equirectangular_export_builds_file_target);
|
||||
harness.run("export file target rejects invalid input", export_file_target_rejects_invalid_input);
|
||||
harness.run("collection export builds directory and stem", collection_export_builds_directory_and_stem);
|
||||
harness.run("picked directory export builds stem", picked_directory_export_builds_stem);
|
||||
harness.run("video export builds suggested name", video_export_builds_suggested_name);
|
||||
return harness.finish();
|
||||
}
|
||||
Reference in New Issue
Block a user