From c54f3083489827a1e57c6fd7f3d76f62ddc6e85e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 12 Dec 2022 21:12:51 -0500 Subject: Add message for DoAction WixUI custom actions. --- src/wix/WixToolset.Converters/WixConverter.cs | 10 ++++++ .../WixToolsetTest.Converters/ConverterFixture.cs | 37 ++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/wix/WixToolset.Converters/WixConverter.cs b/src/wix/WixToolset.Converters/WixConverter.cs index 61bd0f79..9359d0d2 100644 --- a/src/wix/WixToolset.Converters/WixConverter.cs +++ b/src/wix/WixToolset.Converters/WixConverter.cs @@ -1676,6 +1676,16 @@ namespace WixToolset.Converters lab.AddCommentsAsSiblings(comments); } } + + var evnt = element.Attribute("Event")?.Value; + var value = element.Attribute("Value")?.Value; + + if (evnt?.Equals("DoAction", StringComparison.OrdinalIgnoreCase) == true + && value?.StartsWith("WixUI", StringComparison.OrdinalIgnoreCase) == true + && this.OnInformation(ConverterTestType.CustomActionIdsIncludePlatformSuffix, element, "Custom action ids have changed in WiX v4 extensions to support platform-specific custom actions. For more information, see https://wixtoolset.org/docs/fourthree/#converting-custom-wixui-dialog-sets.")) + { + // Just warn. + } } private void ConvertMultiStringValueElement(XElement element) diff --git a/src/wix/test/WixToolsetTest.Converters/ConverterFixture.cs b/src/wix/test/WixToolsetTest.Converters/ConverterFixture.cs index b88d89d1..7aa1c959 100644 --- a/src/wix/test/WixToolsetTest.Converters/ConverterFixture.cs +++ b/src/wix/test/WixToolsetTest.Converters/ConverterFixture.cs @@ -542,5 +542,42 @@ namespace WixToolsetTest.Converters Assert.Equal(2, errors); WixAssert.CompareLineByLine(expected, actual); } + + [Fact] + public void WarnsOnWixUIDoActionControlEvents() + { + var parse = String.Join(Environment.NewLine, + "", + " ", + " ", + " ", + " ", + " ", + ""); + + var expected = new[] + { + "", + " ", + " ", + " ", + " ", + " ", + "", + }; + + var document = XDocument.Parse(parse, LoadOptions.PreserveWhitespace | LoadOptions.SetLineInfo); + + var messaging = new MockMessaging(); + var converter = new WixConverter(messaging, 2, null, null); + + var errors = converter.ConvertDocument(document); + + var actual = UnformattedDocumentLines(document); + + Assert.Equal(2, errors); + Assert.Single(messaging.Messages.Where(m => m.Id == 65)); + WixAssert.CompareLineByLine(expected, actual); + } } } -- cgit v1.2.3-55-g6feb