Merge pull request #1484 from hishamco/localization-cookie

Fix parsing localization cookie when the value is not present
This commit is contained in:
Shaun Walker 2021-06-16 08:26:50 -04:00 committed by GitHub
commit 05d7c7fc74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 2 deletions

View File

@ -137,7 +137,7 @@ namespace Oqtane.Client
var jsRuntime = serviceProvider.GetRequiredService<IJSRuntime>();
var interop = new Interop(jsRuntime);
var localizationCookie = await interop.GetCookie(CookieRequestCultureProvider.DefaultCookieName);
var culture = CookieRequestCultureProvider.ParseCookieValue(localizationCookie).UICultures[0].Value;
var culture = CookieRequestCultureProvider.ParseCookieValue(localizationCookie)?.UICultures?[0].Value;
var localizationService = serviceProvider.GetRequiredService<ILocalizationService>();
var cultures = await localizationService.GetCulturesAsync();

View File

@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Localization;
using Xunit;
namespace Oqtane.Oqtane.Client.Tests
{
public class LocalizationCookieTests
{
[Theory]
[InlineData("c=ar|uic=ar", "ar")]
[InlineData("c=ar", null)]
[InlineData("", null)]
[InlineData(null, null)]
public void ParseCookie(string localizationCookie, string expectedCulture)
{
// Arrange
var localizationCookieValue = CookieRequestCultureProvider.ParseCookieValue(localizationCookie);
// Act
var culture = localizationCookieValue?.UICultures?[0].Value;
// Assert
Assert.Equal(expectedCulture, culture);
}
}
}

View File

@ -19,6 +19,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Localization" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.1" />
<PackageReference Include="bunit.web" Version="1.0.0-beta-10" />
<PackageReference Include="bunit.xunit" Version="1.0.0-beta-10" />