diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/tools/qlocale/tst_qlocale.cpp | 30 |
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) \ |