summaryrefslogtreecommitdiff
path: root/i18nlangtag
diff options
context:
space:
mode:
authorHossein <hossein@libreoffice.org>2022-01-09 15:03:45 +0100
committerEike Rathke <erack@redhat.com>2022-01-10 13:28:54 +0100
commit98eea4c8c73a05114ec831a18ef8b3eed9a574da (patch)
treef57554112e1226ba341d099df1b0f34100bf1e90 /i18nlangtag
parent059c1aba91962262b971267819b52e6f822bd9a0 (diff)
tdf#146084 Test for languages without hyphenation
Add test for languages without hyphenation. The fix can be tested with: make CPPUNIT_TEST_NAME="testLanguagesWithoutHyphenation" -sr \ CppunitTest_i18nlangtag_test_languagetag It is important to know that Kurdish language consists of different dialects with differences in hyphenation: 1. Central Kurdish (Sorani): Arabic script, no hyphenation 2. Northern Kurdish (Kurmanji): Latin script, uses hyphenation 3. Southern Kurdish (Xwarîn): Arabic script, no hyphenation Change-Id: I541281af6de296e57a5ab2dc8254f511787ebda0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128188 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'i18nlangtag')
-rw-r--r--i18nlangtag/qa/cppunit/test_languagetag.cxx95
1 files changed, 95 insertions, 0 deletions
diff --git a/i18nlangtag/qa/cppunit/test_languagetag.cxx b/i18nlangtag/qa/cppunit/test_languagetag.cxx
index 84e363d01eb4..d9f7563a635b 100644
--- a/i18nlangtag/qa/cppunit/test_languagetag.cxx
+++ b/i18nlangtag/qa/cppunit/test_languagetag.cxx
@@ -35,11 +35,13 @@ public:
void testAllTags();
void testAllIsoLangEntries();
void testDisplayNames();
+ void testLanguagesWithoutHyphenation();
CPPUNIT_TEST_SUITE(TestLanguageTag);
CPPUNIT_TEST(testAllTags);
CPPUNIT_TEST(testAllIsoLangEntries);
CPPUNIT_TEST(testDisplayNames);
+ CPPUNIT_TEST(testLanguagesWithoutHyphenation);
CPPUNIT_TEST_SUITE_END();
};
@@ -878,6 +880,99 @@ void TestLanguageTag::testDisplayNames()
CPPUNIT_ASSERT_EQUAL( OUString("*"), aStr);
}
+void TestLanguageTag::testLanguagesWithoutHyphenation()
+{
+ // Arabic
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_PRIMARY_ONLY));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_ALGERIA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_BAHRAIN));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_EGYPT));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_IRAQ));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_JORDAN));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_KUWAIT));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_LEBANON));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_LIBYA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_MOROCCO));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_OMAN));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_QATAR));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_SAUDI_ARABIA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_SYRIA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_TUNISIA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_UAE));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_ARABIC_YEMEN));
+
+ // Pashto
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_PASHTO));
+
+ // Persian/Farsi
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_FARSI));
+
+ // Kashmiri
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_KASHMIRI));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_KASHMIRI_INDIA));
+
+ // Central Kurdish (Sorani), uses Arabic script, does not have hyphenation
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_KURDISH_ARABIC_IRAQ));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_KURDISH_ARABIC_LSO));
+
+ // Northern Kurdish (Kurmanji) -> uses Latin scrit, has hyphenation
+ CPPUNIT_ASSERT(MsLangId::usesHyphenation(LANGUAGE_USER_KURDISH_SYRIA));
+ CPPUNIT_ASSERT(MsLangId::usesHyphenation(LANGUAGE_USER_KURDISH_TURKEY));
+
+ // Southern Kurdish -> uses Arabic script, does not have hyphenation
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_USER_KURDISH_SOUTHERN_IRAN));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_USER_KURDISH_SOUTHERN_IRAQ));
+
+ // Punjabi
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_PUNJABI));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_PUNJABI_ARABIC_LSO));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_PUNJABI_PAKISTAN));
+
+ // Sindhi
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_SINDHI));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_SINDHI_ARABIC_LSO));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_SINDHI_PAKISTAN));
+
+ // Malai
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_MALAY_BRUNEI_DARUSSALAM));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_MALAY_MALAYSIA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_USER_MALAY_ARABIC_BRUNEI));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_USER_MALAY_ARABIC_MALAYSIA));
+
+ // Somali
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_SOMALI));
+
+ // Swahili
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_SWAHILI));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_USER_SWAHILI_TANZANIA));
+
+ // Urdu
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_URDU_INDIA));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_URDU_PAKISTAN));
+
+ // CJK
+ // Chinese
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_HONGKONG));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_LSO));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_MACAU));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_SIMPLIFIED));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_SIMPLIFIED_LEGACY));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_SINGAPORE));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_TRADITIONAL));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_CHINESE_TRADITIONAL_LSO));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_YUE_CHINESE_HONGKONG));
+ // Japanese
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_JAPANESE));
+ // Korean
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_KOREAN));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_KOREAN_JOHAB));
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_USER_KOREAN_NORTH));
+
+ // Vietnamese
+ CPPUNIT_ASSERT(!MsLangId::usesHyphenation(LANGUAGE_VIETNAMESE));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION( TestLanguageTag );
}