tests/auto/qlistwidget/tst_qlistwidget.cpp
changeset 30 5dc02b23752f
parent 18 2f34d5167611
--- a/tests/auto/qlistwidget/tst_qlistwidget.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -132,6 +132,7 @@
     void task199503_crashWhenCleared();
     void task217070_scrollbarsAdjusted();
     void task258949_keypressHangup();
+    void QTBUG8086_currentItemChangedOnClick();
 
 
 protected slots:
@@ -1609,5 +1610,35 @@
     QCOMPARE(lw.currentIndex(), lw.model()->index(0,0));
 }
 
+void tst_QListWidget::QTBUG8086_currentItemChangedOnClick()
+{
+    qRegisterMetaType<QListWidgetItem*>("QListWidgetItem*");
+    QWidget win;
+    QHBoxLayout layout(&win);
+    QListWidget list;
+    for (int i = 0 ; i < 4; ++i)
+        new QListWidgetItem(QString::number(i), &list);
+
+    layout.addWidget(&list);
+
+    QLineEdit edit;
+    layout.addWidget(&edit);
+
+    edit.setFocus();
+    win.show();
+
+    QSignalSpy spy(&list, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)));
+
+    QTest::qWaitForWindowShown(&win);
+
+    QCOMPARE(spy.count(), 0);
+
+    QTest::mouseClick(list.viewport(), Qt::LeftButton, 0, list.visualItemRect(list.item(2)).center());
+
+    QCOMPARE(spy.count(), 1);
+
+}
+
+
 QTEST_MAIN(tst_QListWidget)
 #include "tst_qlistwidget.moc"