diff options
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs')
-rw-r--r-- | src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs | 199 |
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 | { |