tests/auto/qmenu/tst_qmenu.cpp
changeset 30 5dc02b23752f
parent 29 b72c6db6890b
child 33 3e2da88830cd
--- a/tests/auto/qmenu/tst_qmenu.cpp	Wed Jun 23 19:07:03 2010 +0300
+++ b/tests/auto/qmenu/tst_qmenu.cpp	Tue Jul 06 15:10:48 2010 +0300
@@ -105,6 +105,8 @@
     void setFixedWidth();
     void deleteActionInTriggered();
     void pushButtonPopulateOnAboutToShow();
+    void QTBUG7907_submenus_autoselect();
+    void QTBUG7411_submenus_activate();
     void QTBUG_10735_crashWithDialog();
 protected slots:
     void onActivated(QAction*);
@@ -932,6 +934,41 @@
     QVERIFY(!lastMenu->geometry().intersects(b.geometry()));
 
 }
+void tst_QMenu::QTBUG7907_submenus_autoselect()
+{
+    QMenu menu("Test Menu");
+    QMenu set1("Setting1");
+    QMenu set2("Setting2");
+    QMenu subset("Subsetting");
+    subset.addAction("Values");
+    set1.addMenu(&subset);
+    menu.addMenu(&set1);
+    menu.addMenu(&set2);
+    menu.show();
+    QTest::qWaitForWindowShown(&menu);
+    QTest::mouseClick(&menu, Qt::LeftButton, Qt::NoModifier, QPoint(5,5) );
+    QTest::qWait(500);
+    QVERIFY(!subset.isVisible());
+}
+
+void tst_QMenu::QTBUG7411_submenus_activate()
+{
+    QMenu menu("Test Menu");
+    QAction *act = menu.addAction("foo");
+    QMenu sub1("&sub1");
+    sub1.addAction("foo");
+    sub1.setTitle("&sub1");
+    QAction *act1 = menu.addMenu(&sub1);
+    menu.show();
+    QTest::qWaitForWindowShown(&menu);
+    menu.setActiveAction(act);
+    QTest::keyPress(&menu, Qt::Key_Down);
+    QCOMPARE(menu.activeAction(), act1);
+    QVERIFY(!sub1.isVisible());
+    QTest::keyPress(&menu, Qt::Key_S);
+    QTRY_VERIFY(sub1.isVisible());
+}
+
 
 
 class MyMenu : public QMenu