Skip to content

Commit b51b398

Browse files
Tratcherdougbu
authored andcommitted
React to new HttpClient header size check #45811 (#45880)
1 parent 5179f19 commit b51b398

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/Servers/Kestrel/test/Interop.FunctionalTests/HttpClientHttp2InteropTests.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1342,7 +1342,6 @@ public async Task Settings_MaxFrameSize_Larger_Server(string scheme)
13421342

13431343
[Theory]
13441344
[MemberData(nameof(SupportedSchemes))]
1345-
[QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/45811")]
13461345
public async Task Settings_MaxHeaderListSize_Server(string scheme)
13471346
{
13481347
var oneKbString = new string('a', 1024);
@@ -1351,26 +1350,27 @@ public async Task Settings_MaxHeaderListSize_Server(string scheme)
13511350
{
13521351
ConfigureKestrel(webHostBuilder, scheme);
13531352
webHostBuilder.ConfigureServices(AddTestLogging)
1354-
.Configure(app => app.Run(context => throw new NotImplementedException()));
1353+
.Configure(app => app.Run(context => context.Response.WriteAsync("Hello World")));
13551354
});
13561355
using var host = await hostBuilder.StartAsync().DefaultTimeout();
13571356

13581357
var url = host.MakeUrl(scheme);
13591358

13601359
using var client = CreateClient();
1361-
// There's no point in waiting for the settings to sync, the client doesn't check the header list size setting.
1362-
// https://github.com/dotnet/runtime/blob/48a78bfa13e9c710851690621fc2c0fe1637802c/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs#L467-L494
1360+
// Send an initial request to ensure the settings get synced before the real test.
1361+
var responseBody = await client.GetStringAsync(url).DefaultTimeout();
1362+
Assert.Equal("Hello World", responseBody);
13631363

13641364
var request = CreateRequestMessage(HttpMethod.Get, url, content: null);
13651365
// The default size limit is 32kb.
13661366
for (var i = 0; i < 33; i++)
13671367
{
13681368
request.Headers.Add("header" + i, oneKbString + i);
13691369
}
1370-
var response = await client.SendAsync(request).DefaultTimeout();
1371-
await host.StopAsync().DefaultTimeout();
1370+
var ex = await Assert.ThrowsAsync<HttpRequestException>(() => client.SendAsync(request).DefaultTimeout());
1371+
Assert.Equal("The HTTP request headers length exceeded the server limit of 32768 bytes.", ex.Message);
13721372

1373-
Assert.Equal(HttpStatusCode.RequestHeaderFieldsTooLarge, response.StatusCode);
1373+
await host.StopAsync().DefaultTimeout();
13741374
}
13751375

13761376
[Theory]

0 commit comments

Comments
 (0)