tests/auto/qlineedit/tst_qlineedit.cpp
changeset 30 5dc02b23752f
parent 23 89e065397ea6
child 37 758a864f9613
--- a/tests/auto/qlineedit/tst_qlineedit.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -271,6 +271,9 @@
     void taskQTBUG_4401_enterKeyClearsPassword();
     void taskQTBUG_4679_moveToStartEndOfBlock();
     void taskQTBUG_4679_selectToStartEndOfBlock();
+#ifndef QT_NO_CONTEXTMENU
+    void taskQTBUG_7902_contextMenuCrash();
+#endif
     void taskQTBUG_7395_readOnlyShortcut();
 
 #ifdef QT3_SUPPORT
@@ -3670,6 +3673,26 @@
 #endif // Q_OS_MAC
 }
 
+#ifndef QT_NO_CONTEXTMENU
+void tst_QLineEdit::taskQTBUG_7902_contextMenuCrash()
+{
+    // Would pass before the associated commit, but left as a guard.
+    QLineEdit *w = new QLineEdit;
+    w->show();
+    QTest::qWaitForWindowShown(w);
+
+    QTimer ti;
+    w->connect(&ti, SIGNAL(timeout()), w, SLOT(deleteLater()));
+    ti.start(200);
+
+    QContextMenuEvent *cme = new QContextMenuEvent(QContextMenuEvent::Mouse, w->rect().center());
+    qApp->postEvent(w, cme);
+
+    QTest::qWait(300);
+    // No crash, it's allright.
+}
+#endif
+
 void tst_QLineEdit::taskQTBUG_7395_readOnlyShortcut()
 {
     //ReadOnly QLineEdit should not intercept shortcut.