diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2013-02-15 13:53:14 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-20 08:15:26 +0100 |
commit | 4606ea53958df33fffba680dd75c8b1733ca9f40 (patch) | |
tree | 41b348e2c4827135c2c7d0c87e2bc8e7fecd9471 /tests/auto/widgets/widgets | |
parent | 8efad82d6c8b0f59c5acb7f355ad2742f17b91df (diff) |
QProgressBar: Use localized numbers and percent sign.
Task-number: QTBUG-28751
Change-Id: I56aca3e0ee9c579297110c69d2d832c7a57f1ae7
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Karim Pinter <karim.pinter@digia.com>
Diffstat (limited to 'tests/auto/widgets/widgets')
-rw-r--r-- | tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp index 5ad9aa7690..2bbfb48e63 100644 --- a/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp +++ b/tests/auto/widgets/widgets/qprogressbar/tst_qprogressbar.cpp @@ -42,6 +42,7 @@ #include <QtTest/QtTest> #include "qprogressbar.h" +#include <qlocale.h> #include <qapplication.h> #include <qstyleoption.h> #include <qdebug.h> @@ -64,6 +65,7 @@ private slots: void sizeHint(); void formatedText_data(); void formatedText(); + void localizedFormattedText(); void task245201_testChangeStyleAndDelete_data(); void task245201_testChangeStyleAndDelete(); @@ -301,6 +303,40 @@ void tst_QProgressBar::formatedText() QCOMPARE(bar.text(), text); } +void tst_QProgressBar::localizedFormattedText() // QTBUG-28751 +{ + QProgressBar bar; + const int value = 42; + bar.setValue(value); + const QString defaultExpectedNumber = QString::number(value); + const QString defaultExpectedValue = defaultExpectedNumber + QLatin1Char('%'); + QCOMPARE(bar.text(), defaultExpectedValue); + + // Temporarily switch to Egyptian, which has a different percent sign and number formatting + QLocale egypt(QLocale::Arabic, QLocale::Egypt); + bar.setLocale(egypt); + const QString egyptianExpectedNumber = egypt.toString(value); + const QString egyptianExpectedValue = egyptianExpectedNumber + egypt.percent(); + if (egyptianExpectedValue == defaultExpectedValue) + QSKIP("Egyptian locale does not work on this system."); + QCOMPARE(bar.text(), egyptianExpectedValue); + + bar.setLocale(QLocale()); + QCOMPARE(bar.text(), defaultExpectedValue); + + // Set a custom format containing only the number + bar.setFormat(QStringLiteral("%p")); + QCOMPARE(bar.text(), defaultExpectedNumber); + bar.setLocale(egypt); + QCOMPARE(bar.text(), egyptianExpectedNumber); + + // Clear the format + bar.resetFormat(); + QCOMPARE(bar.text(), egyptianExpectedValue); + bar.setLocale(QLocale()); + QCOMPARE(bar.text(), defaultExpectedValue); +} + void tst_QProgressBar::task245201_testChangeStyleAndDelete_data() { QTest::addColumn<QString>("style1_str"); |