QLineEdit: a validator fixup() should keep it modified; add failing test

I still have no idea how to fix this properly given the absolute mess
of QWidgetLineControl. For now add a failing test.

Change-Id: Ieb5ad6994c8ce7deb0cd0f2f47d51073d042244e
Task-number: QTBUG-49295
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
bb10
Giuseppe D'Angelo 2015-12-10 18:42:42 +01:00 committed by Marc Mutz
parent d729c3459f
commit 4b35c91a77
1 changed files with 24 additions and 0 deletions

View File

@ -229,6 +229,7 @@ private slots:
void isModified();
void edited();
void fixupDoesNotModify_QTBUG_49295();
void insert();
void setSelection_data();
@ -2844,6 +2845,29 @@ void tst_QLineEdit::edited()
QVERIFY(testWidget->isModified());
}
void tst_QLineEdit::fixupDoesNotModify_QTBUG_49295()
{
QLineEdit *testWidget = ensureTestWidget();
ValidatorWithFixup val;
testWidget->setValidator(&val);
testWidget->setText("foo");
QVERIFY(!testWidget->isModified());
QVERIFY(!testWidget->hasAcceptableInput());
QTest::keyClicks(testWidget, QStringLiteral("bar"));
QVERIFY(testWidget->isModified());
QVERIFY(!testWidget->hasAcceptableInput());
// trigger a fixup, which should not reset the modified flag
QFocusEvent lostFocus(QEvent::FocusOut);
qApp->sendEvent(testWidget, &lostFocus);
QVERIFY(testWidget->hasAcceptableInput());
QEXPECT_FAIL("", "QTBUG-49295: a fixup of a line edit should keep it modified", Continue);
QVERIFY(testWidget->isModified());
}
void tst_QLineEdit::insert()
{
QLineEdit *testWidget = ensureTestWidget();