From 9876f7ac8bd3679a9ed0e617aaadad032403a88f Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Wed, 13 Jan 2016 13:54:15 +0100 Subject: QQuickTextEdit: added clear() method Task-number: QTBUG-50428 Change-Id: Id618616f8d8d50c2a2eba79a2bf6969662e727b8 Reviewed-by: J-P Nurmi --- .../quick/qquicktextedit/tst_qquicktextedit.cpp | 61 ++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp') diff --git a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp index f71168412b..e8b84d4554 100644 --- a/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp +++ b/tests/auto/quick/qquicktextedit/tst_qquicktextedit.cpp @@ -194,6 +194,7 @@ private slots: void redo(); void undo_keypressevents_data(); void undo_keypressevents(); + void clear(); void baseUrl(); void embeddedImages(); @@ -5247,6 +5248,66 @@ void tst_qquicktextedit::undo_keypressevents() QVERIFY(textEdit->text().isEmpty()); } +void tst_qquicktextedit::clear() +{ + QString componentStr = "import QtQuick 2.0\nTextEdit { focus: true }"; + QQmlComponent textEditComponent(&engine); + textEditComponent.setData(componentStr.toLatin1(), QUrl()); + QQuickTextEdit *textEdit = qobject_cast(textEditComponent.create()); + QVERIFY(textEdit != 0); + + QQuickWindow window; + textEdit->setParentItem(window.contentItem()); + window.show(); + window.requestActivate(); + QTest::qWaitForWindowActive(&window); + QVERIFY(textEdit->hasActiveFocus()); + + QSignalSpy spy(textEdit, SIGNAL(canUndoChanged())); + + textEdit->setText("I am Legend"); + QCOMPARE(textEdit->text(), QString("I am Legend")); + textEdit->clear(); + QVERIFY(textEdit->text().isEmpty()); + + QCOMPARE(spy.count(), 1); + + // checks that clears can be undone + textEdit->undo(); + QVERIFY(!textEdit->canUndo()); + QCOMPARE(spy.count(), 2); + QCOMPARE(textEdit->text(), QString("I am Legend")); + + textEdit->setCursorPosition(4); + QInputMethodEvent preeditEvent("PREEDIT", QList()); + QGuiApplication::sendEvent(textEdit, &preeditEvent); + QCOMPARE(textEdit->text(), QString("I am Legend")); + QCOMPARE(textEdit->preeditText(), QString("PREEDIT")); + + textEdit->clear(); + QVERIFY(textEdit->text().isEmpty()); + + QCOMPARE(spy.count(), 3); + + // checks that clears can be undone + textEdit->undo(); + QVERIFY(!textEdit->canUndo()); + QCOMPARE(spy.count(), 4); + QCOMPARE(textEdit->text(), QString("I am Legend")); + + textEdit->setText(QString("I am Legend")); + QCOMPARE(textEdit->text(), QString("I am Legend")); + textEdit->clear(); + QVERIFY(textEdit->text().isEmpty()); + + QCOMPARE(spy.count(), 5); + + // checks that clears can be undone + textEdit->undo(); + QCOMPARE(spy.count(), 6); + QCOMPARE(textEdit->text(), QString("I am Legend")); +} + void tst_qquicktextedit::baseUrl() { QUrl localUrl("file:///tests/text.qml"); -- cgit v1.2.3