summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorPekka Vuorela <pekka.ta.vuorela@nokia.com>2012-03-16 14:08:13 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-01 20:13:51 +0200
commit1f5e058f79f95e869d8de300596137463492056c (patch)
tree57d8a72b8dddf3701f2c824c2f85f88174e1fb6f /tests/auto
parentd5bc8ab811f380116c5a55a777150bc47a43a6bb (diff)
Testability for password mask delay
Unit test to override mask delay value so running it is not dependent on platform style hint. Change-Id: Ic5cc12d32cf97e64729b3af54250bdc05c0c95ad Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/widgets/widgets/qlineedit/qlineedit.pro2
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp16
2 files changed, 14 insertions, 4 deletions
diff --git a/tests/auto/widgets/widgets/qlineedit/qlineedit.pro b/tests/auto/widgets/widgets/qlineedit/qlineedit.pro
index 83f93f0ba0..74e2333801 100644
--- a/tests/auto/widgets/widgets/qlineedit/qlineedit.pro
+++ b/tests/auto/widgets/widgets/qlineedit/qlineedit.pro
@@ -1,6 +1,6 @@
CONFIG += testcase
TARGET = tst_qlineedit
-QT += gui-private core-private widgets testlib
+QT += gui-private core-private widgets widgets-private testlib
SOURCES += tst_qlineedit.cpp
# QTBUG-24518 - unstable test
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index f2a37d81b5..06bf929e4b 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -62,6 +62,8 @@
#endif
#include <qlineedit.h>
+#include <private/qlineedit_p.h>
+#include <private/qwidgetlinecontrol_p.h>
#include <qmenu.h>
#include <qlayout.h>
#include <qspinbox.h>
@@ -1670,8 +1672,16 @@ void tst_QLineEdit::passwordEchoOnEdit()
void tst_QLineEdit::passwordEchoDelay()
{
- if (qGuiApp->styleHints()->passwordMaskDelay() <= 0)
- QSKIP("No mask delay in use");
+ int delay = qGuiApp->styleHints()->passwordMaskDelay();
+#if defined QT_BUILD_INTERNAL
+ QLineEditPrivate *priv = QLineEditPrivate::get(testWidget);
+ QWidgetLineControl *control = priv->control;
+ control->m_passwordMaskDelayOverride = 200;
+ delay = 200;
+#endif
+ if (delay <= 0)
+ QSKIP("Platform not defining echo delay and overriding only possible in internal build");
+
QStyleOptionFrameV2 opt;
QChar fillChar = testWidget->style()->styleHint(QStyle::SH_LineEdit_PasswordCharacter, &opt, testWidget);
@@ -1691,7 +1701,7 @@ void tst_QLineEdit::passwordEchoDelay()
QCOMPARE(testWidget->displayText(), QString(4, fillChar));
QTest::keyPress(testWidget, '4');
QCOMPARE(testWidget->displayText(), QString(4, fillChar) + QLatin1Char('4'));
- QTest::qWait(qGuiApp->styleHints()->passwordMaskDelay());
+ QTest::qWait(delay);
QTRY_COMPARE(testWidget->displayText(), QString(5, fillChar));
QTest::keyPress(testWidget, '5');
QCOMPARE(testWidget->displayText(), QString(5, fillChar) + QLatin1Char('5'));