Tests/QComboBox: use QTRY_COMPARE instead processEvents()

Use QTRY_COMPARE instead QCoreApplication::processEvents() to make
sure the event is really delivered.

Pick-to: 6.7 6.5
Fixes: QTBUG-62970
Change-Id: Iacacc912ec890d231f6e32feae436d0e3db23ddc
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 7afe277914f9ba7cc5940b474113ecb8842503c5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Christian Ehrlicher 2024-07-02 21:03:44 +02:00 committed by Qt Cherry-pick Bot
parent bcfa650ced
commit d69c8fd98a

View File

@ -818,7 +818,6 @@ void tst_QComboBox::virtualAutocompletion()
QApplication::sendEvent(testWidget, &kp1);
QApplication::sendEvent(testWidget, &kr1);
qApp->processEvents(); // Process events to trigger autocompletion
QTRY_COMPARE(testWidget->currentIndex(), 1);
QKeyEvent kp2(QEvent::KeyPress, Qt::Key_O, {}, "o");
@ -827,12 +826,10 @@ void tst_QComboBox::virtualAutocompletion()
QApplication::sendEvent(testWidget, &kp2);
QApplication::sendEvent(testWidget, &kr2);
qApp->processEvents(); // Process events to trigger autocompletion
QTRY_COMPARE(testWidget->currentIndex(), 2);
QApplication::sendEvent(testWidget, &kp2);
QApplication::sendEvent(testWidget, &kr2);
qApp->processEvents(); // Process events to trigger autocompletion
QTRY_COMPARE(testWidget->currentIndex(), 3);
#if defined(Q_PROCESSOR_ARM) || defined(Q_PROCESSOR_MIPS)
QApplication::setKeyboardInputInterval(oldInterval);
@ -869,75 +866,68 @@ void tst_QComboBox::autoCompletionCaseSensitivity()
testWidget->clearEditText();
QSignalSpy spyReturn(testWidget, SIGNAL(activated(int)));
testWidget->completer()->setCaseSensitivity(Qt::CaseInsensitive);
QCOMPARE(testWidget->completer()->caseSensitivity(), Qt::CaseInsensitive);
QTRY_COMPARE(testWidget->completer()->caseSensitivity(), Qt::CaseInsensitive);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_A);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("aww"));
QTRY_COMPARE(testWidget->currentText(), QString("aww"));
QCOMPARE(spyReturn.size(), 0);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_B);
qApp->processEvents();
// autocompletions preserve userkey-case from 4.2
QCOMPARE(testWidget->currentText(), QString("abCDEF"));
QTRY_COMPARE(testWidget->currentText(), QString("abCDEF"));
QCOMPARE(spyReturn.size(), 0);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("aBCDEF")); // case restored to item's case
QTRY_COMPARE(testWidget->currentText(), QString("aBCDEF")); // case restored to item's case
QCOMPARE(spyReturn.size(), 1);
testWidget->clearEditText();
QTest::keyClick(testWidget->lineEdit(), 'c');
QCOMPARE(testWidget->currentText(), QString("cow"));
QTRY_COMPARE(testWidget->currentText(), QString("cow"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
QCOMPARE(testWidget->currentText(), QString("Cow")); // case restored to item's case
QTRY_COMPARE(testWidget->currentText(), QString("Cow")); // case restored to item's case
testWidget->clearEditText();
QTest::keyClick(testWidget->lineEdit(), 'a');
QTest::keyClick(testWidget->lineEdit(), '*');
QCOMPARE(testWidget->currentText(), QString("a*"));
QTRY_COMPARE(testWidget->currentText(), QString("a*"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
QCOMPARE(testWidget->currentText(), QString("A*"));
QTRY_COMPARE(testWidget->currentText(), QString("A*"));
// case sensitive
testWidget->clearEditText();
testWidget->completer()->setCaseSensitivity(Qt::CaseSensitive);
QCOMPARE(testWidget->completer()->caseSensitivity(), Qt::CaseSensitive);
QTRY_COMPARE(testWidget->completer()->caseSensitivity(), Qt::CaseSensitive);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_A);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("aww"));
QTRY_COMPARE(testWidget->currentText(), QString("aww"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_B);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("abcdef"));
QTRY_COMPARE(testWidget->currentText(), QString("abcdef"));
testWidget->setCurrentIndex(0); // to reset the completion's "start"
testWidget->clearEditText();
QTest::keyClick(testWidget->lineEdit(), 'a');
QTest::keyClick(testWidget->lineEdit(), 'b');
QCOMPARE(testWidget->currentText(), QString("abcdef"));
QTRY_COMPARE(testWidget->currentText(), QString("abcdef"));
QTest::keyClick(testWidget->lineEdit(), 'C');
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("abCdef"));
QTRY_COMPARE(testWidget->currentText(), QString("abCdef"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("abCdef")); // case restored to item's case
QTRY_COMPARE(testWidget->currentText(), QString("abCdef")); // case restored to item's case
testWidget->clearEditText();
QTest::keyClick(testWidget->lineEdit(), 'c');
QCOMPARE(testWidget->currentText(), QString("c"));
QTRY_COMPARE(testWidget->currentText(), QString("c"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Backspace);
QTest::keyClick(testWidget->lineEdit(), 'C');
QCOMPARE(testWidget->currentText(), QString("Cow"));
QTRY_COMPARE(testWidget->currentText(), QString("Cow"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
QCOMPARE(testWidget->currentText(), QString("Cow"));
QTRY_COMPARE(testWidget->currentText(), QString("Cow"));
testWidget->clearEditText();
QTest::keyClick(testWidget->lineEdit(), 'a');
QTest::keyClick(testWidget->lineEdit(), '*');
QCOMPARE(testWidget->currentText(), QString("a*"));
QTRY_COMPARE(testWidget->currentText(), QString("a*"));
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
QCOMPARE(testWidget->currentText(), QString("a*")); // A* not matched
QTRY_COMPARE(testWidget->currentText(), QString("a*")); // A* not matched
}
void tst_QComboBox::hide()