aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp')
-rw-r--r--tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
index 80726720e4..b322e1c576 100644
--- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
+++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
@@ -49,6 +49,7 @@
#include <QtQuick/qquickview.h>
#include <QtGui/qguiapplication.h>
#include <QtGui/qstylehints.h>
+#include <QtGui/qvalidator.h>
#include <QInputMethod>
#include <private/qquicktextinput_p.h>
#include <private/qquicktextinput_p_p.h>
@@ -226,6 +227,7 @@ private slots:
void hasAcceptableInputMask();
void maskCharacter_data();
void maskCharacter();
+ void fixup();
private:
void simulateKey(QWindow *, int key);
@@ -6296,6 +6298,38 @@ void tst_qquicktextinput::maskCharacter()
}
}
+class TestValidator : public QValidator
+{
+public:
+ TestValidator(QObject *parent = 0) : QValidator(parent) { }
+
+ State validate(QString &input, int &) const { return input == QStringLiteral("ok") ? Acceptable : Intermediate; }
+ void fixup(QString &input) const { input = QStringLiteral("ok"); }
+};
+
+void tst_qquicktextinput::fixup()
+{
+ QQuickWindow window;
+ window.show();
+ window.requestActivate();
+ QTest::qWaitForWindowActive(&window);
+
+ QQuickTextInput *input = new QQuickTextInput(window.contentItem());
+ input->setValidator(new TestValidator(input));
+
+ // fixup() on accept
+ input->setFocus(true);
+ QVERIFY(input->hasActiveFocus());
+ QTest::keyClick(&window, Qt::Key_Enter);
+ QCOMPARE(input->text(), QStringLiteral("ok"));
+
+ // fixup() on defocus
+ input->setText(QString());
+ input->setFocus(false);
+ QVERIFY(!input->hasActiveFocus());
+ QCOMPARE(input->text(), QStringLiteral("ok"));
+}
+
QTEST_MAIN(tst_qquicktextinput)
#include "tst_qquicktextinput.moc"