[Fixes #51] Missing null check in CorsPolicyBuilder
This commit is contained in:
parent
d88646cb7b
commit
80f1655478
|
|
@ -180,7 +180,11 @@ namespace Microsoft.AspNet.Cors.Infrastructure
|
||||||
WithHeaders(policy.Headers.ToArray());
|
WithHeaders(policy.Headers.ToArray());
|
||||||
WithExposedHeaders(policy.ExposedHeaders.ToArray());
|
WithExposedHeaders(policy.ExposedHeaders.ToArray());
|
||||||
WithMethods(policy.Methods.ToArray());
|
WithMethods(policy.Methods.ToArray());
|
||||||
SetPreflightMaxAge(policy.PreflightMaxAge.Value);
|
|
||||||
|
if (policy.PreflightMaxAge.HasValue)
|
||||||
|
{
|
||||||
|
SetPreflightMaxAge(policy.PreflightMaxAge.Value);
|
||||||
|
}
|
||||||
|
|
||||||
if (policy.SupportsCredentials)
|
if (policy.SupportsCredentials)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -14,16 +14,16 @@ namespace Microsoft.AspNet.Cors.Infrastructure
|
||||||
public void Constructor_WithPolicy_AddsTheGivenPolicy()
|
public void Constructor_WithPolicy_AddsTheGivenPolicy()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var policy = new CorsPolicy();
|
var originalPolicy = new CorsPolicy();
|
||||||
policy.Origins.Add("http://existing.com");
|
originalPolicy.Origins.Add("http://existing.com");
|
||||||
policy.Headers.Add("Existing");
|
originalPolicy.Headers.Add("Existing");
|
||||||
policy.Methods.Add("GET");
|
originalPolicy.Methods.Add("GET");
|
||||||
policy.ExposedHeaders.Add("ExistingExposed");
|
originalPolicy.ExposedHeaders.Add("ExistingExposed");
|
||||||
policy.SupportsCredentials = true;
|
originalPolicy.SupportsCredentials = true;
|
||||||
policy.PreflightMaxAge = TimeSpan.FromSeconds(12);
|
originalPolicy.PreflightMaxAge = TimeSpan.FromSeconds(12);
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var builder = new CorsPolicyBuilder(policy);
|
var builder = new CorsPolicyBuilder(originalPolicy);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
var corsPolicy = builder.Build();
|
var corsPolicy = builder.Build();
|
||||||
|
|
@ -32,13 +32,41 @@ namespace Microsoft.AspNet.Cors.Infrastructure
|
||||||
Assert.False(corsPolicy.AllowAnyMethod);
|
Assert.False(corsPolicy.AllowAnyMethod);
|
||||||
Assert.False(corsPolicy.AllowAnyOrigin);
|
Assert.False(corsPolicy.AllowAnyOrigin);
|
||||||
Assert.True(corsPolicy.SupportsCredentials);
|
Assert.True(corsPolicy.SupportsCredentials);
|
||||||
Assert.Equal(policy.Headers, corsPolicy.Headers);
|
Assert.NotSame(originalPolicy.Headers, corsPolicy.Headers);
|
||||||
Assert.Equal(policy.Methods, corsPolicy.Methods);
|
Assert.Equal(originalPolicy.Headers, corsPolicy.Headers);
|
||||||
Assert.Equal(policy.Origins, corsPolicy.Origins);
|
Assert.NotSame(originalPolicy.Methods, corsPolicy.Methods);
|
||||||
Assert.Equal(policy.ExposedHeaders, corsPolicy.ExposedHeaders);
|
Assert.Equal(originalPolicy.Methods, corsPolicy.Methods);
|
||||||
|
Assert.NotSame(originalPolicy.Origins, corsPolicy.Origins);
|
||||||
|
Assert.Equal(originalPolicy.Origins, corsPolicy.Origins);
|
||||||
|
Assert.NotSame(originalPolicy.ExposedHeaders, corsPolicy.ExposedHeaders);
|
||||||
|
Assert.Equal(originalPolicy.ExposedHeaders, corsPolicy.ExposedHeaders);
|
||||||
Assert.Equal(TimeSpan.FromSeconds(12), corsPolicy.PreflightMaxAge);
|
Assert.Equal(TimeSpan.FromSeconds(12), corsPolicy.PreflightMaxAge);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void ConstructorWithPolicy_HavingNullPreflightMaxAge_AddsTheGivenPolicy()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var originalPolicy = new CorsPolicy();
|
||||||
|
originalPolicy.Origins.Add("http://existing.com");
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var builder = new CorsPolicyBuilder(originalPolicy);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
var corsPolicy = builder.Build();
|
||||||
|
|
||||||
|
Assert.Null(corsPolicy.PreflightMaxAge);
|
||||||
|
Assert.False(corsPolicy.AllowAnyHeader);
|
||||||
|
Assert.False(corsPolicy.AllowAnyMethod);
|
||||||
|
Assert.False(corsPolicy.AllowAnyOrigin);
|
||||||
|
Assert.NotSame(originalPolicy.Origins, corsPolicy.Origins);
|
||||||
|
Assert.Equal(originalPolicy.Origins, corsPolicy.Origins);
|
||||||
|
Assert.Empty(corsPolicy.Headers);
|
||||||
|
Assert.Empty(corsPolicy.Methods);
|
||||||
|
Assert.Empty(corsPolicy.ExposedHeaders);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void Constructor_WithNoOrigin()
|
public void Constructor_WithNoOrigin()
|
||||||
{
|
{
|
||||||
|
|
@ -112,7 +140,6 @@ namespace Microsoft.AspNet.Cors.Infrastructure
|
||||||
Assert.Equal(new List<string>() { "*" }, corsPolicy.Origins);
|
Assert.Equal(new List<string>() { "*" }, corsPolicy.Origins);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void WithMethods_AddsMethods()
|
public void WithMethods_AddsMethods()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue