aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E/WixStdBaTests.cs
blob: ec7bca6f92870efde2f4664b59185e97bd4a2cb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// 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.

namespace WixToolsetTest.BurnE2E
{
    using WixTestTools;
    using Xunit.Abstractions;

    public class WixStdBaTests : BurnE2ETests
    {
        public WixStdBaTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }

        [RuntimeFact]
        public void ExitsWithErrorWhenDowngradingWithoutSuppression()
        {
            var packageA = this.CreatePackageInstaller("PackageA");
            var bundle1v10 = this.CreateBundleInstaller("WixStdBaTest1_v10");
            var bundle1v11 = this.CreateBundleInstaller("WixStdBaTest1_v11");

            packageA.VerifyInstalled(false);

            bundle1v11.Install();
            bundle1v11.VerifyRegisteredAndInPackageCache();

            packageA.VerifyInstalled(true);

            bundle1v10.Install((int)MSIExec.MSIExecReturnCode.ERROR_PRODUCT_VERSION);
            bundle1v10.VerifyUnregisteredAndRemovedFromPackageCache();
            bundle1v11.VerifyRegisteredAndInPackageCache();

            packageA.VerifyInstalled(true);
        }

        [RuntimeFact]
        public void ExitsWithoutErrorWhenDowngradingWithSuppression()
        {
            var packageA = this.CreatePackageInstaller("PackageA");
            var bundle1v11 = this.CreateBundleInstaller("WixStdBaTest1_v11");
            var bundle1v12 = this.CreateBundleInstaller("WixStdBaTest1_v12");

            packageA.VerifyInstalled(false);

            bundle1v12.Install();
            bundle1v12.VerifyRegisteredAndInPackageCache();

            packageA.VerifyInstalled(true);

            bundle1v11.Install();
            bundle1v11.VerifyUnregisteredAndRemovedFromPackageCache();
            bundle1v12.VerifyRegisteredAndInPackageCache();

            packageA.VerifyInstalled(true);
        }

        [RuntimeFact]
        public void SucceedsWhenFeedUrlIsBad()
        {
            // This test never fails because update checks are skipped in -quiet.
            // See https://github.com/wixtoolset/issues/issues/7090.
            var packageA = this.CreatePackageInstaller("PackageA");
            var bundle = this.CreateBundleInstaller("WixStdBaTest_BadUpdateFeed");

            packageA.VerifyInstalled(false);

            bundle.Install();
            bundle.VerifyRegisteredAndInPackageCache();

            packageA.VerifyInstalled(true);

            bundle.Uninstall();
            bundle.VerifyUnregisteredAndRemovedFromPackageCache();

            packageA.VerifyInstalled(false);
        }
    }
}