summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-04-05 14:22:45 +0200
committerLiang Qi <liang.qi@theqtcompany.com>2016-04-05 14:22:45 +0200
commitf2856875843efce9a00e90dad05bde358ab82197 (patch)
tree93346c38504ce04f0bf02dfe4a21299feb1be8ed /tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
parenta7b04275082d065f392e7f18c54ea9b41507ae40 (diff)
parenta2970719c26c946fd6fea7d902aad6706a4ca6ea (diff)
Merge remote-tracking branch 'origin/5.7' into dev
Conflicts: examples/corelib/ipc/ipc.pro src/plugins/platforms/xcb/qxcbbackingstore.cpp tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp Change-Id: Ia006e10ff1732fe78f90138c41f05b59b49486cf
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index ae48445363..1a9d7ec4d2 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -456,6 +456,8 @@ private slots:
void qmlSetParentHelper();
+ void testForOutsideWSRangeFlag();
+
private:
bool ensureScreenSize(int width, int height);
QWidget *testWidget;
@@ -10544,5 +10546,69 @@ void tst_QWidget::qmlSetParentHelper()
#endif
}
+void tst_QWidget::testForOutsideWSRangeFlag()
+{
+ // QTBUG-49445
+ {
+ QWidget widget;
+ widget.resize(0, 0);
+ widget.show();
+ QTest::qWait(100); // Wait for a while...
+ QVERIFY(!widget.windowHandle()->isExposed()); // The window should not be visible
+ QVERIFY(widget.isVisible()); // The widget should be in visible state
+ }
+ {
+ QWidget widget;
+
+ QWidget native(&widget);
+ native.setAttribute(Qt::WA_NativeWindow);
+ native.resize(0, 0);
+
+ widget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ QVERIFY(!native.windowHandle()->isExposed());
+ }
+ {
+ QWidget widget;
+ QWidget native(&widget);
+
+ widget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ QVERIFY(native.isVisible());
+
+ native.resize(0, 0);
+ native.setAttribute(Qt::WA_NativeWindow);
+ QTest::qWait(100); // Wait for a while...
+ QVERIFY(!native.windowHandle()->isExposed());
+ }
+
+ // QTBUG-48321
+ {
+ QWidget widget;
+
+ QWidget native(&widget);
+ native.setAttribute(Qt::WA_NativeWindow);
+
+ widget.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ QVERIFY(native.windowHandle()->isExposed());
+
+ native.resize(0, 0);
+ QTest::qWait(100); // Wait for a while...
+ QVERIFY(!native.windowHandle()->isExposed());
+ }
+
+ // QTBUG-51788
+ {
+ QWidget widget;
+ widget.setLayout(new QGridLayout);
+ widget.layout()->addWidget(new QLineEdit);
+ widget.resize(0, 0);
+ widget.show();
+ // The layout should change the size, so the widget must be visible!
+ QVERIFY(QTest::qWaitForWindowExposed(&widget));
+ }
+}
+
QTEST_MAIN(tst_QWidget)
#include "tst_qwidget.moc"