summaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs42
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
3namespace WixToolsetTest.BurnE2E 3namespace 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");