aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs14
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs37
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/OptionalUpdateRegistrationTests.cs44
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/Utilities/TestBAController.cs15
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
3namespace WixToolsetTest.BurnE2E 3namespace 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
3namespace 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>