summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2013-03-16 09:21:52 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-30 08:23:04 +0100
commitbc4dcb6994160ca7cb3776d42d419299d854aed9 (patch)
tree3c9f05e8b1270184fda49ee2ddd6f57d93064b6b /tests/auto/corelib
parentf052cefc2fd223605a59c1eec4e53a71ddbfee39 (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')
-rw-r--r--tests/auto/corelib/tools/qlocale/tst_qlocale.cpp42
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"