Add tst_QWindow::windowModality()
authorBradley T. Hughes <bradley.hughes@nokia.com>
Wed, 4 Apr 2012 10:11:40 +0000 (12:11 +0200)
committerQt by Nokia <qt-info@nokia.com>
Wed, 4 Apr 2012 12:04:03 +0000 (14:04 +0200)
This tests that we get the windowModalityChanged() signal as needed, but
not unnecessarily either.

Change-Id: I2232fa9d45c72e472b324b681859b4b0d574b467
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
tests/auto/gui/kernel/qwindow/tst_qwindow.cpp

index dc17ec6..a75e1cb 100644 (file)
@@ -67,6 +67,7 @@ private slots:
     void close();
     void activateAndClose();
     void mouseEventSequence();
+    void windowModality();
 
     void initTestCase()
     {
@@ -758,5 +759,36 @@ void tst_QWindow::mouseEventSequence()
     QCOMPARE(window.mouseSequenceSignature, QLatin1String("prprprpr"));
 }
 
+void tst_QWindow::windowModality()
+{
+    qRegisterMetaType<Qt::WindowModality>("Qt::WindowModality");
+
+    QWindow window;
+    QSignalSpy spy(&window, SIGNAL(windowModalityChanged(Qt::WindowModality)));
+
+    QCOMPARE(window.windowModality(), Qt::NonModal);
+    window.setWindowModality(Qt::NonModal);
+    QCOMPARE(window.windowModality(), Qt::NonModal);
+    QCOMPARE(spy.count(), 0);
+
+    window.setWindowModality(Qt::WindowModal);
+    QCOMPARE(window.windowModality(), Qt::WindowModal);
+    QCOMPARE(spy.count(), 1);
+    window.setWindowModality(Qt::WindowModal);
+    QCOMPARE(window.windowModality(), Qt::WindowModal);
+    QCOMPARE(spy.count(), 1);
+
+    window.setWindowModality(Qt::ApplicationModal);
+    QCOMPARE(window.windowModality(), Qt::ApplicationModal);
+    QCOMPARE(spy.count(), 2);
+    window.setWindowModality(Qt::ApplicationModal);
+    QCOMPARE(window.windowModality(), Qt::ApplicationModal);
+    QCOMPARE(spy.count(), 2);
+
+    window.setWindowModality(Qt::NonModal);
+    QCOMPARE(window.windowModality(), Qt::NonModal);
+    QCOMPARE(spy.count(), 3);
+}
+
 #include <tst_qwindow.moc>
 QTEST_MAIN(tst_QWindow)