csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
using System.Globalization;
|
|
using Avalonia.Media.Fonts;
|
|
using Xunit;
|
|
|
|
namespace Avalonia.Base.UnitTests.Media.Fonts
|
|
{
|
|
public class Bcp47ScriptResolverTests
|
|
{
|
|
[Theory]
|
|
[InlineData("ja", "Jpan")]
|
|
[InlineData("ja-JP", "Jpan")]
|
|
[InlineData("ko", "Kore")]
|
|
[InlineData("ko-KR", "Kore")]
|
|
[InlineData("zh", "Hans")]
|
|
[InlineData("zh-CN", "Hans")]
|
|
[InlineData("zh-SG", "Hans")]
|
|
[InlineData("zh-TW", "Hant")]
|
|
[InlineData("zh-HK", "Hant")]
|
|
[InlineData("zh-MO", "Hant")]
|
|
[InlineData("zh-Hans-CN", "Hans")]
|
|
[InlineData("zh-Hant-TW", "Hant")]
|
|
[InlineData("ru", "Cyrl")]
|
|
[InlineData("ru-RU", "Cyrl")]
|
|
[InlineData("en", "Latn")]
|
|
[InlineData("en-US", "Latn")]
|
|
[InlineData("de-DE", "Latn")]
|
|
[InlineData("ar", "Arab")]
|
|
[InlineData("he", "Hebr")]
|
|
[InlineData("th", "Thai")]
|
|
[InlineData("el", "Grek")]
|
|
[InlineData("sr-Cyrl", "Cyrl")]
|
|
[InlineData("sr-Latn-RS", "Latn")]
|
|
public void Resolves_Expected_Script_Subtag(string cultureName, string expected)
|
|
{
|
|
var culture = CultureInfo.GetCultureInfo(cultureName);
|
|
|
|
Assert.Equal(expected, Bcp47ScriptResolver.GetScriptSubtag(culture));
|
|
}
|
|
|
|
[Fact]
|
|
public void Invariant_Culture_Returns_Null()
|
|
{
|
|
Assert.Null(Bcp47ScriptResolver.GetScriptSubtag(CultureInfo.InvariantCulture));
|
|
}
|
|
|
|
[Fact]
|
|
public void Null_Culture_Returns_Null()
|
|
{
|
|
Assert.Null(Bcp47ScriptResolver.GetScriptSubtag(null));
|
|
}
|
|
|
|
[Fact]
|
|
public void Unknown_Language_Returns_Null()
|
|
{
|
|
// 'xx' is reserved as a private-use language tag; no canonical script.
|
|
var culture = CultureInfo.GetCultureInfo("xx");
|
|
|
|
Assert.Null(Bcp47ScriptResolver.GetScriptSubtag(culture));
|
|
}
|
|
}
|
|
}
|
|
|