From dce0861f7b76f0a229631a82e7fdb33f52191c82 Mon Sep 17 00:00:00 2001 From: Miha Zupan Date: Tue, 4 Jun 2024 18:49:34 +0200 Subject: [PATCH] Add a test for manually setting HttpWebRequest.ContentLength while buffering the request body --- .../tests/HttpWebRequestTest.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs b/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs index 99b96e89b53ee4..601c454161b8e8 100644 --- a/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs +++ b/src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs @@ -2120,9 +2120,11 @@ await server.AcceptConnectionAsync(_ => } [Theory] - [InlineData(true)] - [InlineData(false)] - public async Task SendHttpPostRequest_WhenBufferingChanges_Success(bool buffering) + [InlineData(true, true)] + [InlineData(true, false)] + [InlineData(false, true)] + [InlineData(false, false)] + public async Task SendHttpPostRequest_WhenBufferingChanges_Success(bool buffering, bool setContentLength) { byte[] randomData = Encoding.ASCII.GetBytes("Hello World!!!!\n"); await LoopbackServer.CreateClientAndServerAsync( @@ -2132,6 +2134,12 @@ await LoopbackServer.CreateClientAndServerAsync( HttpWebRequest request = WebRequest.CreateHttp(uri); request.Method = "POST"; request.AllowWriteStreamBuffering = buffering; + + if (setContentLength) + { + request.Headers.Add("content-length", size.ToString()); + } + using var stream = await request.GetRequestStreamAsync(); for (int i = 0; i < size / randomData.Length; i++) {