summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/kernel')
-rw-r--r--tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp45
-rw-r--r--tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp14
2 files changed, 52 insertions, 7 deletions
diff --git a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
index 7664706b93..0c009ec155 100644
--- a/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
+++ b/tests/auto/gui/kernel/qguiapplication/tst_qguiapplication.cpp
@@ -54,6 +54,7 @@ private slots:
void allWindows();
void topLevelWindows();
void abortQuitOnShow();
+ void changeFocusWindow();
};
class DummyWindow : public QWindow
@@ -195,5 +196,49 @@ void tst_QGuiApplication::abortQuitOnShow()
QCOMPARE(app.exec(), 1);
}
+
+class FocusChangeWindow: public QWindow
+{
+protected:
+ virtual bool event(QEvent *ev)
+ {
+ if (ev->type() == QEvent::FocusAboutToChange)
+ windowDuringFocusAboutToChange = qGuiApp->focusWindow();
+ return QWindow::event(ev);
+ }
+
+ virtual void focusOutEvent(QFocusEvent *)
+ {
+ windowDuringFocusOut = qGuiApp->focusWindow();
+ }
+
+public:
+ FocusChangeWindow() : QWindow(), windowDuringFocusAboutToChange(0), windowDuringFocusOut(0) {}
+
+ QWindow *windowDuringFocusAboutToChange;
+ QWindow *windowDuringFocusOut;
+};
+
+void tst_QGuiApplication::changeFocusWindow()
+{
+ int argc = 0;
+ QGuiApplication app(argc, 0);
+
+ // focus is changed between FocusAboutToChange and FocusChanged
+ FocusChangeWindow window1, window2;
+ window1.show();
+ window2.show();
+ QTest::qWaitForWindowShown(&window1);
+ QTest::qWaitForWindowShown(&window2);
+ window1.requestActivateWindow();
+ QTRY_COMPARE(app.focusWindow(), &window1);
+
+ window2.requestActivateWindow();
+ QTRY_COMPARE(app.focusWindow(), &window2);
+ QCOMPARE(window1.windowDuringFocusAboutToChange, &window1);
+ QCOMPARE(window1.windowDuringFocusOut, &window2);
+}
+
+
QTEST_APPLESS_MAIN(tst_QGuiApplication)
#include "tst_qguiapplication.moc"
diff --git a/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp b/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp
index bc364e37f1..3810546146 100644
--- a/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp
+++ b/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp
@@ -110,7 +110,7 @@ public:
virtual ~tst_qinputmethod() {}
private slots:
void initTestCase();
- void visible();
+ void isVisible();
void animating();
void keyboarRectangle();
void inputItem();
@@ -133,20 +133,20 @@ void tst_qinputmethod::initTestCase()
inputMethodPrivate->testContext = &m_platformInputContext;
}
-void tst_qinputmethod::visible()
+void tst_qinputmethod::isVisible()
{
- QCOMPARE(qApp->inputMethod()->visible(), false);
+ QCOMPARE(qApp->inputMethod()->isVisible(), false);
qApp->inputMethod()->show();
- QCOMPARE(qApp->inputMethod()->visible(), true);
+ QCOMPARE(qApp->inputMethod()->isVisible(), true);
qApp->inputMethod()->hide();
- QCOMPARE(qApp->inputMethod()->visible(), false);
+ QCOMPARE(qApp->inputMethod()->isVisible(), false);
qApp->inputMethod()->setVisible(true);
- QCOMPARE(qApp->inputMethod()->visible(), true);
+ QCOMPARE(qApp->inputMethod()->isVisible(), true);
qApp->inputMethod()->setVisible(false);
- QCOMPARE(qApp->inputMethod()->visible(), false);
+ QCOMPARE(qApp->inputMethod()->isVisible(), false);
}
void tst_qinputmethod::animating()