summaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs199
1 files changed, 194 insertions, 5 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
index e95e141c..e0b402ff 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs
@@ -15,29 +15,29 @@ namespace WixToolsetTest.BurnE2E
15 [Fact] 15 [Fact]
16 public void CanKeepSameExactPackageAfterUpgradingBundle() 16 public void CanKeepSameExactPackageAfterUpgradingBundle()
17 { 17 {
18 var packageF = this.CreatePackageInstaller("PackageF"); 18 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
19 var bundleKv1 = this.CreateBundleInstaller("BundleKv1"); 19 var bundleKv1 = this.CreateBundleInstaller("BundleKv1");
20 var bundleKv2 = this.CreateBundleInstaller("BundleKv2"); 20 var bundleKv2 = this.CreateBundleInstaller("BundleKv2");
21 21
22 packageF.VerifyInstalled(false); 22 packageFv1.VerifyInstalled(false);
23 23
24 bundleKv1.Install(); 24 bundleKv1.Install();
25 bundleKv1.VerifyRegisteredAndInPackageCache(); 25 bundleKv1.VerifyRegisteredAndInPackageCache();
26 26
27 packageF.VerifyInstalled(true); 27 packageFv1.VerifyInstalled(true);
28 28
29 bundleKv2.Install(); 29 bundleKv2.Install();
30 bundleKv2.VerifyRegisteredAndInPackageCache(); 30 bundleKv2.VerifyRegisteredAndInPackageCache();
31 bundleKv1.VerifyUnregisteredAndRemovedFromPackageCache(); 31 bundleKv1.VerifyUnregisteredAndRemovedFromPackageCache();
32 32
33 packageF.VerifyInstalled(true); 33 packageFv1.VerifyInstalled(true);
34 34
35 bundleKv2.VerifyPackageIsCached("PackageF"); 35 bundleKv2.VerifyPackageIsCached("PackageF");
36 36
37 bundleKv2.Uninstall(); 37 bundleKv2.Uninstall();
38 bundleKv2.VerifyUnregisteredAndRemovedFromPackageCache(); 38 bundleKv2.VerifyUnregisteredAndRemovedFromPackageCache();
39 39
40 packageF.VerifyInstalled(false); 40 packageFv1.VerifyInstalled(false);
41 } 41 }
42 42
43 [Fact (Skip = "https://github.com/wixtoolset/issues/issues/6401")] 43 [Fact (Skip = "https://github.com/wixtoolset/issues/issues/6401")]
@@ -539,6 +539,152 @@ namespace WixToolsetTest.BurnE2E
539 } 539 }
540 } 540 }
541 541
542 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3421")]
543 public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMajorUpdateMsi()
544 {
545 var packageAv1 = this.CreatePackageInstaller("PackageAv1");
546 var packageC = this.CreatePackageInstaller("PackageC");
547 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
548 var packageFv2 = this.CreatePackageInstaller("PackageFv2");
549 var packageGv1 = this.CreatePackageInstaller("PackageGv1");
550 var packageGv2 = this.CreatePackageInstaller("PackageGv2");
551 var bundleM = this.CreateBundleInstaller("BundleM");
552 var bundleNv1 = this.CreateBundleInstaller("BundleNv1");
553 var bundleNv2 = this.CreateBundleInstaller("BundleNv2");
554 var testBAController = this.CreateTestBAController();
555
556 packageAv1.VerifyInstalled(false);
557 packageC.VerifyInstalled(false);
558 packageFv1.VerifyInstalled(false);
559 packageFv2.VerifyInstalled(false);
560 packageGv1.VerifyInstalled(false);
561 packageGv2.VerifyInstalled(false);
562
563 bundleM.Install();
564 bundleM.VerifyRegisteredAndInPackageCache();
565
566 packageAv1.VerifyInstalled(true);
567 packageFv1.VerifyInstalled(true);
568 packageFv2.VerifyInstalled(false);
569 packageGv1.VerifyInstalled(false);
570 packageGv2.VerifyInstalled(false);
571
572 bundleNv1.Install();
573 bundleNv1.VerifyRegisteredAndInPackageCache();
574
575 packageAv1.VerifyInstalled(true);
576 packageFv1.VerifyInstalled(true);
577 packageFv2.VerifyInstalled(false);
578 packageGv1.VerifyInstalled(true);
579 packageGv2.VerifyInstalled(false);
580
581 // Make PackageC fail.
582 testBAController.SetPackageCancelExecuteAtProgress("PackageC", 10);
583
584 bundleNv2.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
585 bundleNv2.VerifyUnregisteredAndRemovedFromPackageCache();
586 bundleNv1.VerifyRegisteredAndInPackageCache();
587
588 packageAv1.VerifyInstalled(true);
589 packageC.VerifyInstalled(false);
590 packageFv1.VerifyInstalled(true);
591 packageFv2.VerifyInstalled(false);
592 packageGv1.VerifyInstalled(true);
593 packageGv2.VerifyInstalled(false);
594
595 bundleM.Uninstall();
596 bundleM.VerifyUnregisteredAndRemovedFromPackageCache();
597
598 packageAv1.VerifyInstalled(false);
599 packageFv1.VerifyInstalled(true);
600 packageFv2.VerifyInstalled(false);
601 packageGv1.VerifyInstalled(true);
602 packageGv2.VerifyInstalled(false);
603
604 bundleNv1.Uninstall();
605 bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache();
606
607 packageAv1.VerifyInstalled(false);
608 packageFv1.VerifyInstalled(false);
609 packageFv2.VerifyInstalled(false);
610 packageGv1.VerifyInstalled(false);
611 packageGv2.VerifyInstalled(false);
612 }
613
614 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/6510")]
615 public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMinorUpdateMsi()
616 {
617 var packageAv1 = this.CreatePackageInstaller("PackageAv1");
618 var packageC = this.CreatePackageInstaller("PackageC");
619 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
620 var packageFv101 = this.CreatePackageInstaller("PackageFv1_0_1");
621 var packageGv1 = this.CreatePackageInstaller("PackageGv1");
622 var packageGv101 = this.CreatePackageInstaller("PackageGv1_0_1");
623 var bundleM = this.CreateBundleInstaller("BundleM");
624 var bundleNv1 = this.CreateBundleInstaller("BundleNv1");
625 var bundleNv101 = this.CreateBundleInstaller("BundleNv1_0_1");
626 var testBAController = this.CreateTestBAController();
627
628 packageAv1.VerifyInstalled(false);
629 packageC.VerifyInstalled(false);
630 packageFv1.VerifyInstalledWithVersion(false);
631 packageFv101.VerifyInstalledWithVersion(false);
632 packageGv1.VerifyInstalledWithVersion(false);
633 packageGv101.VerifyInstalledWithVersion(false);
634
635 bundleM.Install();
636 bundleM.VerifyRegisteredAndInPackageCache();
637
638 packageAv1.VerifyInstalled(true);
639 packageFv1.VerifyInstalledWithVersion(true);
640 packageFv101.VerifyInstalledWithVersion(false);
641 packageGv1.VerifyInstalledWithVersion(false);
642 packageGv101.VerifyInstalledWithVersion(false);
643
644 bundleNv1.Install();
645 bundleNv1.VerifyRegisteredAndInPackageCache();
646
647 packageAv1.VerifyInstalled(true);
648 packageFv1.VerifyInstalledWithVersion(true);
649 packageFv101.VerifyInstalledWithVersion(false);
650 packageGv1.VerifyInstalledWithVersion(true);
651 packageGv101.VerifyInstalledWithVersion(false);
652
653 // Make PackageC fail.
654 testBAController.SetPackageCancelExecuteAtProgress("PackageC", 10);
655
656 // Verify https://github.com/wixtoolset/issues/issues/6510 - Dependency provider removed on rollback even though package is not rolled back
657 bundleNv101.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
658 bundleNv101.VerifyUnregisteredAndRemovedFromPackageCache();
659 bundleNv1.VerifyRegisteredAndInPackageCache();
660
661 // The expected values will change after implementing https://github.com/wixtoolset/issues/issues/6535 and https://github.com/wixtoolset/issues/issues/3421
662 packageAv1.VerifyInstalled(true);
663 packageC.VerifyInstalled(false);
664 packageFv1.VerifyInstalledWithVersion(false);
665 packageFv101.VerifyInstalledWithVersion(true);
666 packageGv1.VerifyInstalledWithVersion(false);
667 packageGv101.VerifyInstalledWithVersion(true);
668
669 bundleM.Uninstall();
670 bundleM.VerifyUnregisteredAndRemovedFromPackageCache();
671
672 packageAv1.VerifyInstalled(false);
673 packageFv1.VerifyInstalledWithVersion(false);
674 packageFv101.VerifyInstalledWithVersion(true);
675 packageGv1.VerifyInstalledWithVersion(false);
676 packageGv101.VerifyInstalledWithVersion(true);
677
678 bundleNv1.Uninstall();
679 bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache();
680
681 packageAv1.VerifyInstalled(false);
682 packageFv1.VerifyInstalledWithVersion(false);
683 packageFv101.VerifyInstalledWithVersion(false);
684 packageGv1.VerifyInstalledWithVersion(false);
685 packageGv101.VerifyInstalledWithVersion(false);
686 }
687
542 [Fact] 688 [Fact]
543 public void DoesntRegisterDependencyOnPackageNotSelectedForInstall() 689 public void DoesntRegisterDependencyOnPackageNotSelectedForInstall()
544 { 690 {
@@ -711,6 +857,49 @@ namespace WixToolsetTest.BurnE2E
711 bundleA.VerifyExeTestRegistryRootDeleted(testRegistryValueExe); 857 bundleA.VerifyExeTestRegistryRootDeleted(testRegistryValueExe);
712 } 858 }
713 859
860 [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3850")]
861 public void RemovesDependencyProviderFromUpgradedPackageDuringUninstall()
862 {
863 var packageC = this.CreatePackageInstaller("PackageC");
864 var packageFv1 = this.CreatePackageInstaller("PackageFv1");
865 var packageFv2 = this.CreatePackageInstaller("PackageFv2");
866 var packageGv1 = this.CreatePackageInstaller("PackageGv1");
867 var packageGv2 = this.CreatePackageInstaller("PackageGv2");
868 var bundleNv1 = this.CreateBundleInstaller("BundleNv1");
869 var bundleNv2 = this.CreateBundleInstaller("BundleNv2");
870
871 packageC.VerifyInstalled(false);
872 packageFv1.VerifyInstalled(false);
873 packageFv2.VerifyInstalled(false);
874 packageGv1.VerifyInstalled(false);
875 packageGv2.VerifyInstalled(false);
876
877 bundleNv1.Install();
878 bundleNv1.VerifyRegisteredAndInPackageCache();
879
880 packageC.VerifyInstalled(false);
881 packageFv1.VerifyInstalled(true);
882 packageFv2.VerifyInstalled(false);
883 packageGv1.VerifyInstalled(true);
884 packageGv2.VerifyInstalled(false);
885
886 // Verify https://github.com/wixtoolset/issues/issues/3850 - Dependency provider not removed on uninstall from upgrade
887 bundleNv2.Install();
888 bundleNv2.VerifyRegisteredAndInPackageCache();
889 bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache();
890
891 packageC.VerifyInstalled(true);
892 packageFv1.VerifyInstalled(false);
893 packageFv2.VerifyInstalled(true);
894 packageGv1.VerifyInstalled(false);
895 packageGv2.VerifyInstalled(true);
896
897 bundleNv1.VerifyPackageIsCached("PackageF", false);
898 bundleNv1.VerifyPackageIsCached("PackageG", false);
899 bundleNv1.VerifyPackageProviderRemoved("PackageF");
900 bundleNv1.VerifyPackageProviderRemoved("PackageG");
901 }
902
714 [Fact] 903 [Fact]
715 public void SkipsCrossScopeDependencyRegistration() 904 public void SkipsCrossScopeDependencyRegistration()
716 { 905 {