mwolff added inline comments. INLINE COMMENTS
> dfaure wrote in kurlrequestertest.cpp:162 > Then use QTest::keyClick to send key events to the widget? I still don't get it to work. This is my currently latest attempt: void KUrlRequesterTest::testComboEditableRequester() { KUrlComboRequester req; QSignalSpy textSpy(&req, &KUrlComboRequester::textChanged); QSignalSpy editSpy(&req, &KUrlComboRequester::textEdited); QSignalSpy returnSpy(&req, static_cast<void (KUrlComboRequester::*)()>(&KUrlComboRequester::returnPressed)); QSignalSpy returnWithTextSpy(&req, static_cast<void (KUrlComboRequester::*)(const QString&)>(&KUrlComboRequester::returnPressed)); QVERIFY(!req.comboBox()->isEditable()); req.comboBox()->setEditable(true); req.show(); QSignalSpy comboTextSpy(req.comboBox(), &QComboBox::currentTextChanged); QSignalSpy comboEditSpy(req.comboBox(), &QComboBox::editTextChanged); auto* lineEdit = req.comboBox()->lineEdit(); QVERIFY(lineEdit); QSignalSpy lineTextSpy(lineEdit, &QLineEdit::textChanged); QSignalSpy lineEditSpy(lineEdit, &QLineEdit::textEdited); // FIXME: this still doesn't emit any signal, but it works in practice when actually interacting with the widget? QTest::keyClicks(lineEdit, QStringLiteral("foobar"), Qt::NoModifier, 100); QVERIFY(lineTextSpy.wait()); QCOMPARE(lineTextSpy.first().first().toString(), QStringLiteral("foobar")); QVERIFY(lineEditSpy.wait()); QCOMPARE(lineEditSpy.first().first().toString(), QStringLiteral("foobar")); } Note that the widget (which I now show) actually shows the text getting written via the QTest::keyClicks method. But none of the signals is actually getting emitted... I'm flabbergasted. Looking at the QLineEdit test code, it doesn't seem to actually contain a positive test for an of `isEditable`... I feel like I'm missing something fundamental here. Note that I can see the signals just fine in GammaRay when I interact with an editable combo box :-/ REPOSITORY R241 KIO REVISION DETAIL https://phabricator.kde.org/D7968 To: mwolff, apol Cc: dfaure, broulik, apol, #frameworks