From c4dcd383dfd8465b853aff17426176b479e46e6f Mon Sep 17 00:00:00 2001 From: Eberhard Beilharz Date: Tue, 30 Apr 2024 18:01:02 +0200 Subject: [PATCH] chore(windows): Split tests to easier see which ones fail --- ....System.CanonicalLanguageCodeUtilsTest.pas | 44 ++++++++++++++++++- ....System.Standards.LangTagsRegistryTest.pas | 25 +++++++++-- 2 files changed, 64 insertions(+), 5 deletions(-) diff --git a/windows/src/test/unit-tests/standards-data/Keyman.Test.System.CanonicalLanguageCodeUtilsTest.pas b/windows/src/test/unit-tests/standards-data/Keyman.Test.System.CanonicalLanguageCodeUtilsTest.pas index be38af20b8b..514a2ffb682 100644 --- a/windows/src/test/unit-tests/standards-data/Keyman.Test.System.CanonicalLanguageCodeUtilsTest.pas +++ b/windows/src/test/unit-tests/standards-data/Keyman.Test.System.CanonicalLanguageCodeUtilsTest.pas @@ -12,8 +12,24 @@ TCanonicalLanguageCodeUtilsTest = class(TObject) [Setup] procedure Setup; + [Test] + procedure TestGlkTag; + [Test] + procedure TestSqtTag; [Test] procedure TestSomeTags; + [Test] + procedure TestRawTag; + [Test] + procedure TestKmTag; + [Test] + procedure TestThTag; + [Test] + procedure TestTagsWithScript; + [Test] + procedure TestFonipaTags; + [Test] + procedure TestAzTag; end; implementation @@ -28,7 +44,7 @@ procedure TCanonicalLanguageCodeUtilsTest.Setup; Assert.IgnoreCaseDefault := False; end; -procedure TCanonicalLanguageCodeUtilsTest.TestSomeTags; +procedure TCanonicalLanguageCodeUtilsTest.TestGlkTag; begin // #3485 - Gilaki (Latin) script Assert.AreEqual('glk-Arab-IR', TCanonicalLanguageCodeUtils.FindBestTag('glk', True, True)); @@ -37,28 +53,43 @@ procedure TCanonicalLanguageCodeUtilsTest.TestSomeTags; Assert.AreEqual('glk-Arab-IR', TCanonicalLanguageCodeUtils.FindBestTag('glk-IR', True, True)); Assert.AreEqual('glk-Latn-IR', TCanonicalLanguageCodeUtils.FindBestTag('glk-Latn', True, True)); Assert.AreEqual('glk-Latn-IR', TCanonicalLanguageCodeUtils.FindBestTag('glk-Latn-IR', True, True)); +end; +procedure TCanonicalLanguageCodeUtilsTest.TestSqtTag; +begin // #1719 Assert.AreEqual('sqt-Arab-YE', TCanonicalLanguageCodeUtils.FindBestTag('sqt', True, True)); Assert.AreEqual('sqt-Arab-YE', TCanonicalLanguageCodeUtils.FindBestTag('sqt-YE', True, True)); Assert.AreEqual('sqt-Arab-YE', TCanonicalLanguageCodeUtils.FindBestTag('sqt-Arab', True, True)); Assert.AreEqual('sqt-Latn-YE', TCanonicalLanguageCodeUtils.FindBestTag('sqt-Latn', True, True)); Assert.AreEqual('sqt-Latn-YE', TCanonicalLanguageCodeUtils.FindBestTag('sqt-Latn-YE', True, True)); +end; +procedure TCanonicalLanguageCodeUtilsTest.TestSomeTags; +begin Assert.AreEqual('sa-Latn', TCanonicalLanguageCodeUtils.FindBestTag('sa-Latn', True, True)); Assert.AreEqual('he-Latn', TCanonicalLanguageCodeUtils.FindBestTag('he-Latn', True, True)); Assert.AreEqual('hi-Latn-IN', TCanonicalLanguageCodeUtils.FindBestTag('hi-Latn', True, True)); +end; +procedure TCanonicalLanguageCodeUtilsTest.TestRawTag; +begin // #1282 Assert.AreEqual('raw-Latn-MM', TCanonicalLanguageCodeUtils.FindBestTag('raw', True, True)); Assert.AreEqual('raw-Latn-MM', TCanonicalLanguageCodeUtils.FindBestTag('raw-MM', True, True)); Assert.AreEqual('raw-Latn-MM', TCanonicalLanguageCodeUtils.FindBestTag('raw-Latn', True, True)); +end; - // Various extended tags and tests +procedure TCanonicalLanguageCodeUtilsTest.TestKmTag; +begin Assert.AreEqual('km-KH', TCanonicalLanguageCodeUtils.FindBestTag('km', True, True)); Assert.AreEqual('km-KH', TCanonicalLanguageCodeUtils.FindBestTag('km-kh', True, True)); Assert.AreEqual('km-KH', TCanonicalLanguageCodeUtils.FindBestTag('km-khmr', True, True)); Assert.AreEqual('km-KH', TCanonicalLanguageCodeUtils.FindBestTag('km-khmr-kh', True, True)); +end; + +procedure TCanonicalLanguageCodeUtilsTest.TestThTag; +begin Assert.AreEqual('th-TH', TCanonicalLanguageCodeUtils.FindBestTag('th', True, True)); Assert.AreEqual('th-TH', TCanonicalLanguageCodeUtils.FindBestTag('th-th', True, True)); Assert.AreEqual('th-TH', TCanonicalLanguageCodeUtils.FindBestTag('th-thai-th', True, True)); @@ -67,7 +98,10 @@ procedure TCanonicalLanguageCodeUtilsTest.TestSomeTags; // it was not found in our canonicalization tables. This is expected behaviour. // (Remember that BCP 47 tags are not case sensitive) Assert.AreEqual('th-Latn-DE', TCanonicalLanguageCodeUtils.FindBestTag('th-latn-de', True, True)); +end; +procedure TCanonicalLanguageCodeUtilsTest.TestTagsWithScript; +begin Assert.AreEqual('fr-FR', TCanonicalLanguageCodeUtils.FindBestTag('fr', True, True)); Assert.AreEqual('fr-FR', TCanonicalLanguageCodeUtils.FindBestTag('fr-FR', True, True)); Assert.AreEqual('fr-FR', TCanonicalLanguageCodeUtils.FindBestTag('fr-Latn-fr', True, True)); @@ -83,7 +117,10 @@ procedure TCanonicalLanguageCodeUtilsTest.TestSomeTags; Assert.AreEqual('tpi-PG', TCanonicalLanguageCodeUtils.FindBestTag('tpi-Latn-PG', True, True)); Assert.AreEqual('sv-SE', TCanonicalLanguageCodeUtils.FindBestTag('sv', True, True)); Assert.AreEqual('en-US', TCanonicalLanguageCodeUtils.FindBestTag('en', True, True)); +end; +procedure TCanonicalLanguageCodeUtilsTest.TestFonipaTags; +begin // fonipa Assert.AreEqual('en-fonipa', TCanonicalLanguageCodeUtils.FindBestTag('en-fonipa', True, True)); Assert.AreEqual('tpi-Latn-fonipa', TCanonicalLanguageCodeUtils.FindBestTag('tpi-Latn-fonipa', True, True)); @@ -92,7 +129,10 @@ procedure TCanonicalLanguageCodeUtilsTest.TestSomeTags; Assert.AreEqual('fr-fonipa', TCanonicalLanguageCodeUtils.FindBestTag('fr-fonipa', True, True)); Assert.AreEqual('und-fonipa', TCanonicalLanguageCodeUtils.FindBestTag('und-Latn-fonipa', True, True)); Assert.AreEqual('und-fonipa', TCanonicalLanguageCodeUtils.FindBestTag('und-Latn-fonipa-x-test', True, True)); +end; +procedure TCanonicalLanguageCodeUtilsTest.TestAzTag; +begin // az-Cyrl Assert.AreEqual('az-Cyrl-RU', TCanonicalLanguageCodeUtils.FindBestTag('az-Cyrl', True, True)); end; diff --git a/windows/src/test/unit-tests/standards-data/Keyman.Test.System.Standards.LangTagsRegistryTest.pas b/windows/src/test/unit-tests/standards-data/Keyman.Test.System.Standards.LangTagsRegistryTest.pas index 6f7674e975c..90a17b54305 100644 --- a/windows/src/test/unit-tests/standards-data/Keyman.Test.System.Standards.LangTagsRegistryTest.pas +++ b/windows/src/test/unit-tests/standards-data/Keyman.Test.System.Standards.LangTagsRegistryTest.pas @@ -13,7 +13,15 @@ TLangTagsTest = class(TObject) procedure Setup; [Test] - procedure TestSomeTags; + procedure TestTokPisinTag; + [Test] + procedure TestKhmerTag; + [Test] + procedure TestAkqTag; + [Test] + procedure TestAllTags; + [Test] + procedure TestUndTag; end; implementation @@ -28,7 +36,7 @@ procedure TLangTagsTest.Setup; Assert.IgnoreCaseDefault := False; end; -procedure TLangTagsTest.TestSomeTags; +procedure TLangTagsTest.TestTokPisinTag; begin // Tok Pisin Assert.AreEqual('tpi', TLangTagsMap.LangTags['tpi'].tag); @@ -39,7 +47,10 @@ procedure TLangTagsTest.TestSomeTags; Assert.AreEqual('Latn', TLangTagsMap.LangTags['tpi'].script); Assert.AreEqual(True, TLangTagsMap.LangTags['tpi'].suppress); Assert.AreEqual('tpi', TLangTagsMap.LangTags['tpi'].windows); +end; +procedure TLangTagsTest.TestKhmerTag; +begin // Khmer Assert.AreEqual('km', TLangTagsMap.LangTags['km'].tag); Assert.AreEqual('km-Khmr-KH', TLangTagsMap.LangTags['km'].full); @@ -49,7 +60,10 @@ procedure TLangTagsTest.TestSomeTags; Assert.AreEqual('Khmr', TLangTagsMap.LangTags['km'].script); Assert.AreEqual(True, TLangTagsMap.LangTags['km'].suppress); Assert.AreEqual('km', TLangTagsMap.LangTags['km'].windows); +end; +procedure TLangTagsTest.TestAkqTag; +begin // Ak Assert.AreEqual('akq', TLangTagsMap.LangTags['akq'].tag); Assert.AreEqual('akq-Latn-PG', TLangTagsMap.LangTags['akq'].full); @@ -57,13 +71,18 @@ procedure TLangTagsTest.TestSomeTags; Assert.AreEqual('PG', TLangTagsMap.LangTags['akq'].region); Assert.AreEqual(False, TLangTagsMap.LangTags['akq'].suppress); Assert.AreEqual('akq-Latn', TLangTagsMap.LangTags['akq'].windows); +end; +procedure TLangTagsTest.TestAllTags; +begin // All Tags - Assert.AreEqual('arx', TLangTagsMap.AllTags['arx-BR']); Assert.AreEqual('bfi-Zzzz-x-stokoe', TLangTagsMap.AllTags['sgn-bfi-GB-x-stokoe']); Assert.AreEqual('bfy', TLangTagsMap.AllTags['ppa-Deva-IN']); +end; +procedure TLangTagsTest.TestUndTag; +begin // und Assert.AreEqual('und', TLangTagsMap.LangTags['und'].tag); Assert.AreEqual('und-Zyyy-001', TLangTagsMap.LangTags['und'].full);