summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2013-02-15 13:53:14 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-20 08:15:26 +0100
commit4606ea53958df33fffba680dd75c8b1733ca9f40 (patch)
tree41b348e2c4827135c2c7d0c87e2bc8e7fecd9471 /tests/auto/widgets/widgets
parent8efad82d6c8b0f59c5acb7f355ad2742f17b91df (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.cpp36
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");