diff options
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs')
-rw-r--r-- | src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs index d8428a54..bbc0b387 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs | |||
@@ -2,7 +2,9 @@ | |||
2 | 2 | ||
3 | namespace WixToolsetTest.BurnE2E | 3 | namespace WixToolsetTest.BurnE2E |
4 | { | 4 | { |
5 | using System.Threading; | ||
5 | using WixTestTools; | 6 | using WixTestTools; |
7 | using WixToolset.Mba.Core; | ||
6 | using Xunit; | 8 | using Xunit; |
7 | using Xunit.Abstractions; | 9 | using Xunit.Abstractions; |
8 | 10 | ||
@@ -11,6 +13,46 @@ namespace WixToolsetTest.BurnE2E | |||
11 | public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } | 13 | public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } |
12 | 14 | ||
13 | [Fact] | 15 | [Fact] |
16 | public void CanCancelExePackageAndAbandonIt() | ||
17 | { | ||
18 | var bundleD = this.CreateBundleInstaller("BundleD"); | ||
19 | var testBAController = this.CreateTestBAController(); | ||
20 | |||
21 | // Cancel package ExeA after it starts. | ||
22 | testBAController.SetPackageCancelExecuteAtProgress("ExeA", 1); | ||
23 | testBAController.SetPackageRecordTestRegistryValue("ExeA"); | ||
24 | |||
25 | var logPath = bundleD.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT); | ||
26 | bundleD.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
27 | |||
28 | Assert.True(LogVerifier.MessageInLogFile(logPath, "TestRegistryValue: ExeA, Version, ''")); | ||
29 | |||
30 | // Make sure ExeA finishes running. | ||
31 | Thread.Sleep(3000); | ||
32 | |||
33 | bundleD.VerifyExeTestRegistryValue("ExeA", "1.0.0.0"); | ||
34 | } | ||
35 | |||
36 | [Fact] | ||
37 | public void CanCancelExePackageAndWaitUntilItCompletes() | ||
38 | { | ||
39 | var bundleD = this.CreateBundleInstaller("BundleD"); | ||
40 | var testBAController = this.CreateTestBAController(); | ||
41 | |||
42 | // Cancel package ExeA after it starts. | ||
43 | testBAController.SetPackageCancelExecuteAtProgress("ExeA", 1); | ||
44 | testBAController.SetPackageProcessCancelAction("ExeA", BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION.Wait); | ||
45 | testBAController.SetPackageRecordTestRegistryValue("ExeA"); | ||
46 | |||
47 | var logPath = bundleD.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT); | ||
48 | bundleD.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
49 | |||
50 | Assert.True(LogVerifier.MessageInLogFile(logPath, "TestRegistryValue: ExeA, Version, '1.0.0.0'")); | ||
51 | |||
52 | bundleD.VerifyExeTestRegistryValue("ExeA", "1.0.0.0"); | ||
53 | } | ||
54 | |||
55 | [Fact] | ||
14 | public void CanCancelMsiPackageVeryEarly() | 56 | public void CanCancelMsiPackageVeryEarly() |
15 | { | 57 | { |
16 | var packageA = this.CreatePackageInstaller("PackageA"); | 58 | var packageA = this.CreatePackageInstaller("PackageA"); |