diff options
| author | Bob Arnson <bob@firegiant.com> | 2026-01-21 21:20:40 -0500 |
|---|---|---|
| committer | Bob Arnson <bob@firegiant.com> | 2026-01-21 21:20:40 -0500 |
| commit | fafdaa522ff2a3888dfceb0ab56911c4f8cdf48d (patch) | |
| tree | 02e91784289063f01ee71c2b72ec04b890802cee /src/test/burn/WixToolsetTest.BurnE2E | |
| parent | 9a26c32398337aff57da6e92088b90314b81cf03 (diff) | |
| download | wix-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')
| -rw-r--r-- | src/test/burn/WixToolsetTest.BurnE2E/SlipstreamTests.cs | 24 |
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). |
