From 976ac446dcb4aa1bfcbf38e188deb1c3741a2e46 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 12 Mar 2024 17:51:17 -0400 Subject: Fix localization collation. Fixes https://github.com/wixtoolset/issues/issues/8036. --- .../WixToolset.Data/Symbols/SymbolDefinitions.cs | 3 +++ src/test/burn/WixTestTools/PackageVerifier.cs | 6 +++++ .../LocalizedWixUI/LocalizedWixUI.wixproj | 14 ++++++++++++ .../LocalizedWixUI/LocalizedWixUI.wxs | 13 +++++++++++ .../msi/WixToolsetTest.MsiE2E/UIExtensionTests.cs | 26 ++++++++++++++++++++++ .../Link/CollateLocalizationsCommand.cs | 2 +- 6 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wixproj create mode 100644 src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wxs create mode 100644 src/test/msi/WixToolsetTest.MsiE2E/UIExtensionTests.cs diff --git a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs index facca956..64f51162 100644 --- a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -322,6 +322,9 @@ namespace WixToolset.Data case SymbolDefinitionType.FileSFPCatalog: return SymbolDefinitions.FileSFPCatalog; + case SymbolDefinitionType.HarvestFiles: + return SymbolDefinitions.HarvestFiles; + case SymbolDefinitionType.Icon: return SymbolDefinitions.Icon; diff --git a/src/test/burn/WixTestTools/PackageVerifier.cs b/src/test/burn/WixTestTools/PackageVerifier.cs index 4545b9ec..76bc17ab 100644 --- a/src/test/burn/WixTestTools/PackageVerifier.cs +++ b/src/test/burn/WixTestTools/PackageVerifier.cs @@ -63,6 +63,12 @@ namespace WixTestTools return row.Value; } + public string GetControlText(string dialog, string control) + { + var row = this.WiData.Tables["Control"].Rows.Cast().Single(r => r.Dialog == dialog && r.Control == control); + return row.Text; + } + public bool IsInstalled() { var productCode = this.GetProperty("ProductCode"); diff --git a/src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wixproj b/src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wixproj new file mode 100644 index 00000000..cb8f31bb --- /dev/null +++ b/src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wixproj @@ -0,0 +1,14 @@ + + + + {4D188568-1CCF-4EEE-BC27-17C3DCC83E58} + true + + + + + + + + + \ No newline at end of file diff --git a/src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wxs b/src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wxs new file mode 100644 index 00000000..08390538 --- /dev/null +++ b/src/test/msi/TestData/UIExtensionTests/LocalizedWixUI/LocalizedWixUI.wxs @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/test/msi/WixToolsetTest.MsiE2E/UIExtensionTests.cs b/src/test/msi/WixToolsetTest.MsiE2E/UIExtensionTests.cs new file mode 100644 index 00000000..093ae7ce --- /dev/null +++ b/src/test/msi/WixToolsetTest.MsiE2E/UIExtensionTests.cs @@ -0,0 +1,26 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. + +namespace WixToolsetTest.MsiE2E +{ + using Xunit; + using Xunit.Abstractions; + + public class UIExtensionTests : MsiE2ETests + { + public UIExtensionTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } + + [Fact] + public void CanBuildLocalizedWixUIPackageWithDefaultUSEnglish() + { + var product = this.CreatePackageInstaller("LocalizedWixUI"); + + var nextButton = product.GetControlText("WelcomeDlg", "Next"); + var cancelButton = product.GetControlText("ExitDialog", "Cancel"); + var updateButton = product.GetControlText("VerifyReadyDlg", "Update"); + + Assert.Equal("&Next", nextButton); + Assert.Equal("Cancel", cancelButton); + Assert.Equal("&Update", updateButton); + } + } +} diff --git a/src/wix/WixToolset.Core/Link/CollateLocalizationsCommand.cs b/src/wix/WixToolset.Core/Link/CollateLocalizationsCommand.cs index d5c69838..20f7e83a 100644 --- a/src/wix/WixToolset.Core/Link/CollateLocalizationsCommand.cs +++ b/src/wix/WixToolset.Core/Link/CollateLocalizationsCommand.cs @@ -65,7 +65,7 @@ namespace WixToolset.Core.Link } } - return new Localization(existingLocalization.Codepage ?? localization.Codepage, existingLocalization.SummaryInformationCodepage ?? localization.SummaryInformationCodepage, existingLocalization.Culture, variables, controls); + return new Localization(existingLocalization.Location, existingLocalization.Codepage ?? localization.Codepage, existingLocalization.SummaryInformationCodepage ?? localization.SummaryInformationCodepage, existingLocalization.Culture, variables, controls); } } } -- cgit v1.2.3-55-g6feb