From 5d6da35cb921f0defc55b854079ad7dded4da333 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Tue, 26 Jul 2016 11:45:57 -0700 Subject: [PATCH] Add test verifying a chunked response can be written manually --- .../ChunkedResponseTests.cs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/Microsoft.AspNetCore.Server.KestrelTests/ChunkedResponseTests.cs b/test/Microsoft.AspNetCore.Server.KestrelTests/ChunkedResponseTests.cs index 62758e36a1..1427cfc90a 100644 --- a/test/Microsoft.AspNetCore.Server.KestrelTests/ChunkedResponseTests.cs +++ b/test/Microsoft.AspNetCore.Server.KestrelTests/ChunkedResponseTests.cs @@ -227,6 +227,42 @@ namespace Microsoft.AspNetCore.Server.KestrelTests } } } + + [Theory] + [MemberData(nameof(ConnectionFilterData))] + public async Task ChunksCanBeWrittenManually(TestServiceContext testContext) + { + using (var server = new TestServer(async httpContext => + { + var response = httpContext.Response; + response.Headers["Transfer-Encoding"] = "chunked"; + + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("6\r\nHello \r\n"), 0, 11); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("6\r\nWorld!\r\n"), 0, 11); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("0\r\n\r\n"), 0, 5); + }, testContext)) + { + using (var connection = server.CreateConnection()) + { + await connection.SendEnd( + "GET / HTTP/1.1", + "", + ""); + await connection.ReceiveEnd( + "HTTP/1.1 200 OK", + $"Date: {testContext.DateHeaderValue}", + "Transfer-Encoding: chunked", + "", + "6", + "Hello ", + "6", + "World!", + "0", + "", + ""); + } + } + } } }