diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-06-09 15:30:48 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-06-13 09:28:49 -0500 |
commit | 6f6e4ced9f398ff37a44b91fdba62479cde29d06 (patch) | |
tree | 8cef5b123df7ff11cdc9be79d2e981d9d567d65d /src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs | |
parent | 68ec803fc7f48bb0e0463dc45f6ce40e1f07dbf5 (diff) | |
download | wix-6f6e4ced9f398ff37a44b91fdba62479cde29d06.tar.gz wix-6f6e4ced9f398ff37a44b91fdba62479cde29d06.tar.bz2 wix-6f6e4ced9f398ff37a44b91fdba62479cde29d06.zip |
Implement ArpEntry flavored ExePackage.
6772
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs')
-rw-r--r-- | src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs new file mode 100644 index 00000000..dc6515b5 --- /dev/null +++ b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs | |||
@@ -0,0 +1,99 @@ | |||
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 | namespace WixToolsetTest.BurnE2E | ||
4 | { | ||
5 | using WixTestTools; | ||
6 | using Xunit; | ||
7 | using Xunit.Abstractions; | ||
8 | |||
9 | public class ExePackageTests : BurnE2ETests | ||
10 | { | ||
11 | public ExePackageTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } | ||
12 | |||
13 | [RuntimeFact] | ||
14 | public void CanInstallAndUninstallPerMachineArpEntryExePackage() | ||
15 | { | ||
16 | const string arpId = "{4D9EC36A-1E63-4244-875C-3ECB0A2CAE30}"; | ||
17 | var perMachineArpEntryExePackageBundle = this.CreateBundleInstaller(@"PerMachineArpEntryExePackage"); | ||
18 | var arpEntryExePackage = this.CreateArpEntryInstaller(perMachineArpEntryExePackageBundle, "TestExe"); | ||
19 | |||
20 | arpEntryExePackage.VerifyRegistered(false); | ||
21 | |||
22 | var installLogPath = perMachineArpEntryExePackageBundle.Install(); | ||
23 | perMachineArpEntryExePackageBundle.VerifyRegisteredAndInPackageCache(); | ||
24 | arpEntryExePackage.VerifyRegistered(true); | ||
25 | |||
26 | 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},QuietUninstallString,String,\\\""); | ||
27 | |||
28 | var uninstallLogPath = perMachineArpEntryExePackageBundle.Uninstall(); | ||
29 | perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
30 | arpEntryExePackage.VerifyRegistered(false); | ||
31 | |||
32 | LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}"); | ||
33 | } | ||
34 | |||
35 | [RuntimeFact] | ||
36 | public void CanUninstallPerMachineArpEntryExePackageOnRollback() | ||
37 | { | ||
38 | const string arpId = "{80E90929-EEA5-48A7-A680-A0237A1CAD84}"; | ||
39 | var perMachineArpEntryExePackageFailureBundle = this.CreateBundleInstaller(@"PerMachineArpEntryExePackageFailure"); | ||
40 | var arpEntryExePackage = this.CreateArpEntryInstaller(perMachineArpEntryExePackageFailureBundle, "TestExe"); | ||
41 | |||
42 | arpEntryExePackage.VerifyRegistered(false); | ||
43 | |||
44 | var installLogPath = perMachineArpEntryExePackageFailureBundle.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_FAILURE); | ||
45 | perMachineArpEntryExePackageFailureBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
46 | arpEntryExePackage.VerifyRegistered(false); | ||
47 | |||
48 | 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},QuietUninstallString,String,\\\""); | ||
49 | LogVerifier.MessageInLogFile(installLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}"); | ||
50 | } | ||
51 | |||
52 | [RuntimeFact] | ||
53 | public void CanInstallAndUninstallPerUserArpEntryExePackage() | ||
54 | { | ||
55 | const string arpId = "{9B5300C7-9B34-4670-9614-185B02AB87EF}"; | ||
56 | var perUserArpEntryExePackageBundle = this.CreateBundleInstaller(@"PerUserArpEntryExePackage"); | ||
57 | var arpEntryExePackage = this.CreateArpEntryInstaller(perUserArpEntryExePackageBundle, "TestExe"); | ||
58 | |||
59 | arpEntryExePackage.VerifyRegistered(false); | ||
60 | |||
61 | var installLogPath = perUserArpEntryExePackageBundle.Install(); | ||
62 | perUserArpEntryExePackageBundle.VerifyRegisteredAndInPackageCache(); | ||
63 | arpEntryExePackage.VerifyRegistered(true); | ||
64 | |||
65 | LogVerifier.MessageInLogFile(installLogPath, $"TestExe.exe\" /regw \"HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId},DisplayVersion,String,1.0.0.0\" /regw \"HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId},QuietUninstallString,String,\\\""); | ||
66 | |||
67 | var uninstallLogPath = perUserArpEntryExePackageBundle.Uninstall(); | ||
68 | perUserArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
69 | arpEntryExePackage.VerifyRegistered(false); | ||
70 | |||
71 | LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}"); | ||
72 | } | ||
73 | |||
74 | [RuntimeFact] | ||
75 | public void FailsUninstallWhenPerUserArpEntryExePackageMissingQuietUninstallString() | ||
76 | { | ||
77 | const string arpId = "{DE9F8594-5856-4454-AB10-3C01ED246D7D}"; | ||
78 | var brokenPerUserArpEntryExePackageBundle = this.CreateBundleInstaller(@"BrokenPerUserArpEntryExePackage"); | ||
79 | var arpEntryExePackage = this.CreateArpEntryInstaller(brokenPerUserArpEntryExePackageBundle, "TestExe"); | ||
80 | |||
81 | arpEntryExePackage.VerifyRegistered(false); | ||
82 | brokenPerUserArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
83 | |||
84 | var installLogPath = brokenPerUserArpEntryExePackageBundle.Install(); | ||
85 | brokenPerUserArpEntryExePackageBundle.VerifyRegisteredAndInPackageCache(); | ||
86 | arpEntryExePackage.VerifyRegistered(true); | ||
87 | |||
88 | LogVerifier.MessageInLogFile(installLogPath, $"TestExe.exe\" /regw \"HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId},DisplayVersion,String,1.0.0.0\""); | ||
89 | |||
90 | brokenPerUserArpEntryExePackageBundle.Uninstall((int)MSIExec.MSIExecReturnCode.ERROR_INVALID_PARAMETER); | ||
91 | brokenPerUserArpEntryExePackageBundle.VerifyRegisteredAndInPackageCache(); | ||
92 | |||
93 | arpEntryExePackage.Unregister(); | ||
94 | |||
95 | brokenPerUserArpEntryExePackageBundle.Uninstall(); | ||
96 | brokenPerUserArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
97 | } | ||
98 | } | ||
99 | } | ||