From 3bc1056b69b420de75ce571c102b3b24c8cab390 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 9 Mar 2023 00:25:27 -0800 Subject: Correctly convert LaunchConditions everywhere Fixes 7264 --- src/wix/WixToolset.Converters/WixConverter.cs | 29 +++++++++------------- .../WixToolsetTest.Converters/ConditionFixture.cs | 18 ++++++-------- 2 files changed, 19 insertions(+), 28 deletions(-) diff --git a/src/wix/WixToolset.Converters/WixConverter.cs b/src/wix/WixToolset.Converters/WixConverter.cs index dc4a0bfa..86664a9f 100644 --- a/src/wix/WixToolset.Converters/WixConverter.cs +++ b/src/wix/WixToolset.Converters/WixConverter.cs @@ -289,7 +289,7 @@ namespace WixToolset.Converters { WixConverter.DirectoryRefElementName, this.ConvertDirectoryRefElement }, { WixConverter.FeatureElementName, this.ConvertFeatureElement }, { WixConverter.FileElementName, this.ConvertFileElement }, - { WixConverter.FragmentElementName, this.ConvertFragmentElement }, + { WixConverter.ConditionElementName, this.ConvertLaunchConditionElement }, { WixConverter.FirewallRemoteAddressElementName, this.ConvertFirewallRemoteAddressElement }, { WixConverter.EmbeddedChainerElementName, this.ConvertEmbeddedChainerElement }, { WixConverter.ErrorElementName, this.ConvertErrorElement }, @@ -1064,7 +1064,7 @@ namespace WixToolset.Converters { xCondition.Remove(); element.Add(new XAttribute("Condition", text)); - lab. RemoveOrphanTextNodes(); + lab.RemoveOrphanTextNodes(); lab.AddCommentsAsSiblings(comments); } } @@ -1205,25 +1205,20 @@ namespace WixToolset.Converters } } - private void ConvertFragmentElement(XElement element) + private void ConvertLaunchConditionElement(XElement element) { - var xConditions = element.Elements(ConditionElementName).ToList(); + var message = element.Attribute("Message")?.Value; - foreach (var xCondition in xConditions) + if (!String.IsNullOrEmpty(message) && + TryGetInnerText(element, out var text, out var comments) && + this.OnInformation(ConverterTestType.InnerTextDeprecated, element, "Using {0} element text is deprecated. Use the 'Launch' element instead.", element.Name.LocalName)) { - var message = xCondition.Attribute("Message")?.Value; - - if (!String.IsNullOrEmpty(message) && - TryGetInnerText(xCondition, out var text, out var comments) && - this.OnInformation(ConverterTestType.InnerTextDeprecated, element, "Using {0} element text is deprecated. Use the 'Launch' element instead.", xCondition.Name.LocalName)) + using (var lab = new ConversionLab(element)) { - using (var lab = new ConversionLab(xCondition)) - { - lab.ReplaceTargetElement(new XElement(LaunchElementName, - new XAttribute("Condition", text), - new XAttribute("Message", message))); - lab.AddCommentsAsSiblings(comments); - } + lab.ReplaceTargetElement(new XElement(LaunchElementName, + new XAttribute("Condition", text), + new XAttribute("Message", message))); + lab.AddCommentsAsSiblings(comments); } } } diff --git a/src/wix/test/WixToolsetTest.Converters/ConditionFixture.cs b/src/wix/test/WixToolsetTest.Converters/ConditionFixture.cs index 84e1b4c3..e3563c60 100644 --- a/src/wix/test/WixToolsetTest.Converters/ConditionFixture.cs +++ b/src/wix/test/WixToolsetTest.Converters/ConditionFixture.cs @@ -382,19 +382,15 @@ namespace WixToolsetTest.Converters var parse = String.Join(Environment.NewLine, "", "", - " ", - " ", - " wxicondition", - " ", - " ", + " ", + " wxicondition", + " ", ""); var expected = new[] { "", - " ", - " ", - " ", + " ", "" }; @@ -485,7 +481,7 @@ namespace WixToolsetTest.Converters } [Fact] - public void FixLaunchCondition() + public void FixLaunchConditionInFragment() { var parse = String.Join(Environment.NewLine, "", @@ -569,7 +565,7 @@ namespace WixToolsetTest.Converters "", "", " ", - " ", + " ", " ", " 1<2", " ", @@ -583,7 +579,7 @@ namespace WixToolsetTest.Converters { "", " ", - " ", + " ", " ", " ", " ", -- cgit v1.2.3-55-g6feb