diff options
author | Nir Bar <nir.bar@panel-sw.co.il> | 2023-11-20 18:00:03 +0200 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2023-12-24 17:30:44 -0500 |
commit | 6f4fda58d9303c889024e20ee39b1374ed0f02e1 (patch) | |
tree | b940085ebd2bc0dd97bbebe6eb77bce3b5a73f90 /src/test | |
parent | f02ef4acf9649badaa3ab78d2499ca5014fa2234 (diff) | |
download | wix-6f4fda58d9303c889024e20ee39b1374ed0f02e1.tar.gz wix-6f4fda58d9303c889024e20ee39b1374ed0f02e1.tar.bz2 wix-6f4fda58d9303c889024e20ee39b1374ed0f02e1.zip |
ArpEntry reads QuietUninstallString or UninstallString, and uses UninstallArguments for the uninstall command line
Diffstat (limited to 'src/test')
3 files changed, 59 insertions, 0 deletions
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 @@ | |||
1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | ||
2 | <Project Sdk="WixToolset.Sdk"> | ||
3 | <PropertyGroup> | ||
4 | <OutputType>Bundle</OutputType> | ||
5 | <InstallerPlatform>x64</InstallerPlatform> | ||
6 | <BA>TestBA_x64</BA> | ||
7 | <UpgradeCode>{0A3D66F0-21A8-41B5-BE9A-7A9ABDEC3AB5}</UpgradeCode> | ||
8 | </PropertyGroup> | ||
9 | <ItemGroup> | ||
10 | <Compile Include="..\..\Templates\Bundle.wxs" Link="Bundle.wxs" /> | ||
11 | </ItemGroup> | ||
12 | <ItemGroup> | ||
13 | <ProjectReference Include="..\..\TestBA\TestBAWixlib_x64\testbawixlib_x64.wixproj" /> | ||
14 | </ItemGroup> | ||
15 | <ItemGroup> | ||
16 | <PackageReference Include="WixToolset.Bal.wixext" /> | ||
17 | <PackageReference Include="WixToolset.NetFx.wixext" /> | ||
18 | </ItemGroup> | ||
19 | </Project> | ||
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 @@ | |||
1 | <!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> | ||
2 | |||
3 | <?define ArpId = {21E99C0F-E604-439C-97E0-33B9771394BC}?> | ||
4 | <?define ArpKeyPath = HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$(var.ArpId)?> | ||
5 | <?define ArpVersion = 1.0.0.0?> | ||
6 | |||
7 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | ||
8 | <Fragment> | ||
9 | <PackageGroup Id="BundlePackages"> | ||
10 | <ExePackage Id="TestExe" PerMachine="yes" | ||
11 | InstallArguments="/regw "$(var.ArpKeyPath),DisplayVersion,String,$(var.ArpVersion)" /regw "$(var.ArpKeyPath),UninstallString,String,\"[WixBundleExecutePackageCacheFolder]testexe.exe\" /regd \"$(var.ArpKeyPath)\"""> | ||
12 | <ArpEntry Id="$(var.ArpId)" Version="$(var.ArpVersion)" Win64="yes" UseUninstallString="yes" /> | ||
13 | |||
14 | <PayloadGroupRef Id="TestExePayloads_x64" /> | ||
15 | </ExePackage> | ||
16 | </PackageGroup> | ||
17 | </Fragment> | ||
18 | </Wix> | ||
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 | |||
@@ -34,6 +34,28 @@ namespace WixToolsetTest.BurnE2E | |||
34 | } | 34 | } |
35 | 35 | ||
36 | [RuntimeFact] | 36 | [RuntimeFact] |
37 | public void CanInstallAndUninstallPerMachineArpEntryWithUninstallStringExePackage() | ||
38 | { | ||
39 | var perMachineArpEntryExePackageBundle = this.CreateBundleInstaller(@"PerMachineArpEntryWithUninstallStringExePackage"); | ||
40 | var arpEntryExePackage = this.CreateArpEntryInstaller(perMachineArpEntryExePackageBundle, "TestExe"); | ||
41 | var arpId = arpEntryExePackage.ArpId; | ||
42 | |||
43 | arpEntryExePackage.VerifyRegistered(false); | ||
44 | |||
45 | var installLogPath = perMachineArpEntryExePackageBundle.Install(); | ||
46 | perMachineArpEntryExePackageBundle.VerifyRegisteredAndInPackageCache(); | ||
47 | arpEntryExePackage.VerifyRegistered(true); | ||
48 | |||
49 | 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,\\\"")); | ||
50 | |||
51 | var uninstallLogPath = perMachineArpEntryExePackageBundle.Uninstall(); | ||
52 | perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
53 | arpEntryExePackage.VerifyRegistered(false); | ||
54 | |||
55 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | ||
56 | } | ||
57 | |||
58 | [RuntimeFact] | ||
37 | public void CanRecacheAndReinstallPerMachineArpEntryExePackageOnUninstallRollback() | 59 | public void CanRecacheAndReinstallPerMachineArpEntryExePackageOnUninstallRollback() |
38 | { | 60 | { |
39 | var packageTestExe = this.CreatePackageInstaller("PackageTestExe"); | 61 | var packageTestExe = this.CreatePackageInstaller("PackageTestExe"); |