summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/tools/qlocale/tst_qlocale.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
index 911187da53..ea65236d16 100644
--- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
+++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp
@@ -100,6 +100,7 @@ private slots:
#endif
void legacyNames();
void unixLocaleName();
+ void matchingLocales();
void double_conversion_data();
void double_conversion();
void long_long_conversion_data();
@@ -534,6 +535,35 @@ void tst_QLocale::legacyNames()
#undef TEST_CTOR
}
+void tst_QLocale::matchingLocales()
+{
+ const QLocale c(QLocale::C);
+ const QLocale ru_RU(QLocale::Russian, QLocale::Russia);
+
+ QList<QLocale> locales = QLocale::matchingLocales(QLocale::C, QLocale::AnyScript, QLocale::AnyCountry);
+ QCOMPARE(locales.size(), 1);
+ QVERIFY(locales.contains(c));
+
+ locales = QLocale::matchingLocales(QLocale::Russian, QLocale::CyrillicScript, QLocale::Russia);
+ QCOMPARE(locales.size(), 1);
+ QVERIFY(locales.contains(ru_RU));
+
+ locales = QLocale::matchingLocales(QLocale::Russian, QLocale::AnyScript, QLocale::AnyCountry);
+ QVERIFY(!locales.isEmpty());
+ QVERIFY(!locales.contains(c));
+ QVERIFY(locales.contains(ru_RU));
+
+ locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::CyrillicScript, QLocale::AnyCountry);
+ QVERIFY(!locales.isEmpty());
+ QVERIFY(!locales.contains(c));
+ QVERIFY(locales.contains(ru_RU));
+
+ locales = QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, QLocale::Russia);
+ QVERIFY(!locales.isEmpty());
+ QVERIFY(!locales.contains(c));
+ QVERIFY(locales.contains(ru_RU));
+}
+
void tst_QLocale::unixLocaleName()
{
#define TEST_NAME(req_lang, req_country, exp_name) \