Move layout reload policy into platform api

This commit is contained in:
2026-06-04 18:49:48 +02:00
parent 7aadd1041a
commit 08d8c1e82c
9 changed files with 118 additions and 14 deletions

View File

@@ -1,8 +1,11 @@
#include "test_harness.h"
#include "platform_api/asset_file_load_policy.h"
#include "platform_api/network_tls_policy.h"
#include "platform_api/platform_services.h"
#include <filesystem>
#include <fstream>
#include <string>
#include <string_view>
#include <utility>
@@ -757,6 +760,36 @@ void default_network_tls_policy_matches_build_target(pp::tests::Harness& harness
#endif
}
void asset_file_load_policy_preserves_platform_reload_behavior(pp::tests::Harness& harness)
{
const auto temp_path = std::filesystem::temp_directory_path()
/ "panopainter-platform-api-file-policy.xml";
{
std::ofstream file(temp_path);
file << "<layouts />";
}
const auto first_load = pp::platform::plan_asset_file_load(
temp_path.string(),
false,
0);
PP_EXPECT(harness, first_load.should_read_file);
PP_EXPECT(harness, first_load.skipped_load_result);
const auto repeated_load = pp::platform::plan_asset_file_load(
temp_path.string(),
true,
first_load.last_write_time);
PP_EXPECT(harness, !repeated_load.should_read_file);
#if defined(_WIN32) || defined(__OSX__)
PP_EXPECT(harness, !repeated_load.skipped_load_result);
#else
PP_EXPECT(harness, repeated_load.skipped_load_result);
#endif
std::filesystem::remove(temp_path);
}
void platform_services_dispatch_ppbr_export_directory_policy(pp::tests::Harness& harness)
{
FakePlatformServices fake("unused");
@@ -833,6 +866,9 @@ int main()
platform_services_dispatch_document_export_collection_policy);
harness.run("platform services dispatch network tls policy", platform_services_dispatch_network_tls_policy);
harness.run("default network tls policy matches build target", default_network_tls_policy_matches_build_target);
harness.run(
"asset file load policy preserves platform reload behavior",
asset_file_load_policy_preserves_platform_reload_behavior);
harness.run(
"platform services dispatch ppbr export directory policy",
platform_services_dispatch_ppbr_export_directory_policy);