diff options
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E')
4 files changed, 102 insertions, 8 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs index a7438564..e7c7ee5b 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs | |||
@@ -30,7 +30,7 @@ namespace WixToolsetTest.BurnE2E | |||
30 | perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | 30 | perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); |
31 | arpEntryExePackage.VerifyRegistered(false); | 31 | arpEntryExePackage.VerifyRegistered(false); |
32 | 32 | ||
33 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 33 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
34 | } | 34 | } |
35 | 35 | ||
36 | [RuntimeFact] | 36 | [RuntimeFact] |
@@ -52,7 +52,7 @@ namespace WixToolsetTest.BurnE2E | |||
52 | perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | 52 | perMachineArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); |
53 | arpEntryExePackage.VerifyRegistered(false); | 53 | arpEntryExePackage.VerifyRegistered(false); |
54 | 54 | ||
55 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 55 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
56 | } | 56 | } |
57 | 57 | ||
58 | [RuntimeFact] | 58 | [RuntimeFact] |
@@ -85,7 +85,7 @@ namespace WixToolsetTest.BurnE2E | |||
85 | packageTestExe.VerifyInstalled(true); | 85 | packageTestExe.VerifyInstalled(true); |
86 | 86 | ||
87 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, "TESTBA: OnCachePackageNonVitalValidationFailure() - id: TestExe, default: None, requested: Acquire")); | 87 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, "TESTBA: OnCachePackageNonVitalValidationFailure() - id: TestExe, default: None, requested: Acquire")); |
88 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 88 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
89 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"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,\\\"")); | 89 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"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,\\\"")); |
90 | } | 90 | } |
91 | 91 | ||
@@ -113,7 +113,7 @@ namespace WixToolsetTest.BurnE2E | |||
113 | packageTestExe.VerifyInstalled(true); | 113 | packageTestExe.VerifyInstalled(true); |
114 | 114 | ||
115 | Assert.False(LogVerifier.MessageInLogFile(uninstallLogPath, "TESTBA: OnCachePackageNonVitalValidationFailure() - id: TestExe")); | 115 | Assert.False(LogVerifier.MessageInLogFile(uninstallLogPath, "TESTBA: OnCachePackageNonVitalValidationFailure() - id: TestExe")); |
116 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 116 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
117 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"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,\\\"")); | 117 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"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,\\\"")); |
118 | } | 118 | } |
119 | 119 | ||
@@ -144,7 +144,7 @@ namespace WixToolsetTest.BurnE2E | |||
144 | packageTestExe.VerifyInstalled(true); | 144 | packageTestExe.VerifyInstalled(true); |
145 | 145 | ||
146 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, "TESTBA: OnCachePackageNonVitalValidationFailure() - id: TestExe, default: None, requested: None")); | 146 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, "TESTBA: OnCachePackageNonVitalValidationFailure() - id: TestExe, default: None, requested: None")); |
147 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 147 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
148 | } | 148 | } |
149 | 149 | ||
150 | [RuntimeFact] | 150 | [RuntimeFact] |
@@ -161,7 +161,7 @@ namespace WixToolsetTest.BurnE2E | |||
161 | arpEntryExePackage.VerifyRegistered(false); | 161 | arpEntryExePackage.VerifyRegistered(false); |
162 | 162 | ||
163 | 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},QuietUninstallString,String,\\\"")); | 163 | 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},QuietUninstallString,String,\\\"")); |
164 | Assert.True(LogVerifier.MessageInLogFile(installLogPath, $"testexe.exe\" /regd HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 164 | Assert.True(LogVerifier.MessageInLogFile(installLogPath, $"testexe.exe\" /regd \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
165 | } | 165 | } |
166 | 166 | ||
167 | [RuntimeFact] | 167 | [RuntimeFact] |
@@ -209,7 +209,7 @@ namespace WixToolsetTest.BurnE2E | |||
209 | perUserArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); | 209 | perUserArpEntryExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache(); |
210 | arpEntryExePackage.VerifyRegistered(false); | 210 | arpEntryExePackage.VerifyRegistered(false); |
211 | 211 | ||
212 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}")); | 212 | Assert.True(LogVerifier.MessageInLogFile(uninstallLogPath, $"testexe.exe\" /regd \"HKCU\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{arpId}\"")); |
213 | } | 213 | } |
214 | 214 | ||
215 | [RuntimeFact] | 215 | [RuntimeFact] |
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs index bd3762ed..7d399df0 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs | |||
@@ -2,7 +2,6 @@ | |||
2 | 2 | ||
3 | namespace WixToolsetTest.BurnE2E | 3 | namespace WixToolsetTest.BurnE2E |
4 | { | 4 | { |
5 | using System.Threading; | ||
6 | using WixTestTools; | 5 | using WixTestTools; |
7 | using WixToolset.BootstrapperApplicationApi; | 6 | using WixToolset.BootstrapperApplicationApi; |
8 | using Xunit; | 7 | using Xunit; |
@@ -13,6 +12,42 @@ namespace WixToolsetTest.BurnE2E | |||
13 | public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } | 12 | public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } |
14 | 13 | ||
15 | [RuntimeFact] | 14 | [RuntimeFact] |
15 | public void CanSetDownloadSourceAndForceDownload() | ||
16 | { | ||
17 | var packageA = this.CreatePackageInstaller("PackageA"); | ||
18 | var bundleA = this.CreateBundleInstaller("BundleA"); | ||
19 | var testBAController = this.CreateTestBAController(); | ||
20 | |||
21 | testBAController.SetPackageForceDownloadSource("PackageA", "https://1e1bf2be1c384fd1a0c4c0500eef971b/downloads/payloads/{0}"); | ||
22 | |||
23 | packageA.VerifyInstalled(false); | ||
24 | |||
25 | bundleA.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
26 | |||
27 | bundleA.Install(0x2ee7/*ERROR_INTERNET_NAME_NOT_RESOLVED*/); | ||
28 | |||
29 | packageA.VerifyInstalled(false); | ||
30 | } | ||
31 | |||
32 | [RuntimeFact] | ||
33 | public void CanSetUpdateSource() | ||
34 | { | ||
35 | var packageA = this.CreatePackageInstaller("PackageA"); | ||
36 | var bundleA = this.CreateBundleInstaller("BundleUpdate"); | ||
37 | var testBAController = this.CreateTestBAController(); | ||
38 | |||
39 | testBAController.SetForceUpdateSource("https://1e1bf2be1c384fd1a0c4c0500eef971b/update_feed.atom.xml"); | ||
40 | |||
41 | packageA.VerifyInstalled(false); | ||
42 | |||
43 | bundleA.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
44 | |||
45 | bundleA.Install(); | ||
46 | |||
47 | packageA.VerifyInstalled(true); | ||
48 | } | ||
49 | |||
50 | [RuntimeFact] | ||
16 | public void CanCancelExePackageAndAbandonIt() | 51 | public void CanCancelExePackageAndAbandonIt() |
17 | { | 52 | { |
18 | var bundleD = this.CreateBundleInstaller("BundleD"); | 53 | var bundleD = this.CreateBundleInstaller("BundleD"); |
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/OptionalUpdateRegistrationTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/OptionalUpdateRegistrationTests.cs new file mode 100644 index 00000000..3731b0cc --- /dev/null +++ b/src/test/burn/WixToolsetTest.BurnE2E/OptionalUpdateRegistrationTests.cs | |||
@@ -0,0 +1,44 @@ | |||
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 OptionalUpdateRegistrationTests : BurnE2ETests | ||
10 | { | ||
11 | public OptionalUpdateRegistrationTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } | ||
12 | |||
13 | [RuntimeFact] | ||
14 | public void BundleUpdateRegistrationIsStickyAndAccurateAcrossUpgrades() | ||
15 | { | ||
16 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); | ||
17 | var packageAv2 = this.CreatePackageInstaller("PackageAv2"); | ||
18 | var bundleAv1 = this.CreateBundleInstaller("BundleAv1"); | ||
19 | var bundleAv2 = this.CreateBundleInstaller("BundleAv2"); | ||
20 | |||
21 | bundleAv1.Install(); | ||
22 | bundleAv1.VerifyRegisteredAndInPackageCache(); | ||
23 | var gotV1Registration = bundleAv1.TryGetUpdateRegistration(out var v1Registration); | ||
24 | |||
25 | bundleAv2.Install(); | ||
26 | bundleAv2.VerifyRegisteredAndInPackageCache(); | ||
27 | var gotV2Registration = bundleAv2.TryGetUpdateRegistration(out var v2Registration); | ||
28 | |||
29 | bundleAv1.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
30 | |||
31 | Assert.True(gotV1Registration, "Missing update registration after v1 install."); | ||
32 | Assert.True(gotV2Registration, "Missing update registration after v2 upgrade."); | ||
33 | |||
34 | Assert.Equal("Acme", v1Registration.Publisher); | ||
35 | Assert.Equal("Acme", v2Registration.Publisher); | ||
36 | Assert.Equal("Setup Geeks", v1Registration.PublishingGroup); | ||
37 | Assert.Equal("Setup Geeks", v2Registration.PublishingGroup); | ||
38 | Assert.Equal("~OptionalUpdateRegistrationTests", v1Registration.PackageName); | ||
39 | Assert.Equal("~OptionalUpdateRegistrationTests", v2Registration.PackageName); | ||
40 | Assert.Equal("1.0.0.0", v1Registration.PackageVersion); | ||
41 | Assert.Equal("2.0.0.0", v2Registration.PackageVersion); | ||
42 | } | ||
43 | } | ||
44 | } | ||
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/Utilities/TestBAController.cs b/src/test/burn/WixToolsetTest.BurnE2E/Utilities/TestBAController.cs index a378545e..c344ebce 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/Utilities/TestBAController.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/Utilities/TestBAController.cs | |||
@@ -67,6 +67,11 @@ namespace WixToolsetTest.BurnE2E | |||
67 | this.SetBurnTestValue("QuitAfterDetect", value); | 67 | this.SetBurnTestValue("QuitAfterDetect", value); |
68 | } | 68 | } |
69 | 69 | ||
70 | public void SetForceUpdateSource(string url) | ||
71 | { | ||
72 | this.SetBurnTestValue("ForceUpdateSource", url); | ||
73 | } | ||
74 | |||
70 | /// <summary> | 75 | /// <summary> |
71 | /// Slows the cache progress of a package. | 76 | /// Slows the cache progress of a package. |
72 | /// </summary> | 77 | /// </summary> |
@@ -108,6 +113,16 @@ namespace WixToolsetTest.BurnE2E | |||
108 | } | 113 | } |
109 | 114 | ||
110 | /// <summary> | 115 | /// <summary> |
116 | /// Forces a download action and sets the download source. | ||
117 | /// </summary> | ||
118 | /// <param name="packageId">Package identity.</param> | ||
119 | /// <param name="actionName">The URL format string.</param> | ||
120 | public void SetPackageForceDownloadSource(string packageId, string url) | ||
121 | { | ||
122 | this.SetPackageState(packageId, "ForceDownloadSource", url); | ||
123 | } | ||
124 | |||
125 | /// <summary> | ||
111 | /// Cancels the execute of a package at the next progess after the specified MSI action start. | 126 | /// Cancels the execute of a package at the next progess after the specified MSI action start. |
112 | /// </summary> | 127 | /// </summary> |
113 | /// <param name="packageId">Package identity.</param> | 128 | /// <param name="packageId">Package identity.</param> |