winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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:
Msrc/AppInstallerCLITests/YamlManifest.cpp | 12++++++++++++
Msrc/AppInstallerCommonCore/Manifest/YamlWriter.cpp | 11+++++------
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 +}