]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Improve DolphinViewTest_AllViewModes::testKeyboardFocus().
authorFrank Reininghaus <frank78ac@googlemail.com>
Wed, 26 Jan 2011 13:12:49 +0000 (13:12 +0000)
committerFrank Reininghaus <frank78ac@googlemail.com>
Wed, 26 Jan 2011 13:12:49 +0000 (13:12 +0000)
The test assumes that the view does not have the keyboard focus
initially. However, this may not be the case if this is the only test
to be executed (i.e., if testKeyboardFocus is passed to the test
executable on the command line). This commit transfers the keyboard
focus explicitly to another widget.

svn path=/trunk/KDE/kdebase/apps/; revision=1217251

src/tests/dolphinviewtest_allviewmodes.cpp

index 3eb78c0d256430146644f269454d063c7585ac91..36285a95964b919f6900d642311ba0d6eb6c30e6 100644 (file)
@@ -217,14 +217,25 @@ void DolphinViewTest_AllViewModes::testViewPropertySettings()
  * testKeyboardFocus() checks whether a view grabs the keyboard focus.
  *
  * A view may never grab the keyboard focus itself and must respect the focus-state
- * when switching the view mode.
+ * when switching the view mode, see
+ *
+ * https://bugs.kde.org/show_bug.cgi?id=261147
  */
 
 void DolphinViewTest_AllViewModes::testKeyboardFocus()
 {
     const DolphinView::Mode mode = m_view->mode();
 
+    // Move keyboard focus to another widget. To see that this is needed, run only this test,
+    // i.e., pass 'testKeyboardFocus' as a parameter on the command line.
+    QWidget widget;
+    widget.show();
+    QTest::qWaitForWindowShown(&widget);
+    widget.setFocus();
+
     QVERIFY(!m_view->hasFocus());
+
+    // Switch view modes and verify that the view does not get the focus back
     for (int i = 0; i <= DolphinView::MaxModeEnum; ++i) {
         m_view->setMode(static_cast<DolphinView::Mode>(i));
         QVERIFY(!m_view->hasFocus());