From 28fd5a981792e0ba4eeeb5d2ac431d12e1c214ec Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Tue, 1 Apr 2025 16:48:38 -0400 Subject: Sync IEngine.SetDownloadSource with native side. Fixes https://github.com/wixtoolset/issues/issues/9018 --- src/test/burn/TestBA/TestBA.cs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/test/burn/TestBA') diff --git a/src/test/burn/TestBA/TestBA.cs b/src/test/burn/TestBA/TestBA.cs index 1556acd0..4f75a055 100644 --- a/src/test/burn/TestBA/TestBA.cs +++ b/src/test/burn/TestBA/TestBA.cs @@ -41,6 +41,7 @@ namespace WixToolset.Test.BA private int cancelOnProgressAtProgress; private int retryExecuteFilesInUse; private bool rollingBack; + private string forceDownloadSource; private IBootstrapperCommand Command { get; set; } @@ -375,6 +376,12 @@ namespace WixToolset.Test.BA { this.Log(" CancelCacheAtProgress: {0}", this.cancelCacheAtProgress); } + + this.forceDownloadSource = this.ReadPackageAction(args.PackageId, "ForceDownloadSource"); + if (!String.IsNullOrEmpty(this.forceDownloadSource)) + { + this.Log(" ForceDownloadSource: {0}", this.forceDownloadSource); + } } protected override void OnCachePackageNonVitalValidationFailure(CachePackageNonVitalValidationFailureEventArgs args) @@ -387,6 +394,29 @@ namespace WixToolset.Test.BA this.Log("OnCachePackageNonVitalValidationFailure() - id: {0}, default: {1}, requested: {2}", args.PackageId, args.Recommendation, args.Action); } + protected override void OnCacheAcquireResolving(CacheAcquireResolvingEventArgs args) + { + if (!String.IsNullOrEmpty(this.forceDownloadSource)) + { + args.Action = CacheResolveOperation.Download; + var url = String.Format(this.forceDownloadSource, args.PayloadId); + + this.Log("OnCacheAcquireResolving: {0} => {1}", this.forceDownloadSource, url); + + this.engine.SetDownloadSource( + String.Empty, + args.PayloadId, + url, + String.Empty, + String.Empty, + String.Empty); + } + else + { + this.Log("OnCacheAcquireResolving not forcing download"); + } + } + protected override void OnCacheAcquireProgress(CacheAcquireProgressEventArgs args) { this.Log("OnCacheAcquireProgress() - container/package: {0}, payload: {1}, progress: {2}, total: {3}, overall progress: {4}%", args.PackageOrContainerId, args.PayloadId, args.Progress, args.Total, args.OverallPercentage); -- cgit v1.2.3-55-g6feb