commit b433fa4309fbbee02d4a0acf1b22e57dd891d2b6
parent 75803c312eb442e03184ce0dacf197ee8f5bb432
Author: yao-msft <50888816+yao-msft@users.noreply.github.com>
Date: Thu, 20 Jun 2024 20:19:17 -0700
Fix export manifest with multiple locales (#4569)
Diffstat:
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/src/AppInstallerCLITests/YamlManifest.cpp b/src/AppInstallerCLITests/YamlManifest.cpp
@@ -1289,6 +1289,18 @@ TEST_CASE("WriteV1_7SingletonManifestAndVerifyContents", "[ManifestCreation]")
VerifyV1ManifestContent(generatedMultiFileManifest, false, ManifestVer{ s_ManifestVersionV1_7 }, true);
}
+TEST_CASE("WriteManifestWithMultipleLocale", "[ManifestCreation]")
+{
+ Manifest multiLocaleManifest = YamlParser::CreateFromPath(TestDataFile("Manifest-Good-MultiLocale.yaml"));
+ TempDirectory exportedDirectory{ "exported" };
+ std::filesystem::path generatedManifestPath = exportedDirectory.GetPath() / "testManifestWithMultipleLocale.yaml";
+ YamlWriter::OutputYamlFile(multiLocaleManifest, multiLocaleManifest.Installers[0], generatedManifestPath);
+
+ REQUIRE(std::filesystem::exists(generatedManifestPath));
+ Manifest generatedManifest = YamlParser::CreateFromPath(generatedManifestPath);
+ REQUIRE(generatedManifest.Localizations.size() == 2);
+}
+
YamlManifestInfo CreateYamlManifestInfo(std::string testDataFile)
{
YamlManifestInfo result;
diff --git a/src/AppInstallerCommonCore/Manifest/YamlWriter.cpp b/src/AppInstallerCommonCore/Manifest/YamlWriter.cpp
@@ -610,14 +610,14 @@ namespace AppInstaller::Manifest::YamlWriter
{
out << YAML::Key << Localization;
out << YAML::BeginSeq;
- out << YAML::BeginMap;
for (const auto& localization : localizations)
- {
- ProcessLocaleFields(out, localization);
+ {
+ out << YAML::BeginMap;
+ ProcessLocaleFields(out, localization);
+ out << YAML::EndMap;
}
- out << YAML::EndMap;
out << YAML::EndSeq;
}
}
@@ -669,4 +669,4 @@ namespace AppInstaller::Manifest::YamlWriter
emitter.Emit(outFileStream);
outFileStream.close();
}
-}-
\ No newline at end of file
+}