tests/auto/qwidget/tst_qwidget.cpp
changeset 19 fcece45ef507
parent 18 2f34d5167611
child 30 5dc02b23752f
--- a/tests/auto/qwidget/tst_qwidget.cpp	Fri Apr 16 15:50:13 2010 +0300
+++ b/tests/auto/qwidget/tst_qwidget.cpp	Mon May 03 13:17:34 2010 +0300
@@ -402,6 +402,7 @@
     void scrollWithoutBackingStore();
 
     void taskQTBUG_7532_tabOrderWithFocusProxy();
+    void movedAndResizedAttributes();
 
 private:
     bool ensureScreenSize(int width, int height);
@@ -8829,7 +8830,15 @@
 #endif
     QTest::qWait(200);
 
-    QPixmap widgetSnapshot = QPixmap::grabWindow(label.winId());
+    QPixmap widgetSnapshot;
+
+#ifdef Q_WS_WIN
+    QWidget *desktopWidget = QApplication::desktop()->screen(0);
+    if (QSysInfo::windowsVersion() >= QSysInfo::WV_VISTA)
+        widgetSnapshot = QPixmap::grabWindow(desktopWidget->winId(), 0,0, label.width(), label.height());
+    else
+#endif
+        widgetSnapshot = QPixmap::grabWindow(label.winId());
     QImage actual = widgetSnapshot.toImage().convertToFormat(QImage::Format_RGB32);
     QImage expected = pm.toImage().convertToFormat(QImage::Format_RGB32);
     QCOMPARE(actual.size(),expected.size());
@@ -10032,5 +10041,61 @@
     // No Q_ASSERT, then it's allright.
 }
 
+void tst_QWidget::movedAndResizedAttributes()
+{
+#if defined (Q_OS_MAC) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
+    QEXPECT_FAIL("", "FixMe, QTBUG-8941 and QTBUG-8977", Abort);
+    QVERIFY(false);
+#else
+    QWidget w;
+    w.show();
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.setWindowState(Qt::WindowFullScreen);
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.setWindowState(Qt::WindowMaximized);
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.setWindowState(Qt::WindowMinimized);
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.showNormal();
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.showMaximized();
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.showFullScreen();
+
+    QVERIFY(!w.testAttribute(Qt::WA_Moved));
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.showNormal();
+    w.move(10,10);
+    QVERIFY(w.testAttribute(Qt::WA_Moved));
+#if defined(Q_OS_WIN)
+    QEXPECT_FAIL("", "FixMe, QTBUG-8911", Abort);
+#endif
+    QVERIFY(!w.testAttribute(Qt::WA_Resized));
+
+    w.resize(100, 100);
+    QVERIFY(w.testAttribute(Qt::WA_Moved));
+    QVERIFY(w.testAttribute(Qt::WA_Resized));
+#endif
+}
+
 QTEST_MAIN(tst_QWidget)
 #include "tst_qwidget.moc"