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> |
