aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@digia.com>2013-11-21 11:06:24 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-11-22 10:08:56 +0100
commit802921d40b8b48239958c6035c74d986fe606860 (patch)
tree1cedbc16bf2c9217d60129dd77af62b2d4410abc /tests/auto
parent88262738a8109f393f5e34d5898d1610d490e6f6 (diff)
TextInput: add editingFinished signal
Autotest is included. Task-number: QTBUG-34780 [ChangeLog][QtDeclarative][TextInput] add editingFinished signal Change-Id: Ib633daee67cd4e5f15739a6004adbe882ab3d3fc Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml13
-rw-r--r--tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp45
2 files changed, 58 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml b/tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml
new file mode 100644
index 0000000000..2ec5ce6676
--- /dev/null
+++ b/tests/auto/quick/qquicktextinput/data/signal_editingfinished.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.2
+
+Item {
+ property variant input1: input1
+ property variant input2: input2
+
+ width: 800; height: 600;
+
+ Column{
+ TextInput { id: input1; }
+ TextInput { id: input2; }
+ }
+}
diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
index 1c2ab4d948..80726720e4 100644
--- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
+++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp
@@ -146,6 +146,8 @@ private slots:
void validators();
void inputMethods();
+ void signal_editingfinished();
+
void passwordCharacter();
void cursorDelegate_data();
void cursorDelegate();
@@ -2303,6 +2305,49 @@ void tst_qquicktextinput::inputMethods()
QCOMPARE(enabledQueryEvent.value(Qt::ImEnabled).toBool(), false);
}
+void tst_qquicktextinput::signal_editingfinished()
+{
+ QQuickView window(testFileUrl("signal_editingfinished.qml"));
+ window.show();
+ window.requestActivate();
+ QTest::qWaitForWindowActive(&window);
+
+ QVERIFY(window.rootObject() != 0);
+
+ QQuickTextInput *input1 = qobject_cast<QQuickTextInput *>(qvariant_cast<QObject *>(window.rootObject()->property("input1")));
+ QVERIFY(input1);
+ QQuickTextInput *input2 = qobject_cast<QQuickTextInput *>(qvariant_cast<QObject *>(window.rootObject()->property("input2")));
+ QVERIFY(input2);
+ QSignalSpy input1Spy(input1, SIGNAL(editingFinished()));
+
+ input1->setFocus(true);
+ QTRY_VERIFY(input1->hasActiveFocus());
+ QTRY_VERIFY(!input2->hasActiveFocus());
+
+ QTest::keyPress(&window, Qt::Key_A);
+ QTest::keyRelease(&window, Qt::Key_A, Qt::NoModifier);
+ QTRY_COMPARE(input1->text(), QLatin1String("a"));
+
+ QTest::keyPress(&window, Qt::Key_Enter);
+ QTest::keyRelease(&window, Qt::Key_Enter, Qt::NoModifier);
+ QTRY_COMPARE(input1Spy.count(), 1);
+
+ QSignalSpy input2Spy(input2, SIGNAL(editingFinished()));
+
+ input2->setFocus(true);
+ QTRY_VERIFY(!input1->hasActiveFocus());
+ QTRY_VERIFY(input2->hasActiveFocus());
+
+ QTest::keyPress(&window, Qt::Key_A);
+ QTest::keyRelease(&window, Qt::Key_A, Qt::NoModifier);
+ QTRY_COMPARE(input2->text(), QLatin1String("a"));
+
+ input1->setFocus(true);
+ QTRY_VERIFY(input1->hasActiveFocus());
+ QTRY_VERIFY(!input2->hasActiveFocus());
+ QTRY_COMPARE(input2Spy.count(), 1);
+}
+
/*
TextInput element should only handle left/right keys until the cursor reaches
the extent of the text, then they should ignore the keys.