Reacting to new Hosting API

This commit is contained in:
John Luo 2015-12-17 20:38:55 -08:00
parent 017b9b8773
commit 5c98dd5d98
7 changed files with 395 additions and 327 deletions

View File

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Globalization;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Localization;
@ -162,5 +163,15 @@ $@"<!doctype html>
await context.Response.WriteAsync($" <option value=\"en-NOTREAL\">English (Not a real locale)</option>");
await context.Response.WriteAsync($" <option value=\"pp-NOTREAL\">Made-up (Not a real anything)</option>");
}
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,5 +1,4 @@
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
@ -8,8 +7,12 @@
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*"
},
"compilationOptions": {
"emitEntryPoint": true
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
"web": "LocalizationSample"
},
"frameworks": {

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Localization;
using Microsoft.AspNet.TestHost;
@ -17,7 +18,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetFallbackLanguage_ReturnsFirstNonNullCultureFromSupportedCultureList()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions
{
@ -36,7 +38,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-SA", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("jp,ar-SA,en-US");
@ -49,7 +53,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetFallbackLanguage_ReturnsFromSupportedCulture_AcceptLanguageListContainsSupportedCultures()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions
{
@ -68,7 +73,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-SA", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-SA,en-US");
@ -80,7 +87,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetFallbackLanguage_ReturnsDefault_AcceptLanguageListDoesnotContainSupportedCultures()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions
{
@ -99,7 +107,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("fr-FR", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-MA,en-US");
@ -112,7 +122,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void OmitDefaultRequestCultureShouldNotThrowNullReferenceException_And_ShouldGetTheRightCulture()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -135,7 +146,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-YE,en-US");

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Localization;
using Microsoft.AspNet.TestHost;
@ -18,7 +19,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetCultureInfoFromPersistentCookie()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -43,7 +45,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-SA", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var culture = new CultureInfo("ar-SA");
@ -58,7 +62,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetDefaultCultureInfoIfCultureKeysAreMissingOrInvalid()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -83,7 +88,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("en-US", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
client.DefaultRequestHeaders.Add("Cookie", new CookieHeaderValue("Preferences", "uic=ar-SA").ToString());
@ -94,7 +101,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetDefaultCultureInfoIfCookieDoesNotExist()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -119,7 +127,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("en-US", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync(string.Empty);

View File

@ -6,11 +6,11 @@ using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Localization;
using Microsoft.AspNet.TestHost;
using Microsoft.Extensions.Globalization;
using Xunit;
namespace Microsoft.Extensions.Localization.Tests
@ -20,7 +20,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void CustomRequestCultureProviderThatGetsCultureInfoFromUrl()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -48,7 +49,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/ar/page");

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.Threading.Tasks;
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http.Features;
using Microsoft.AspNet.Localization;
using Microsoft.AspNet.TestHost;
@ -17,7 +18,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetCultureInfoFromQueryString()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -41,7 +43,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?culture=ar-SA&ui-culture=ar-YE");
@ -51,7 +55,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetDefaultCultureInfoIfCultureKeysAreMissing()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions
{
@ -66,7 +71,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("en-US", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page");
@ -76,7 +83,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetDefaultCultureInfoIfCultureIsInSupportedCultureList()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -98,7 +106,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("en-US", requestCulture.Culture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?culture=ar-XY&ui-culture=ar-SA");
@ -108,7 +118,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetDefaultCultureInfoIfUICultureIsNotInSupportedList()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -130,7 +141,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("en-US", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?culture=ar-SA&ui-culture=ar-XY");
@ -140,7 +153,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetSameCultureInfoIfCultureKeyIsMissing()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -163,7 +177,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-SA", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?ui-culture=ar-SA");
@ -173,7 +189,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetSameCultureInfoIfUICultureKeyIsMissing()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -196,7 +213,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-SA", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?culture=ar-SA");
@ -206,7 +225,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetCultureInfoFromQueryStringWithCustomKeys()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -233,7 +253,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?c=ar-SA&uic=ar-YE");
@ -243,7 +265,8 @@ namespace Microsoft.Extensions.Localization.Tests
[Fact]
public async void GetTheRightCultureInfoRegardlessOfCultureNameCasing()
{
using (var server = TestServer.Create(app =>
var builder = new WebApplicationBuilder()
.Configure(app =>
{
var options = new RequestLocalizationOptions()
{
@ -270,7 +293,9 @@ namespace Microsoft.Extensions.Localization.Tests
Assert.Equal("fr", requestCulture.UICulture.ToString());
return Task.FromResult(0);
});
}))
});
using (var server = new TestServer(builder))
{
var client = server.CreateClient();
var response = await client.GetAsync("/page?c=FR&uic=FR");