Reacting to new Hosting API
This commit is contained in:
parent
017b9b8773
commit
5c98dd5d98
|
|
@ -5,6 +5,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using Microsoft.AspNet.Builder;
|
using Microsoft.AspNet.Builder;
|
||||||
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Http;
|
using Microsoft.AspNet.Http;
|
||||||
using Microsoft.AspNet.Http.Features;
|
using Microsoft.AspNet.Http.Features;
|
||||||
using Microsoft.AspNet.Localization;
|
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=\"en-NOTREAL\">English (Not a real locale)</option>");
|
||||||
await context.Response.WriteAsync($" <option value=\"pp-NOTREAL\">Made-up (Not a real anything)</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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"server": "Microsoft.AspNet.Server.Kestrel"
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
"webroot": "wwwroot",
|
|
||||||
"version": "1.0.0-*",
|
"version": "1.0.0-*",
|
||||||
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -8,8 +7,12 @@
|
||||||
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*"
|
"Microsoft.AspNet.Server.Kestrel": "1.0.0-*"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"compilationOptions": {
|
||||||
|
"emitEntryPoint": true
|
||||||
|
},
|
||||||
|
|
||||||
"commands": {
|
"commands": {
|
||||||
"web": "Microsoft.AspNet.Server.Kestrel"
|
"web": "LocalizationSample"
|
||||||
},
|
},
|
||||||
|
|
||||||
"frameworks": {
|
"frameworks": {
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Builder;
|
using Microsoft.AspNet.Builder;
|
||||||
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Http.Features;
|
using Microsoft.AspNet.Http.Features;
|
||||||
using Microsoft.AspNet.Localization;
|
using Microsoft.AspNet.Localization;
|
||||||
using Microsoft.AspNet.TestHost;
|
using Microsoft.AspNet.TestHost;
|
||||||
|
|
@ -17,26 +18,29 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetFallbackLanguage_ReturnsFirstNonNullCultureFromSupportedCultureList()
|
public async void GetFallbackLanguage_ReturnsFirstNonNullCultureFromSupportedCultureList()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA"),
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
new CultureInfo("en-US")
|
SupportedCultures = new List<CultureInfo>
|
||||||
}
|
{
|
||||||
};
|
new CultureInfo("ar-SA"),
|
||||||
app.UseRequestLocalization(options);
|
new CultureInfo("en-US")
|
||||||
app.Run(context =>
|
}
|
||||||
{
|
};
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
app.UseRequestLocalization(options);
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
app.Run(context =>
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
{
|
||||||
return Task.FromResult(0);
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
|
return Task.FromResult(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("jp,ar-SA,en-US");
|
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("jp,ar-SA,en-US");
|
||||||
|
|
@ -49,26 +53,29 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetFallbackLanguage_ReturnsFromSupportedCulture_AcceptLanguageListContainsSupportedCultures()
|
public async void GetFallbackLanguage_ReturnsFromSupportedCulture_AcceptLanguageListContainsSupportedCultures()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("fr-FR"),
|
var options = new RequestLocalizationOptions
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA"),
|
DefaultRequestCulture = new RequestCulture("fr-FR"),
|
||||||
new CultureInfo("en-US")
|
SupportedCultures = new List<CultureInfo>
|
||||||
}
|
{
|
||||||
};
|
new CultureInfo("ar-SA"),
|
||||||
app.UseRequestLocalization(options);
|
new CultureInfo("en-US")
|
||||||
app.Run(context =>
|
}
|
||||||
{
|
};
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
app.UseRequestLocalization(options);
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
app.Run(context =>
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
{
|
||||||
return Task.FromResult(0);
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
|
return Task.FromResult(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-SA,en-US");
|
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-SA,en-US");
|
||||||
|
|
@ -80,26 +87,29 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetFallbackLanguage_ReturnsDefault_AcceptLanguageListDoesnotContainSupportedCultures()
|
public async void GetFallbackLanguage_ReturnsDefault_AcceptLanguageListDoesnotContainSupportedCultures()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("fr-FR"),
|
var options = new RequestLocalizationOptions
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA"),
|
DefaultRequestCulture = new RequestCulture("fr-FR"),
|
||||||
new CultureInfo("af-ZA")
|
SupportedCultures = new List<CultureInfo>
|
||||||
}
|
{
|
||||||
};
|
new CultureInfo("ar-SA"),
|
||||||
app.UseRequestLocalization(options);
|
new CultureInfo("af-ZA")
|
||||||
app.Run(context =>
|
}
|
||||||
{
|
};
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
app.UseRequestLocalization(options);
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
app.Run(context =>
|
||||||
Assert.Equal("fr-FR", requestCulture.Culture.Name);
|
{
|
||||||
return Task.FromResult(0);
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
|
Assert.Equal("fr-FR", requestCulture.Culture.Name);
|
||||||
|
return Task.FromResult(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-MA,en-US");
|
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-MA,en-US");
|
||||||
|
|
@ -112,30 +122,33 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void OmitDefaultRequestCultureShouldNotThrowNullReferenceException_And_ShouldGetTheRightCulture()
|
public async void OmitDefaultRequestCultureShouldNotThrowNullReferenceException_And_ShouldGetTheRightCulture()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-YE")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-YE")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-YE")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-YE")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("ar-YE", requestCulture.Culture.Name);
|
||||||
app.UseRequestLocalization(options);
|
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
|
||||||
app.Run(context =>
|
return Task.FromResult(0);
|
||||||
{
|
});
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("ar-YE", requestCulture.Culture.Name);
|
|
||||||
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-YE,en-US");
|
client.DefaultRequestHeaders.AcceptLanguage.ParseAdd("en-GB,ar-YE,en-US");
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Builder;
|
using Microsoft.AspNet.Builder;
|
||||||
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Http.Features;
|
using Microsoft.AspNet.Http.Features;
|
||||||
using Microsoft.AspNet.Localization;
|
using Microsoft.AspNet.Localization;
|
||||||
using Microsoft.AspNet.TestHost;
|
using Microsoft.AspNet.TestHost;
|
||||||
|
|
@ -18,32 +19,35 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetCultureInfoFromPersistentCookie()
|
public async void GetCultureInfoFromPersistentCookie()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var provider = new CookieRequestCultureProvider();
|
||||||
|
provider.CookieName = "Preferences";
|
||||||
|
options.RequestCultureProviders.Insert(0, provider);
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
var provider = new CookieRequestCultureProvider();
|
return Task.FromResult(0);
|
||||||
provider.CookieName = "Preferences";
|
});
|
||||||
options.RequestCultureProviders.Insert(0, provider);
|
|
||||||
app.UseRequestLocalization(options);
|
|
||||||
app.Run(context =>
|
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var culture = new CultureInfo("ar-SA");
|
var culture = new CultureInfo("ar-SA");
|
||||||
|
|
@ -58,32 +62,35 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetDefaultCultureInfoIfCultureKeysAreMissingOrInvalid()
|
public async void GetDefaultCultureInfoIfCultureKeysAreMissingOrInvalid()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var provider = new CookieRequestCultureProvider();
|
||||||
|
provider.CookieName = "Preferences";
|
||||||
|
options.RequestCultureProviders.Insert(0, provider);
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("en-US", requestCulture.Culture.Name);
|
||||||
var provider = new CookieRequestCultureProvider();
|
return Task.FromResult(0);
|
||||||
provider.CookieName = "Preferences";
|
});
|
||||||
options.RequestCultureProviders.Insert(0, provider);
|
|
||||||
app.UseRequestLocalization(options);
|
|
||||||
app.Run(context =>
|
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("en-US", requestCulture.Culture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
client.DefaultRequestHeaders.Add("Cookie", new CookieHeaderValue("Preferences", "uic=ar-SA").ToString());
|
client.DefaultRequestHeaders.Add("Cookie", new CookieHeaderValue("Preferences", "uic=ar-SA").ToString());
|
||||||
|
|
@ -94,32 +101,35 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetDefaultCultureInfoIfCookieDoesNotExist()
|
public async void GetDefaultCultureInfoIfCookieDoesNotExist()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var provider = new CookieRequestCultureProvider();
|
||||||
|
provider.CookieName = "Preferences";
|
||||||
|
options.RequestCultureProviders.Insert(0, provider);
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("en-US", requestCulture.Culture.Name);
|
||||||
var provider = new CookieRequestCultureProvider();
|
return Task.FromResult(0);
|
||||||
provider.CookieName = "Preferences";
|
});
|
||||||
options.RequestCultureProviders.Insert(0, provider);
|
|
||||||
app.UseRequestLocalization(options);
|
|
||||||
app.Run(context =>
|
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("en-US", requestCulture.Culture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync(string.Empty);
|
var response = await client.GetAsync(string.Empty);
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@ using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
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.Features;
|
using Microsoft.AspNet.Http.Features;
|
||||||
using Microsoft.AspNet.Localization;
|
using Microsoft.AspNet.Localization;
|
||||||
using Microsoft.AspNet.TestHost;
|
using Microsoft.AspNet.TestHost;
|
||||||
using Microsoft.Extensions.Globalization;
|
|
||||||
using Xunit;
|
using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Localization.Tests
|
namespace Microsoft.Extensions.Localization.Tests
|
||||||
|
|
@ -20,35 +20,38 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void CustomRequestCultureProviderThatGetsCultureInfoFromUrl()
|
public async void CustomRequestCultureProviderThatGetsCultureInfoFromUrl()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar")
|
var culture = GetCultureInfoFromUrl(context, options.SupportedCultures);
|
||||||
}
|
var requestCulture = new ProviderCultureResult(culture);
|
||||||
};
|
return Task.FromResult(requestCulture);
|
||||||
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context =>
|
}));
|
||||||
{
|
app.UseRequestLocalization(options);
|
||||||
var culture = GetCultureInfoFromUrl(context, options.SupportedCultures);
|
app.Run(context =>
|
||||||
var requestCulture = new ProviderCultureResult(culture);
|
{
|
||||||
return Task.FromResult(requestCulture);
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}));
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
app.UseRequestLocalization(options);
|
Assert.Equal("ar", requestCulture.Culture.Name);
|
||||||
app.Run(context =>
|
return Task.FromResult(0);
|
||||||
{
|
});
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("ar", requestCulture.Culture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/ar/page");
|
var response = await client.GetAsync("/ar/page");
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Builder;
|
using Microsoft.AspNet.Builder;
|
||||||
|
using Microsoft.AspNet.Hosting;
|
||||||
using Microsoft.AspNet.Http.Features;
|
using Microsoft.AspNet.Http.Features;
|
||||||
using Microsoft.AspNet.Localization;
|
using Microsoft.AspNet.Localization;
|
||||||
using Microsoft.AspNet.TestHost;
|
using Microsoft.AspNet.TestHost;
|
||||||
|
|
@ -17,31 +18,34 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetCultureInfoFromQueryString()
|
public async void GetCultureInfoFromQueryString()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
{
|
new CultureInfo("ar-SA")
|
||||||
new CultureInfo("ar-YE")
|
},
|
||||||
}
|
SupportedUICultures = new List<CultureInfo>
|
||||||
};
|
{
|
||||||
|
new CultureInfo("ar-YE")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
app.UseRequestLocalization(options);
|
app.UseRequestLocalization(options);
|
||||||
app.Run(context =>
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
|
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
|
||||||
return Task.FromResult(0);
|
return Task.FromResult(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?culture=ar-SA&ui-culture=ar-YE");
|
var response = await client.GetAsync("/page?culture=ar-SA&ui-culture=ar-YE");
|
||||||
|
|
@ -51,22 +55,25 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetDefaultCultureInfoIfCultureKeysAreMissing()
|
public async void GetDefaultCultureInfoIfCultureKeysAreMissing()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions
|
||||||
};
|
{
|
||||||
app.UseRequestLocalization(options);
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
app.Run(context =>
|
};
|
||||||
{
|
app.UseRequestLocalization(options);
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
app.Run(context =>
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
{
|
||||||
Assert.Equal("en-US", requestCulture.Culture.Name);
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
Assert.Equal("en-US", requestCulture.UICulture.Name);
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
return Task.FromResult(0);
|
Assert.Equal("en-US", requestCulture.Culture.Name);
|
||||||
|
Assert.Equal("en-US", requestCulture.UICulture.Name);
|
||||||
|
return Task.FromResult(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page");
|
var response = await client.GetAsync("/page");
|
||||||
|
|
@ -76,29 +83,32 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetDefaultCultureInfoIfCultureIsInSupportedCultureList()
|
public async void GetDefaultCultureInfoIfCultureIsInSupportedCultureList()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("en-US", requestCulture.Culture.Name);
|
||||||
app.UseRequestLocalization(options);
|
return Task.FromResult(0);
|
||||||
app.Run(context =>
|
});
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("en-US", requestCulture.Culture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?culture=ar-XY&ui-culture=ar-SA");
|
var response = await client.GetAsync("/page?culture=ar-XY&ui-culture=ar-SA");
|
||||||
|
|
@ -108,29 +118,32 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetDefaultCultureInfoIfUICultureIsNotInSupportedList()
|
public async void GetDefaultCultureInfoIfUICultureIsNotInSupportedList()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("en-US", requestCulture.UICulture.Name);
|
||||||
app.UseRequestLocalization(options);
|
return Task.FromResult(0);
|
||||||
app.Run(context =>
|
});
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("en-US", requestCulture.UICulture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?culture=ar-SA&ui-culture=ar-XY");
|
var response = await client.GetAsync("/page?culture=ar-SA&ui-culture=ar-XY");
|
||||||
|
|
@ -140,30 +153,33 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetSameCultureInfoIfCultureKeyIsMissing()
|
public async void GetSameCultureInfoIfCultureKeyIsMissing()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
app.UseRequestLocalization(options);
|
Assert.Equal("ar-SA", requestCulture.UICulture.Name);
|
||||||
app.Run(context =>
|
return Task.FromResult(0);
|
||||||
{
|
});
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
|
||||||
Assert.Equal("ar-SA", requestCulture.UICulture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?ui-culture=ar-SA");
|
var response = await client.GetAsync("/page?ui-culture=ar-SA");
|
||||||
|
|
@ -173,30 +189,33 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetSameCultureInfoIfUICultureKeyIsMissing()
|
public async void GetSameCultureInfoIfUICultureKeyIsMissing()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
app.UseRequestLocalization(options);
|
Assert.Equal("ar-SA", requestCulture.UICulture.Name);
|
||||||
app.Run(context =>
|
return Task.FromResult(0);
|
||||||
{
|
});
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
|
||||||
Assert.Equal("ar-SA", requestCulture.UICulture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?culture=ar-SA");
|
var response = await client.GetAsync("/page?culture=ar-SA");
|
||||||
|
|
@ -206,71 +225,77 @@ namespace Microsoft.Extensions.Localization.Tests
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetCultureInfoFromQueryStringWithCustomKeys()
|
public async void GetCultureInfoFromQueryStringWithCustomKeys()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-SA")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("ar-SA")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("ar-YE")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var provider = new QueryStringRequestCultureProvider();
|
||||||
|
provider.QueryStringKey = "c";
|
||||||
|
provider.UIQueryStringKey = "uic";
|
||||||
|
options.RequestCultureProviders.Insert(0, provider);
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("ar-YE")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
||||||
var provider = new QueryStringRequestCultureProvider();
|
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
|
||||||
provider.QueryStringKey = "c";
|
return Task.FromResult(0);
|
||||||
provider.UIQueryStringKey = "uic";
|
});
|
||||||
options.RequestCultureProviders.Insert(0, provider);
|
|
||||||
app.UseRequestLocalization(options);
|
|
||||||
app.Run(context =>
|
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("ar-SA", requestCulture.Culture.Name);
|
|
||||||
Assert.Equal("ar-YE", requestCulture.UICulture.Name);
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?c=ar-SA&uic=ar-YE");
|
var response = await client.GetAsync("/page?c=ar-SA&uic=ar-YE");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async void GetTheRightCultureInfoRegardlessOfCultureNameCasing()
|
public async void GetTheRightCultureInfoRegardlessOfCultureNameCasing()
|
||||||
{
|
{
|
||||||
using (var server = TestServer.Create(app =>
|
var builder = new WebApplicationBuilder()
|
||||||
{
|
.Configure(app =>
|
||||||
var options = new RequestLocalizationOptions()
|
|
||||||
{
|
{
|
||||||
DefaultRequestCulture = new RequestCulture("en-US"),
|
var options = new RequestLocalizationOptions()
|
||||||
SupportedCultures = new List<CultureInfo>
|
|
||||||
{
|
{
|
||||||
new CultureInfo("FR")
|
DefaultRequestCulture = new RequestCulture("en-US"),
|
||||||
},
|
SupportedCultures = new List<CultureInfo>
|
||||||
SupportedUICultures = new List<CultureInfo>
|
{
|
||||||
|
new CultureInfo("FR")
|
||||||
|
},
|
||||||
|
SupportedUICultures = new List<CultureInfo>
|
||||||
|
{
|
||||||
|
new CultureInfo("FR")
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var provider = new QueryStringRequestCultureProvider();
|
||||||
|
provider.QueryStringKey = "c";
|
||||||
|
provider.UIQueryStringKey = "uic";
|
||||||
|
options.RequestCultureProviders.Insert(0, provider);
|
||||||
|
app.UseRequestLocalization(options);
|
||||||
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
new CultureInfo("FR")
|
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
||||||
}
|
var requestCulture = requestCultureFeature.RequestCulture;
|
||||||
};
|
Assert.Equal("fr", requestCulture.Culture.ToString());
|
||||||
var provider = new QueryStringRequestCultureProvider();
|
Assert.Equal("fr", requestCulture.UICulture.ToString());
|
||||||
provider.QueryStringKey = "c";
|
return Task.FromResult(0);
|
||||||
provider.UIQueryStringKey = "uic";
|
});
|
||||||
options.RequestCultureProviders.Insert(0, provider);
|
|
||||||
app.UseRequestLocalization(options);
|
|
||||||
app.Run(context =>
|
|
||||||
{
|
|
||||||
var requestCultureFeature = context.Features.Get<IRequestCultureFeature>();
|
|
||||||
var requestCulture = requestCultureFeature.RequestCulture;
|
|
||||||
Assert.Equal("fr", requestCulture.Culture.ToString());
|
|
||||||
Assert.Equal("fr", requestCulture.UICulture.ToString());
|
|
||||||
return Task.FromResult(0);
|
|
||||||
});
|
});
|
||||||
}))
|
|
||||||
|
using (var server = new TestServer(builder))
|
||||||
{
|
{
|
||||||
var client = server.CreateClient();
|
var client = server.CreateClient();
|
||||||
var response = await client.GetAsync("/page?c=FR&uic=FR");
|
var response = await client.GetAsync("/page?c=FR&uic=FR");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue