From 6f4fda58d9303c889024e20ee39b1374ed0f02e1 Mon Sep 17 00:00:00 2001 From: Nir Bar Date: Mon, 20 Nov 2023 18:00:03 +0200 Subject: ArpEntry reads QuietUninstallString or UninstallString, and uses UninstallArguments for the uninstall command line --- ...neArpEntryWithUninstallStringExePackage.wixproj | 19 +++++++++++++++++++ ...achineArpEntryWithUninstallStringExePackage.wxs | 18 ++++++++++++++++++ .../burn/WixToolsetTest.BurnE2E/ExePackageTests.cs | 22 ++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wixproj create mode 100644 src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wxs (limited to 'src/test') diff --git a/src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wixproj b/src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wixproj new file mode 100644 index 00000000..afdd9e5b --- /dev/null +++ b/src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wixproj @@ -0,0 +1,19 @@ + + + + Bundle + x64 + TestBA_x64 + {0A3D66F0-21A8-41B5-BE9A-7A9ABDEC3AB5} + + + + + + + + + + + + diff --git a/src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wxs b/src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wxs new file mode 100644 index 00000000..58198257 --- /dev/null +++ b/src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wxs @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs index 42301f30..dc0b6b5a 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs @@ -33,6 +33,28 @@ namespace WixToolsetTest.BurnE2E Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); } + [RuntimeFact] + public void CanInstallAndUninstallPerMachineArpEntryWithUninstallStringExePackage() + { + var perMachineArpEntryExePackageBundle = this.CreateBundleInstaller(@"PerMachineArpEntryWithUninstallStringExePackage"); + var arpEntryExePackage = this.CreateArpEntryInstaller(perMachineArpEntryExePackageBundle, "TestExe"); + var arpId = arpEntryExePackage.ArpId; + + arpEntryExePackage.VerifyRegistered(false); + + var installLogPath = perMachineArpEntryExePackageBundle.Install(); + perMachineArpEntryExePackageBundle.VerifyRegisteredAndInPackageCache(); + arpEntryExePackage.VerifyRegistered(true); + + Assert.True(LogVerifier.MessageInLogFile(installLogPath, $"TestExe.exe\" /regw \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId},DisplayVersion,String,1.0.0.0\" /regw \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId},UninstallString,String,\\\"")); + + var uninstallLogPath = perMachineArpEntryExePackageBundle.Uninstall(); + perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); + arpEntryExePackage.VerifyRegistered(false); + + Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); + } + [RuntimeFact] public void CanRecacheAndReinstallPerMachineArpEntryExePackageOnUninstallRollback() { -- cgit v1.2.3-55-g6feb