diff --git a/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs b/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs index b9a65a320cb890fb24aae1fd6cc6279f37fe667e..d9a6e57929b1d12ec1221d32b79295094aa3d1a4 100644 --- a/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs +++ b/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs @@ -7,6 +7,7 @@ using System.IO; using System.Net.Http; using System.Security.Cryptography; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; @@ -38,7 +39,7 @@ namespace Microsoft.AspNetCore.Identity.Test Assert.NotEmpty(scriptTags); var shasum = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); - using (var client = new HttpClient()) + using (var client = new HttpClient(new RetryHandler(new HttpClientHandler() { }))) { foreach (var script in scriptTags) { @@ -62,6 +63,25 @@ namespace Microsoft.AspNetCore.Identity.Test }); } + class RetryHandler : DelegatingHandler + { + public RetryHandler(HttpMessageHandler innerHandler) : base(innerHandler) { } + protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + HttpResponseMessage result = null; + for (var i = 0; i < 10; i++) + { + result = await base.SendAsync(request, cancellationToken); + if (result.IsSuccessStatusCode) + { + return result; + } + await Task.Delay(1000); + } + return result; + } + } + private struct ScriptTag { public string Src;