diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2013-03-16 09:21:52 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-30 08:23:04 +0100 |
commit | bc4dcb6994160ca7cb3776d42d419299d854aed9 (patch) | |
tree | 3c9f05e8b1270184fda49ee2ddd6f57d93064b6b /tests/auto/corelib/tools/qlocale | |
parent | f052cefc2fd223605a59c1eec4e53a71ddbfee39 (diff) |
QLocale: Report textDirection() by looking to the locale script
Change-Id: Ic562b0301271ba414d5d3ff75a308d84bd288f56
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/tools/qlocale')
-rw-r--r-- | tests/auto/corelib/tools/qlocale/tst_qlocale.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp index ed74c939f7..e3fe39a401 100644 --- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp +++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp @@ -145,6 +145,9 @@ private slots: void measurementSystems(); void QTBUG_26035_positivesign(); + void textDirection_data(); + void textDirection(); + private: QString m_decimal, m_thousand, m_sdate, m_ldate, m_time; QString m_sysapp; @@ -1959,5 +1962,44 @@ void tst_QLocale::QTBUG_26035_positivesign() QVERIFY(ok); } +void tst_QLocale::textDirection_data() +{ + QTest::addColumn<int>("language"); + QTest::addColumn<int>("script"); + QTest::addColumn<bool>("rightToLeft"); + + for (int language = QLocale::C; language <= QLocale::LastLanguage; ++language) { + bool rightToLeft = false; + switch (language) { + case QLocale::Arabic: + case QLocale::Hebrew: + case QLocale::Kashmiri: + case QLocale::Persian: + case QLocale::Pashto: + case QLocale::Urdu: + case QLocale::Syriac: + case QLocale::Divehi: + rightToLeft = QLocale(QLocale::Language(language)).language() == QLocale::Language(language); // false if there is no locale data for language + break; + default: + break; + } + QString testName = QLocalePrivate::languageToCode(QLocale::Language(language)); + QTest::newRow(testName.toLatin1().constData()) << language << int(QLocale::AnyScript) << rightToLeft; + } + QTest::newRow("pa_Arab") << int(QLocale::Punjabi) << int(QLocale::ArabicScript) << true; + QTest::newRow("uz_Arab") << int(QLocale::Uzbek) << int(QLocale::ArabicScript) << true; +} + +void tst_QLocale::textDirection() +{ + QFETCH(int, language); + QFETCH(int, script); + QFETCH(bool, rightToLeft); + + QLocale locale(QLocale::Language(language), QLocale::Script(script), QLocale::AnyCountry); + QCOMPARE(locale.textDirection() == Qt::RightToLeft, rightToLeft); +} + QTEST_MAIN(tst_QLocale) #include "tst_qlocale.moc" |