Skip to content

Commit dce0861

Browse files
committed
Add a test for manually setting HttpWebRequest.ContentLength while buffering the request body
1 parent db5e98d commit dce0861

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/libraries/System.Net.Requests/tests/HttpWebRequestTest.cs

+11-3
Original file line numberDiff line numberDiff line change
@@ -2120,9 +2120,11 @@ await server.AcceptConnectionAsync(_ =>
21202120
}
21212121

21222122
[Theory]
2123-
[InlineData(true)]
2124-
[InlineData(false)]
2125-
public async Task SendHttpPostRequest_WhenBufferingChanges_Success(bool buffering)
2123+
[InlineData(true, true)]
2124+
[InlineData(true, false)]
2125+
[InlineData(false, true)]
2126+
[InlineData(false, false)]
2127+
public async Task SendHttpPostRequest_WhenBufferingChanges_Success(bool buffering, bool setContentLength)
21262128
{
21272129
byte[] randomData = Encoding.ASCII.GetBytes("Hello World!!!!\n");
21282130
await LoopbackServer.CreateClientAndServerAsync(
@@ -2132,6 +2134,12 @@ await LoopbackServer.CreateClientAndServerAsync(
21322134
HttpWebRequest request = WebRequest.CreateHttp(uri);
21332135
request.Method = "POST";
21342136
request.AllowWriteStreamBuffering = buffering;
2137+
2138+
if (setContentLength)
2139+
{
2140+
request.Headers.Add("content-length", size.ToString());
2141+
}
2142+
21352143
using var stream = await request.GetRequestStreamAsync();
21362144
for (int i = 0; i < size / randomData.Length; i++)
21372145
{

0 commit comments

Comments
 (0)