aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2023-03-09 00:25:27 -0800
committerRob Mensching <rob@firegiant.com>2023-03-09 06:17:00 -0700
commit3bc1056b69b420de75ce571c102b3b24c8cab390 (patch)
tree865d24f47601806aa24cdbee4609914663114a23 /src
parent696880ef8e3125b4f508b8c10a6728321323c6b4 (diff)
downloadwix-3bc1056b69b420de75ce571c102b3b24c8cab390.tar.gz
wix-3bc1056b69b420de75ce571c102b3b24c8cab390.tar.bz2
wix-3bc1056b69b420de75ce571c102b3b24c8cab390.zip
Correctly convert LaunchConditions everywhere
Fixes 7264
Diffstat (limited to 'src')
-rw-r--r--src/wix/WixToolset.Converters/WixConverter.cs29
-rw-r--r--src/wix/test/WixToolsetTest.Converters/ConditionFixture.cs18
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
289 { WixConverter.DirectoryRefElementName, this.ConvertDirectoryRefElement }, 289 { WixConverter.DirectoryRefElementName, this.ConvertDirectoryRefElement },
290 { WixConverter.FeatureElementName, this.ConvertFeatureElement }, 290 { WixConverter.FeatureElementName, this.ConvertFeatureElement },
291 { WixConverter.FileElementName, this.ConvertFileElement }, 291 { WixConverter.FileElementName, this.ConvertFileElement },
292 { WixConverter.FragmentElementName, this.ConvertFragmentElement }, 292 { WixConverter.ConditionElementName, this.ConvertLaunchConditionElement },
293 { WixConverter.FirewallRemoteAddressElementName, this.ConvertFirewallRemoteAddressElement }, 293 { WixConverter.FirewallRemoteAddressElementName, this.ConvertFirewallRemoteAddressElement },
294 { WixConverter.EmbeddedChainerElementName, this.ConvertEmbeddedChainerElement }, 294 { WixConverter.EmbeddedChainerElementName, this.ConvertEmbeddedChainerElement },
295 { WixConverter.ErrorElementName, this.ConvertErrorElement }, 295 { WixConverter.ErrorElementName, this.ConvertErrorElement },
@@ -1064,7 +1064,7 @@ namespace WixToolset.Converters
1064 { 1064 {
1065 xCondition.Remove(); 1065 xCondition.Remove();
1066 element.Add(new XAttribute("Condition", text)); 1066 element.Add(new XAttribute("Condition", text));
1067 lab. RemoveOrphanTextNodes(); 1067 lab.RemoveOrphanTextNodes();
1068 lab.AddCommentsAsSiblings(comments); 1068 lab.AddCommentsAsSiblings(comments);
1069 } 1069 }
1070 } 1070 }
@@ -1205,25 +1205,20 @@ namespace WixToolset.Converters
1205 } 1205 }
1206 } 1206 }
1207 1207
1208 private void ConvertFragmentElement(XElement element) 1208 private void ConvertLaunchConditionElement(XElement element)
1209 { 1209 {
1210 var xConditions = element.Elements(ConditionElementName).ToList(); 1210 var message = element.Attribute("Message")?.Value;
1211 1211
1212 foreach (var xCondition in xConditions) 1212 if (!String.IsNullOrEmpty(message) &&
1213 TryGetInnerText(element, out var text, out var comments) &&
1214 this.OnInformation(ConverterTestType.InnerTextDeprecated, element, "Using {0} element text is deprecated. Use the 'Launch' element instead.", element.Name.LocalName))
1213 { 1215 {
1214 var message = xCondition.Attribute("Message")?.Value; 1216 using (var lab = new ConversionLab(element))
1215
1216 if (!String.IsNullOrEmpty(message) &&
1217 TryGetInnerText(xCondition, out var text, out var comments) &&
1218 this.OnInformation(ConverterTestType.InnerTextDeprecated, element, "Using {0} element text is deprecated. Use the 'Launch' element instead.", xCondition.Name.LocalName))
1219 { 1217 {
1220 using (var lab = new ConversionLab(xCondition)) 1218 lab.ReplaceTargetElement(new XElement(LaunchElementName,
1221 { 1219 new XAttribute("Condition", text),
1222 lab.ReplaceTargetElement(new XElement(LaunchElementName, 1220 new XAttribute("Message", message)));
1223 new XAttribute("Condition", text), 1221 lab.AddCommentsAsSiblings(comments);
1224 new XAttribute("Message", message)));
1225 lab.AddCommentsAsSiblings(comments);
1226 }
1227 } 1222 }
1228 } 1223 }
1229 } 1224 }
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
382 var parse = String.Join(Environment.NewLine, 382 var parse = String.Join(Environment.NewLine,
383 "<?xml version=\"1.0\" encoding=\"utf-16\"?>", 383 "<?xml version=\"1.0\" encoding=\"utf-16\"?>",
384 "<Include xmlns='http://schemas.microsoft.com/wix/2006/wi'>", 384 "<Include xmlns='http://schemas.microsoft.com/wix/2006/wi'>",
385 " <Fragment>", 385 " <Condition Message='from wxi'>",
386 " <Condition Message='from wxi'>", 386 " wxicondition",
387 " wxicondition", 387 " </Condition>",
388 " </Condition>",
389 " </Fragment>",
390 "</Include>"); 388 "</Include>");
391 389
392 var expected = new[] 390 var expected = new[]
393 { 391 {
394 "<Include xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", 392 "<Include xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
395 " <Fragment>", 393 " <Launch Condition=\"wxicondition\" Message=\"from wxi\" />",
396 " <Launch Condition=\"wxicondition\" Message=\"from wxi\" />",
397 " </Fragment>",
398 "</Include>" 394 "</Include>"
399 }; 395 };
400 396
@@ -485,7 +481,7 @@ namespace WixToolsetTest.Converters
485 } 481 }
486 482
487 [Fact] 483 [Fact]
488 public void FixLaunchCondition() 484 public void FixLaunchConditionInFragment()
489 { 485 {
490 var parse = String.Join(Environment.NewLine, 486 var parse = String.Join(Environment.NewLine,
491 "<?xml version=\"1.0\" encoding=\"utf-16\"?>", 487 "<?xml version=\"1.0\" encoding=\"utf-16\"?>",
@@ -569,7 +565,7 @@ namespace WixToolsetTest.Converters
569 "<?xml version=\"1.0\" encoding=\"utf-16\"?>", 565 "<?xml version=\"1.0\" encoding=\"utf-16\"?>",
570 "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>", 566 "<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>",
571 " <Product>", 567 " <Product>",
572 " <Package />", 568 " <Package />",
573 " <Condition Message='Stop the install'>", 569 " <Condition Message='Stop the install'>",
574 " 1&lt;2", 570 " 1&lt;2",
575 " </Condition>", 571 " </Condition>",
@@ -583,7 +579,7 @@ namespace WixToolsetTest.Converters
583 { 579 {
584 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">", 580 "<Wix xmlns=\"http://wixtoolset.org/schemas/v4/wxs\">",
585 " <Package Compressed=\"no\">", 581 " <Package Compressed=\"no\">",
586 " ", 582 " ",
587 " <Launch Condition=\"1&lt;2\" Message=\"Stop the install\" />", 583 " <Launch Condition=\"1&lt;2\" Message=\"Stop the install\" />",
588 " <Launch Condition=\"1=2\" Message=\"Do not stop\" />", 584 " <Launch Condition=\"1=2\" Message=\"Do not stop\" />",
589 " </Package>", 585 " </Package>",