aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2026-01-21 21:20:40 -0500
committerBob Arnson <bob@firegiant.com>2026-01-21 21:20:40 -0500
commitfafdaa522ff2a3888dfceb0ab56911c4f8cdf48d (patch)
tree02e91784289063f01ee71c2b72ec04b890802cee /src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs
parent9a26c32398337aff57da6e92088b90314b81cf03 (diff)
downloadwix-bob/SupersededPackageUninstall.tar.gz
wix-bob/SupersededPackageUninstall.tar.bz2
wix-bob/SupersededPackageUninstall.zip
Allow patched package to be uninstalled.bob/SupersededPackageUninstall
Normally, a patched package is detected as superseded and therefore a normal uninstall takes no action. This change looks for applied patches and allows a normal uninstall to remove the package. Fixes https://github.com/wixtoolset/issues/issues/6350
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs
index d07e80f1..d4cf447d 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs
@@ -18,7 +18,7 @@ namespace WixToolsetTest.BurnE2E
18 private const string V101 = "1.0.1.0"; 18 private const string V101 = "1.0.1.0";
19 19
20 [RuntimeFact] 20 [RuntimeFact]
21 public void CanInstallBundleWithSlipstreamedPatchThenRemoveIt() 21 public void CanInstallBundleWithSlipstreamedSmallUpdatePatchThenRemoveIt()
22 { 22 {
23 var testRegistryValue = "PackageA"; 23 var testRegistryValue = "PackageA";
24 24
@@ -39,6 +39,28 @@ namespace WixToolsetTest.BurnE2E
39 packageAv1.VerifyTestRegistryRootDeleted(); 39 packageAv1.VerifyTestRegistryRootDeleted();
40 } 40 }
41 41
42 [RuntimeFact]
43 public void CanInstallBundleWithSlipstreamedMinorUpgradePatchThenRemoveIt()
44 {
45 var testRegistryValue = "PackageA";
46
47 var packageAv1 = this.CreatePackageInstaller("PackageAv1");
48 var bundleA = this.CreateBundleInstaller("BundleAv1_0_1");
49
50 var packageAv1SourceCodeInstalled = packageAv1.GetInstalledFilePath("Package.wxs");
51 Assert.False(File.Exists(packageAv1SourceCodeInstalled), $"PackageAv1 payload should not be there on test start: {packageAv1SourceCodeInstalled}");
52
53 bundleA.Install();
54 bundleA.VerifyRegisteredAndInPackageCache();
55 Assert.True(File.Exists(packageAv1SourceCodeInstalled), String.Concat("Should have found PackageAv1 payload installed at: ", packageAv1SourceCodeInstalled));
56 packageAv1.VerifyTestRegistryValue(testRegistryValue, V101);
57
58 bundleA.Uninstall();
59 bundleA.VerifyUnregisteredAndRemovedFromPackageCache();
60 Assert.False(File.Exists(packageAv1SourceCodeInstalled), String.Concat("PackageAv1 payload should have been removed by uninstall from: ", packageAv1SourceCodeInstalled));
61 packageAv1.VerifyTestRegistryRootDeleted();
62 }
63
42 /// <summary> 64 /// <summary>
43 /// BundleA installs PackageA with slipstreamed PatchA. 65 /// BundleA installs PackageA with slipstreamed PatchA.
44 /// BundleOnlyPatchA is installed which contains PatchA (which should be a no-op). 66 /// BundleOnlyPatchA is installed which contains PatchA (which should be a no-op).