Reacting to new Hosting API

This commit is contained in:
John Luo 2015-12-17 20:55:30 -08:00
parent c3c0b45225
commit 09df979acf
5 changed files with 80 additions and 53 deletions

View File

@ -5,6 +5,7 @@ using System.Linq;
using System.Net; using System.Net;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http; using Microsoft.AspNet.Http;
using Microsoft.AspNet.Http.Internal; using Microsoft.AspNet.Http.Internal;
using Microsoft.AspNet.TestHost; using Microsoft.AspNet.TestHost;
@ -20,19 +21,22 @@ namespace Microsoft.AspNet.Cors.Infrastructure
public async Task CorsRequest_MatchPolicy_SetsResponseHeaders() public async Task CorsRequest_MatchPolicy_SetsResponseHeaders()
{ {
// Arrange // Arrange
using (var server = TestServer.Create(app => var appBuilder = new WebApplicationBuilder()
{ .Configure(app =>
app.UseCors(builder =>
builder.WithOrigins("http://localhost:5001")
.WithMethods("PUT")
.WithHeaders("Header1")
.WithExposedHeaders("AllowedHeader"));
app.Run(async context =>
{ {
await context.Response.WriteAsync("Cross origin response"); app.UseCors(builder =>
}); builder.WithOrigins("http://localhost:5001")
}, .WithMethods("PUT")
services => services.AddCors())) .WithHeaders("Header1")
.WithExposedHeaders("AllowedHeader"));
app.Run(async context =>
{
await context.Response.WriteAsync("Cross origin response");
});
})
.ConfigureServices(services => services.AddCors());
using (var server = new TestServer(appBuilder))
{ {
// Act // Act
// Actual request. // Actual request.
@ -59,21 +63,24 @@ namespace Microsoft.AspNet.Cors.Infrastructure
policy.Headers.Add("Header1"); policy.Headers.Add("Header1");
policy.ExposedHeaders.Add("AllowedHeader"); policy.ExposedHeaders.Add("AllowedHeader");
using (var server = TestServer.Create(app => var appBuilder = new WebApplicationBuilder()
{ .Configure(app =>
app.UseCors("customPolicy");
app.Run(async context =>
{ {
await context.Response.WriteAsync("Cross origin response"); app.UseCors("customPolicy");
}); app.Run(async context =>
}, {
services => await context.Response.WriteAsync("Cross origin response");
{ });
services.AddCors(options => })
.ConfigureServices(services =>
{ {
options.AddPolicy("customPolicy", policy); services.AddCors(options =>
{
options.AddPolicy("customPolicy", policy);
});
}); });
}))
using (var server = new TestServer(appBuilder))
{ {
// Act // Act
// Preflight request. // Preflight request.
@ -94,19 +101,22 @@ namespace Microsoft.AspNet.Cors.Infrastructure
public async Task PreFlightRequest_DoesNotMatchPolicy_DoesNotSetHeaders() public async Task PreFlightRequest_DoesNotMatchPolicy_DoesNotSetHeaders()
{ {
// Arrange // Arrange
using (var server = TestServer.Create(app => var appBuilder = new WebApplicationBuilder()
{ .Configure(app =>
app.UseCors(builder =>
builder.WithOrigins("http://localhost:5001")
.WithMethods("PUT")
.WithHeaders("Header1")
.WithExposedHeaders("AllowedHeader"));
app.Run(async context =>
{ {
await context.Response.WriteAsync("Cross origin response"); app.UseCors(builder =>
}); builder.WithOrigins("http://localhost:5001")
}, .WithMethods("PUT")
services => services.AddCors())) .WithHeaders("Header1")
.WithExposedHeaders("AllowedHeader"));
app.Run(async context =>
{
await context.Response.WriteAsync("Cross origin response");
});
})
.ConfigureServices(services => services.AddCors());
using (var server = new TestServer(appBuilder))
{ {
// Act // Act
// Preflight request. // Preflight request.
@ -125,19 +135,22 @@ namespace Microsoft.AspNet.Cors.Infrastructure
public async Task CorsRequest_DoesNotMatchPolicy_DoesNotSetHeaders() public async Task CorsRequest_DoesNotMatchPolicy_DoesNotSetHeaders()
{ {
// Arrange // Arrange
using (var server = TestServer.Create(app => var appBuilder = new WebApplicationBuilder()
{ .Configure(app =>
app.UseCors(builder =>
builder.WithOrigins("http://localhost:5001")
.WithMethods("PUT")
.WithHeaders("Header1")
.WithExposedHeaders("AllowedHeader"));
app.Run(async context =>
{ {
await context.Response.WriteAsync("Cross origin response"); app.UseCors(builder =>
}); builder.WithOrigins("http://localhost:5001")
}, .WithMethods("PUT")
services => services.AddCors())) .WithHeaders("Header1")
.WithExposedHeaders("AllowedHeader"));
app.Run(async context =>
{
await context.Response.WriteAsync("Cross origin response");
});
})
.ConfigureServices(services => services.AddCors());
using (var server = new TestServer(appBuilder))
{ {
// Act // Act
// Actual request. // Actual request.

View File

@ -15,7 +15,7 @@ namespace Microsoft.AspNet.Cors.Infrastructure
public CorsTestFixture() public CorsTestFixture()
{ {
var builder = new WebHostBuilder().UseStartup<TStartup>(); var builder = new WebApplicationBuilder().UseStartup<TStartup>();
_server = new TestServer(builder); _server = new TestServer(builder);
Client = _server.CreateClient(); Client = _server.CreateClient();

View File

@ -2,6 +2,7 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace CorsMiddlewareWebSite namespace CorsMiddlewareWebSite
@ -18,5 +19,14 @@ namespace CorsMiddlewareWebSite
app.UseCors(policy => policy.WithOrigins("http://example.com")); app.UseCors(policy => policy.WithOrigins("http://example.com"));
app.UseMiddleware<EchoMiddleware>(); app.UseMiddleware<EchoMiddleware>();
} }
public static void Main(string[] args)
{
var application = new WebApplicationBuilder()
.UseConfiguration(WebApplicationConfiguration.GetDefault(args))
.UseStartup<Startup>()
.Build();
application.Run();
}
} }
} }

View File

@ -0,0 +1,3 @@
{
"server": "Microsoft.AspNet.Server.Kestrel"
}

View File

@ -1,12 +1,13 @@
{ {
"compilationOptions": {
"emitEntryPoint": true
},
"commands": { "commands": {
"web": "Microsoft.AspNet.Server.Kestrel", "web": "CorsMiddlewareWebSite"
"weblistener": "Microsoft.AspNet.Server.WebListener"
}, },
"dependencies": { "dependencies": {
"Microsoft.AspNet.Cors": "6.0.0-*", "Microsoft.AspNet.Cors": "6.0.0-*",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*", "Microsoft.AspNet.Server.Kestrel": "1.0.0-*"
"Microsoft.AspNet.Server.WebListener": "1.0.0-*"
}, },
"frameworks": { "frameworks": {
"dnx451": { }, "dnx451": { },