aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2025-03-20 21:14:12 -0400
committerRob Mensching <rob@firegiant.com>2025-05-28 16:33:16 -0700
commit68a2b7199b360a0dce6d1b1ebf13dc44f21ba89f (patch)
treef581b639fe5cedd1ade77f13184a8cff312a3813 /src/test/burn/WixToolsetTest.BurnE2E
parent0800d94e8534da426ba89f60287511d07fe4f674 (diff)
downloadwix-68a2b7199b360a0dce6d1b1ebf13dc44f21ba89f.tar.gz
wix-68a2b7199b360a0dce6d1b1ebf13dc44f21ba89f.tar.bz2
wix-68a2b7199b360a0dce6d1b1ebf13dc44f21ba89f.zip
Update registration disappears during upgrade.
Update registration is stored in a shared registry key that Burn takes care to keep around across upgrades. The approach it used broke between WiX v3 and WiX v5. This change makes it work again by writing update registration when the session ends.
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/OptionalUpdateRegistrationTests.cs44
1 files changed, 44 insertions, 0 deletions
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}