aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorNir Bar <nir.bar@panel-sw.co.il>2023-11-20 18:00:03 +0200
committerBob Arnson <github@bobs.org>2023-12-24 17:30:44 -0500
commit6f4fda58d9303c889024e20ee39b1374ed0f02e1 (patch)
treeb940085ebd2bc0dd97bbebe6eb77bce3b5a73f90 /src/test
parentf02ef4acf9649badaa3ab78d2499ca5014fa2234 (diff)
downloadwix-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')
-rw-r--r--src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wixproj19
-rw-r--r--src/test/burn/TestData/ExePackageTests/PerMachineArpEntryWithUninstallStringExePackage/PerMachineArpEntryWithUninstallStringExePackage.wxs18
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs22
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 &quot;$(var.ArpKeyPath),DisplayVersion,String,$(var.ArpVersion)&quot; /regw &quot;$(var.ArpKeyPath),UninstallString,String,\&quot;[WixBundleExecutePackageCacheFolder]testexe.exe\&quot; /regd \&quot;$(var.ArpKeyPath)\&quot;&quot;">
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");