Add mixed-language tests for QLocale::uiLanguages()
Change-Id: I1b68e1e47254dc5936f28a9a2c6cad6d316cb65a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
1f2ab46745
commit
25a430a350
@ -4085,7 +4085,17 @@ public:
|
|||||||
switch (type) {
|
switch (type) {
|
||||||
case UILanguages:
|
case UILanguages:
|
||||||
if (m_name == u"en-DE") // QTBUG-104930: simulate macOS's list not including m_name.
|
if (m_name == u"en-DE") // QTBUG-104930: simulate macOS's list not including m_name.
|
||||||
return QVariant(QStringList{QStringLiteral("en-GB"), QStringLiteral("de-DE")});
|
return QVariant(QStringList{u"en-GB"_s, u"de-DE"_s});
|
||||||
|
if (m_name == u"en-Dsrt-GB")
|
||||||
|
return QVariant(QStringList{u"en-Dsrt-GB"_s, u"en-GB"_s});
|
||||||
|
if (m_name == u"en-FO") { // Nominally Faroe Islands, used for en-mixed test
|
||||||
|
return QVariant(QStringList{u"en-DK"_s, u"en-GB"_s, u"fo-FO"_s,
|
||||||
|
u"da-FO"_s, u"da-DK"_s});
|
||||||
|
}
|
||||||
|
if (m_name == u"de-CA") { // Imagine a 2nd generation Canadian of de-AT ancestry ...
|
||||||
|
return QVariant(QStringList{u"en-CA"_s, u"fr-CA"_s, u"de-AT"_s,
|
||||||
|
u"en-GB"_s, u"fr-FR"_s});
|
||||||
|
}
|
||||||
return QVariant(QStringList{m_name});
|
return QVariant(QStringList{m_name});
|
||||||
case LanguageId:
|
case LanguageId:
|
||||||
return m_id.language_id;
|
return m_id.language_id;
|
||||||
@ -4171,6 +4181,21 @@ void tst_QLocale::mySystemLocale_data()
|
|||||||
<< QString("C-Hans-CN") << QLocale::C
|
<< QString("C-Hans-CN") << QLocale::C
|
||||||
<< QStringList{QStringLiteral("C-Hans-CN"), QStringLiteral("C")};
|
<< QStringList{QStringLiteral("C-Hans-CN"), QStringLiteral("C")};
|
||||||
|
|
||||||
|
QTest::newRow("en-Dsrt-GB")
|
||||||
|
<< u"en-Dsrt-GB"_s << QLocale::English
|
||||||
|
<< QStringList{u"en-Dsrt-GB"_s, u"en-GB"_s, u"en-Latn-GB"_s};
|
||||||
|
QTest::newRow("en-mixed")
|
||||||
|
<< u"en-FO"_s << QLocale::English
|
||||||
|
<< QStringList{u"en-FO"_s, u"en-Latn-FO"_s, u"en-DK"_s, u"en-Latn-DK"_s,
|
||||||
|
u"en-GB"_s, u"en-Latn-GB"_s,
|
||||||
|
u"fo-FO"_s, u"fo-Latn-FO"_s, u"fo"_s,
|
||||||
|
u"da-FO"_s, u"da-Latn-FO"_s, u"da-DK"_s, u"da-Latn-DK"_s, u"da"_s};
|
||||||
|
QTest::newRow("polylingual-CA")
|
||||||
|
<< u"de-CA"_s << QLocale::German
|
||||||
|
<< QStringList{u"de-CA"_s, u"de-Latn-CA"_s, u"en-CA"_s, u"en-Latn-CA"_s,
|
||||||
|
u"fr-CA"_s, u"fr-Latn-CA"_s, u"de-AT"_s, u"de-Latn-AT"_s,
|
||||||
|
u"en-GB"_s, u"en-Latn-GB"_s, u"fr-FR"_s, u"fr-Latn-FR"_s, u"fr"_s};
|
||||||
|
|
||||||
QTest::newRow("und-US")
|
QTest::newRow("und-US")
|
||||||
<< QString("und-US") << QLocale::C
|
<< QString("und-US") << QLocale::C
|
||||||
<< QStringList{QStringLiteral("und-US"), QStringLiteral("C")};
|
<< QStringList{QStringLiteral("und-US"), QStringLiteral("C")};
|
||||||
@ -4201,7 +4226,8 @@ void tst_QLocale::mySystemLocale()
|
|||||||
QCOMPARE(QLocale().language(), language);
|
QCOMPARE(QLocale().language(), language);
|
||||||
QCOMPARE(QLocale::system().language(), language);
|
QCOMPARE(QLocale::system().language(), language);
|
||||||
auto reporter = qScopeGuard([]() {
|
auto reporter = qScopeGuard([]() {
|
||||||
qDebug("\n\t%s", qPrintable(QLocale::system().uiLanguages().join(u"\n\t")));
|
qDebug("Actual entries:\n\t%s",
|
||||||
|
qPrintable(QLocale::system().uiLanguages().join(u"\n\t")));
|
||||||
});
|
});
|
||||||
QCOMPARE(QLocale::system().uiLanguages(), uiLanguages);
|
QCOMPARE(QLocale::system().uiLanguages(), uiLanguages);
|
||||||
QCOMPARE(QLocale::system().uiLanguages(QLocale::TagSeparator::Underscore),
|
QCOMPARE(QLocale::system().uiLanguages(QLocale::TagSeparator::Underscore),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user