diff --git a/samples/SampleApp/Startup.cs b/samples/SampleApp/Startup.cs index 61840db407..5453372842 100644 --- a/samples/SampleApp/Startup.cs +++ b/samples/SampleApp/Startup.cs @@ -6,6 +6,7 @@ using Microsoft.AspNet.Builder; using Microsoft.AspNet.Http; using Microsoft.Extensions.Logging; using Microsoft.Dnx.Runtime; +using Microsoft.AspNet.Server.Kestrel; #if DNX451 using System.IO; diff --git a/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs b/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs index 357bc78e7b..dec15232f7 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/KestrelEngine.cs @@ -11,7 +11,6 @@ using Microsoft.AspNet.Server.Kestrel.Infrastructure; using Microsoft.AspNet.Server.Kestrel.Networking; using Microsoft.Dnx.Runtime; using Microsoft.Extensions.Logging; -using Microsoft.Framework.Logging; namespace Microsoft.AspNet.Server.Kestrel { diff --git a/test/Microsoft.AspNet.Server.KestrelTests/ChunkedResponseTests.cs b/test/Microsoft.AspNet.Server.KestrelTests/ChunkedResponseTests.cs index f7e4898cad..4c9f926600 100644 --- a/test/Microsoft.AspNet.Server.KestrelTests/ChunkedResponseTests.cs +++ b/test/Microsoft.AspNet.Server.KestrelTests/ChunkedResponseTests.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using Microsoft.AspNet.Http.Features; using System; using System.Text; using System.Threading.Tasks; @@ -15,9 +16,10 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(async frame => { - frame.ResponseHeaders.Clear(); - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Hello "), 0, 6); - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("World!"), 0, 6); + var response = frame.Get(); + response.Headers.Clear(); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Hello "), 0, 6); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("World!"), 0, 6); })) { using (var connection = new TestConnection()) @@ -46,10 +48,11 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(async frame => { - frame.ResponseHeaders.Clear(); - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Hello "), 0, 6); - await frame.ResponseBody.WriteAsync(new byte[0], 0, 0); - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("World!"), 0, 6); + var response = frame.Get(); + response.Headers.Clear(); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Hello "), 0, 6); + await response.Body.WriteAsync(new byte[0], 0, 0); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("World!"), 0, 6); })) { using (var connection = new TestConnection()) @@ -78,8 +81,9 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(async frame => { - frame.ResponseHeaders.Clear(); - await frame.ResponseBody.WriteAsync(new byte[0], 0, 0); + var response = frame.Get(); + response.Headers.Clear(); + await response.Body.WriteAsync(new byte[0], 0, 0); })) { using (var connection = new TestConnection()) @@ -104,8 +108,9 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(async frame => { - frame.ResponseHeaders.Clear(); - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Hello World!"), 0, 12); + var response = frame.Get(); + response.Headers.Clear(); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Hello World!"), 0, 12); throw new Exception(); })) { @@ -133,8 +138,9 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(async frame => { - frame.ResponseHeaders.Clear(); - await frame.ResponseBody.WriteAsync(new byte[0], 0, 0); + var response = frame.Get(); + response.Headers.Clear(); + await response.Body.WriteAsync(new byte[0], 0, 0); throw new Exception(); })) { diff --git a/test/Microsoft.AspNet.Server.KestrelTests/ConnectionFilterTests.cs b/test/Microsoft.AspNet.Server.KestrelTests/ConnectionFilterTests.cs index 20c5b8fc1b..d184cda6d2 100644 --- a/test/Microsoft.AspNet.Server.KestrelTests/ConnectionFilterTests.cs +++ b/test/Microsoft.AspNet.Server.KestrelTests/ConnectionFilterTests.cs @@ -6,23 +6,26 @@ using System.Threading.Tasks; using Microsoft.AspNet.Server.Kestrel.Filter; using Microsoft.AspNet.Server.Kestrel.Http; using Xunit; +using Microsoft.AspNet.Http.Features; namespace Microsoft.AspNet.Server.KestrelTests { public class ConnectionFilterTests { - private async Task App(Frame frame) + private async Task App(IFeatureCollection frame) { - frame.ResponseHeaders.Clear(); + var request = frame.Get(); + var response = frame.Get(); + response.Headers.Clear(); while (true) { var buffer = new byte[8192]; - var count = await frame.RequestBody.ReadAsync(buffer, 0, buffer.Length); + var count = await request.Body.ReadAsync(buffer, 0, buffer.Length); if (count == 0) { break; } - await frame.ResponseBody.WriteAsync(buffer, 0, count); + await response.Body.WriteAsync(buffer, 0, count); } } diff --git a/test/Microsoft.AspNet.Server.KestrelTests/EngineTests.cs b/test/Microsoft.AspNet.Server.KestrelTests/EngineTests.cs index e2039d739e..4a74eb84dd 100644 --- a/test/Microsoft.AspNet.Server.KestrelTests/EngineTests.cs +++ b/test/Microsoft.AspNet.Server.KestrelTests/EngineTests.cs @@ -13,6 +13,7 @@ using Microsoft.AspNet.Server.Kestrel.Http; using Microsoft.Dnx.Runtime; using Microsoft.Dnx.Runtime.Infrastructure; using Xunit; +using Microsoft.AspNet.Http.Features; namespace Microsoft.AspNet.Server.KestrelTests { @@ -40,18 +41,20 @@ namespace Microsoft.AspNet.Server.KestrelTests } } - private async Task App(Frame frame) + private async Task App(IFeatureCollection frame) { - frame.ResponseHeaders.Clear(); + var request = frame.Get(); + var response = frame.Get(); + response.Headers.Clear(); while (true) { var buffer = new byte[8192]; - var count = await frame.RequestBody.ReadAsync(buffer, 0, buffer.Length); + var count = await request.Body.ReadAsync(buffer, 0, buffer.Length); if (count == 0) { break; } - await frame.ResponseBody.WriteAsync(buffer, 0, count); + await response.Body.WriteAsync(buffer, 0, count); } } @@ -78,20 +81,22 @@ namespace Microsoft.AspNet.Server.KestrelTests } } - private async Task AppChunked(Frame frame) + private async Task AppChunked(IFeatureCollection frame) { + var request = frame.Get(); + var response = frame.Get(); var data = new MemoryStream(); - await frame.RequestBody.CopyToAsync(data); + await request.Body.CopyToAsync(data); var bytes = data.ToArray(); - frame.ResponseHeaders.Clear(); - frame.ResponseHeaders["Content-Length"] = new[] { bytes.Length.ToString() }; - await frame.ResponseBody.WriteAsync(bytes, 0, bytes.Length); + response.Headers.Clear(); + response.Headers["Content-Length"] = bytes.Length.ToString(); + await response.Body.WriteAsync(bytes, 0, bytes.Length); } - private Task EmptyApp(Frame frame) + private Task EmptyApp(IFeatureCollection frame) { - frame.ResponseHeaders.Clear(); + frame.Get().Headers.Clear(); return Task.FromResult(null); } @@ -494,12 +499,14 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(async frame => { - frame.ResponseHeaders.Clear(); + var request = frame.Get(); + var response = frame.Get(); + response.Headers.Clear(); - using (var reader = new StreamReader(frame.RequestBody, Encoding.ASCII)) + using (var reader = new StreamReader(request.Body, Encoding.ASCII)) { var statusString = await reader.ReadLineAsync(); - frame.StatusCode = int.Parse(statusString); + response.StatusCode = int.Parse(statusString); } }, testContext)) { @@ -547,15 +554,16 @@ namespace Microsoft.AspNet.Server.KestrelTests using (var server = new TestServer(frame => { - frame.OnStarting(_ => + var response = frame.Get(); + response.OnStarting(_ => { onStartingCalled = true; return Task.FromResult(null); }, null); // Anything added to the ResponseHeaders dictionary is ignored - frame.ResponseHeaders.Clear(); - frame.ResponseHeaders["Content-Length"] = new[] { "11" }; + response.Headers.Clear(); + response.Headers["Content-Length"] = "11"; throw new Exception(); }, testContext)) { @@ -599,15 +607,16 @@ namespace Microsoft.AspNet.Server.KestrelTests using (var server = new TestServer(async frame => { - frame.OnStarting(_ => + var response = frame.Get(); + response.OnStarting(_ => { onStartingCalled = true; return Task.FromResult(null); }, null); - frame.ResponseHeaders.Clear(); - frame.ResponseHeaders["Content-Length"] = new[] { "11" }; - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Hello World"), 0, 11); + response.Headers.Clear(); + response.Headers["Content-Length"] = new[] { "11" }; + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Hello World"), 0, 11); throw new Exception(); }, testContext)) { @@ -636,15 +645,16 @@ namespace Microsoft.AspNet.Server.KestrelTests using (var server = new TestServer(async frame => { - frame.OnStarting(_ => + var response = frame.Get(); + response.OnStarting(_ => { onStartingCalled = true; return Task.FromResult(null); }, null); - frame.ResponseHeaders.Clear(); - frame.ResponseHeaders["Content-Length"] = new[] { "11" }; - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Hello"), 0, 5); + response.Headers.Clear(); + response.Headers["Content-Length"] = new[] { "11" }; + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Hello"), 0, 5); throw new Exception(); }, testContext)) { @@ -740,13 +750,14 @@ namespace Microsoft.AspNet.Server.KestrelTests { using (var server = new TestServer(frame => { - frame.OnStarting(_ => + var response = frame.Get(); + response.OnStarting(_ => { throw new Exception(); }, null); - frame.ResponseHeaders.Clear(); - frame.ResponseHeaders["Content-Length"] = new[] { "11" }; + response.Headers.Clear(); + response.Headers["Content-Length"] = new[] { "11" }; // If we write to the response stream, we will not get a 500. @@ -791,21 +802,22 @@ namespace Microsoft.AspNet.Server.KestrelTests { var onStartingException = new Exception(); - frame.OnStarting(_ => + var response = frame.Get(); + response.OnStarting(_ => { throw onStartingException; }, null); - frame.ResponseHeaders.Clear(); - frame.ResponseHeaders["Content-Length"] = new[] { "11" }; + response.Headers.Clear(); + response.Headers["Content-Length"] = new[] { "11" }; var writeException = await Assert.ThrowsAsync(async () => - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Hello World"), 0, 11)); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Hello World"), 0, 11)); Assert.Same(onStartingException, writeException); // The second write should succeed since the OnStarting callback will not be called again - await frame.ResponseBody.WriteAsync(Encoding.ASCII.GetBytes("Exception!!"), 0, 11); + await response.Body.WriteAsync(Encoding.ASCII.GetBytes("Exception!!"), 0, 11); }, testContext)) { using (var connection = new TestConnection()) diff --git a/test/Microsoft.AspNet.Server.KestrelTests/HttpsConnectionFilterTests.cs b/test/Microsoft.AspNet.Server.KestrelTests/HttpsConnectionFilterTests.cs index 48167e7e68..143d802713 100644 --- a/test/Microsoft.AspNet.Server.KestrelTests/HttpsConnectionFilterTests.cs +++ b/test/Microsoft.AspNet.Server.KestrelTests/HttpsConnectionFilterTests.cs @@ -13,23 +13,26 @@ using Microsoft.AspNet.Server.Kestrel.Http; using Microsoft.AspNet.Server.Kestrel.Https; using Microsoft.AspNet.Testing.xunit; using Xunit; +using Microsoft.AspNet.Http.Features; namespace Microsoft.AspNet.Server.KestrelTests { public class HttpsConnectionFilterTests { - private async Task App(Frame frame) + private async Task App(IFeatureCollection frame) { - frame.ResponseHeaders.Clear(); + var request = frame.Get(); + var response = frame.Get(); + response.Headers.Clear(); while (true) { var buffer = new byte[8192]; - var count = await frame.RequestBody.ReadAsync(buffer, 0, buffer.Length); + var count = await request.Body.ReadAsync(buffer, 0, buffer.Length); if (count == 0) { break; } - await frame.ResponseBody.WriteAsync(buffer, 0, count); + await response.Body.WriteAsync(buffer, 0, count); } } diff --git a/test/Microsoft.AspNet.Server.KestrelTests/TestServer.cs b/test/Microsoft.AspNet.Server.KestrelTests/TestServer.cs index 4624dc1e9c..d47238341d 100644 --- a/test/Microsoft.AspNet.Server.KestrelTests/TestServer.cs +++ b/test/Microsoft.AspNet.Server.KestrelTests/TestServer.cs @@ -7,6 +7,7 @@ using Microsoft.AspNet.Server.Kestrel; using Microsoft.AspNet.Server.Kestrel.Http; using Microsoft.Dnx.Runtime; using Microsoft.Dnx.Runtime.Infrastructure; +using Microsoft.AspNet.Http.Features; namespace Microsoft.AspNet.Server.KestrelTests { @@ -18,16 +19,16 @@ namespace Microsoft.AspNet.Server.KestrelTests private KestrelEngine _engine; private IDisposable _server; - public TestServer(Func app) + public TestServer(Func app) : this(app, new TestServiceContext()) { } - public TestServer(Func app, ServiceContext context) + public TestServer(Func app, ServiceContext context) : this(app, context, "http://localhost:54321/") { } - public TestServer(Func app, ServiceContext context, string serverAddress) + public TestServer(Func app, ServiceContext context, string serverAddress) { Create(app, context, serverAddress); } @@ -54,7 +55,7 @@ namespace Microsoft.AspNet.Server.KestrelTests } } - public void Create(Func app, ServiceContext context, string serverAddress) + public void Create(Func app, ServiceContext context, string serverAddress) { _engine = new KestrelEngine( LibraryManager,