From cd79a60372479df31783757adc9b3822ae37331d Mon Sep 17 00:00:00 2001 From: Samuel Nevala Date: Mon, 6 Jun 2011 08:56:35 +0300 Subject: [PATCH] TextEdit autotest for QInputMethodEvent::Selection Task-number: QTBUG-XXXXX Reviewed-by: pending --- .../tst_qdeclarativetextedit.cpp | 39 ++++++++++++++++++++ 1 files changed, 39 insertions(+), 0 deletions(-) diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index 8530c7f..0052e44 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -154,6 +154,7 @@ private slots: void inputContextMouseHandler(); void inputMethodComposing(); void cursorRectangleSize(); + void inputMethodSelection(); private: void simulateKey(QDeclarativeView *, int key, Qt::KeyboardModifiers modifiers = 0); @@ -2619,6 +2620,44 @@ void tst_qdeclarativetextedit::cursorRectangleSize() QCOMPARE(microFocusFromScene.size(), cursorRect.size()); QCOMPARE(microFocusFromApp.size(), cursorRect.size()); } + +void tst_qdeclarativetextedit::inputMethodSelection() +{ + QDeclarativeView *canvas = createView(SRCDIR "/data/CursorRect.qml"); + QVERIFY(canvas->rootObject() != 0); + canvas->show(); + canvas->setFocus(); + QApplication::setActiveWindow(canvas); + QTest::qWaitForWindowShown(canvas); + QDeclarativeTextEdit *textEdit = qobject_cast(canvas->rootObject()); + QVERIFY(textEdit != 0); + textEdit->setFocus(Qt::OtherFocusReason); + textEdit->setProperty("text", "Lorem ipsum dolor sit amet, consectetur adipiscing elit."); + textEdit->select(0,0); + QSignalSpy selectionSpy(textEdit, SIGNAL(selectionChanged())); + QSignalSpy selectionStartSpy(textEdit, SIGNAL(selectionStartChanged())); + QSignalSpy selectionEndSpy(textEdit, SIGNAL(selectionEndChanged())); + + textEdit->select(0,5); + + QCOMPARE(selectionSpy.count(), 1); + QCOMPARE(selectionStartSpy.count(), 0); + QCOMPARE(selectionEndSpy.count(), 1); + QCOMPARE(textEdit->property("selectionStart"), QVariant(0)); + QCOMPARE(textEdit->property("selectionEnd"), QVariant(5)); + + QList attributes; + attributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 12, 5, QVariant()); + QInputMethodEvent event("", attributes); + QApplication::sendEvent(canvas, &event); + + QCOMPARE(selectionSpy.count(), 2); + QCOMPARE(selectionStartSpy.count(), 1); + QCOMPARE(selectionEndSpy.count(), 2); + QCOMPARE(textEdit->property("selectionStart"), QVariant(12)); + QCOMPARE(textEdit->property("selectionEnd"), QVariant(17)); +} + QTEST_MAIN(tst_qdeclarativetextedit) #include "tst_qdeclarativetextedit.moc" -- 1.7.3.1.msysgit.0