From 737abb8a5e51d75c0f2f93d5f7b42b05400034a9 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 2 Jul 2013 15:49:50 +0200 Subject: QComboBox: fix item activation via completer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-31146 Change-Id: I64291f397d80bf934152f63e629810540abf466e Reviewed-by: Friedemann Kleint Reviewed-by: Stephen Kelly Reviewed-by: Thorbjørn Lund Martsum --- .../widgets/widgets/qcombobox/tst_qcombobox.cpp | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'tests') diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp index 0bfd4baa0c..82d3fae0fa 100644 --- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp @@ -160,6 +160,7 @@ private slots: void maxVisibleItems(); void task_QTBUG_10491_currentIndexAndModelColumn(); void highlightedSignal(); + void task_QTBUG_31146_popupCompletion(); }; class MyAbstractItemDelegate : public QAbstractItemDelegate @@ -2755,5 +2756,39 @@ void tst_QComboBox::highlightedSignal() QCOMPARE(spy.size(), 1); } +void tst_QComboBox::task_QTBUG_31146_popupCompletion() +{ + QComboBox comboBox; + comboBox.setEditable(true); + comboBox.setAutoCompletion(true); + comboBox.setInsertPolicy(QComboBox::NoInsert); + comboBox.completer()->setCaseSensitivity(Qt::CaseInsensitive); + comboBox.completer()->setCompletionMode(QCompleter::PopupCompletion); + + comboBox.addItems(QStringList() << QStringLiteral("item") << QStringLiteral("item")); + + comboBox.show(); + comboBox.activateWindow(); + QVERIFY(QTest::qWaitForWindowActive(&comboBox)); + + QCOMPARE(comboBox.currentIndex(), 0); + + comboBox.lineEdit()->selectAll(); + QTest::keyClicks(comboBox.lineEdit(), "item"); + + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Down); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Down); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Enter); + QCOMPARE(comboBox.currentIndex(), 1); + + comboBox.lineEdit()->selectAll(); + QTest::keyClicks(comboBox.lineEdit(), "item"); + + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Up); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Up); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Enter); + QCOMPARE(comboBox.currentIndex(), 0); +} + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" -- cgit v1.2.3