summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-02-02 15:57:44 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-02-02 15:57:44 +0100
commitd3e6e732c70ebc2340d6376d727b3c623be23810 (patch)
tree18d469f02ac36edd04b87a9bfa4886ceef0490f0 /tests/auto/widgets
parentfdfd63053ae6b10af06553be3c1b15de274bebf7 (diff)
parentba8d3430029d8c4342e9a47c110ee8c9879818f4 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: config.tests/unix/compile.test src/plugins/platforms/cocoa/qcocoahelpers.mm src/tools/qlalr/cppgenerator.cpp Change-Id: I0103ca076a9aca7118b2fd99f0fdaf81055998c3
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp4
-rw-r--r--tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp18
-rw-r--r--tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp26
3 files changed, 44 insertions, 4 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 24f9471a92..afee548c9b 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -256,9 +256,7 @@ private slots:
#endif
void raise();
void lower();
-#ifndef QT_MAC_USE_COCOA
void stackUnder();
-#endif
void testContentsPropagation();
void saveRestoreGeometry();
void restoreVersion1Geometry_data();
@@ -315,9 +313,7 @@ private slots:
void moveChild();
void showAndMoveChild();
-#ifndef QT_MAC_USE_COCOA
void subtractOpaqueSiblings();
-#endif
#if defined (Q_OS_WIN) && !defined(Q_OS_WINCE) && !defined(Q_OS_WINRT)
void setGeometry_win();
diff --git a/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp b/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp
index 3178b31e06..406b21ccf6 100644
--- a/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp
+++ b/tests/auto/widgets/kernel/qwindowcontainer/tst_qwindowcontainer.cpp
@@ -76,6 +76,7 @@ private slots:
void testActivation();
void testAncestorChange();
void testDockWidget();
+ void testNativeContainerParent();
void cleanup();
private:
@@ -325,6 +326,23 @@ void tst_QWindowContainer::testDockWidget()
QTRY_COMPARE(window->parent(), mainWindow.window()->windowHandle());
}
+void tst_QWindowContainer::testNativeContainerParent()
+{
+ QWidget root;
+ root.setWindowTitle(QTest::currentTestFunction());
+ root.setGeometry(m_availableGeometry.x() + 50, m_availableGeometry.y() + 50, 200, 200);
+
+ Window *window = new Window();
+ QWidget *container = QWidget::createWindowContainer(window, &root);
+ container->setAttribute(Qt::WA_NativeWindow);
+ container->setGeometry(50, 50, 150, 150);
+
+ root.show();
+
+ QVERIFY(QTest::qWaitForWindowExposed(window));
+ QTRY_COMPARE(window->parent(), container->windowHandle());
+}
+
QTEST_MAIN(tst_QWindowContainer)
#include "tst_qwindowcontainer.moc"
diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
index baa1628714..cb55bd32b0 100644
--- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
+++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
@@ -70,6 +70,7 @@ private slots:
void titleBarDoubleClick();
void restoreStateOfFloating();
void restoreDockWidget();
+ void restoreStateWhileStillFloating();
// task specific tests:
void task165177_deleteFocusWidget();
void task169808_setFloating();
@@ -752,6 +753,31 @@ void tst_QDockWidget::restoreStateOfFloating()
QVERIFY(!dock->isFloating());
}
+void tst_QDockWidget::restoreStateWhileStillFloating()
+{
+ // When the dock widget is already floating then it takes a different code path
+ // so this test covers the case where the restoreState() is effectively just
+ // moving it back and resizing it
+ const QRect availGeom = QApplication::desktop()->availableGeometry();
+ const QPoint startingDockPos = availGeom.center();
+ QMainWindow mw;
+ QDockWidget *dock = createTestDock(mw);
+ mw.addDockWidget(Qt::TopDockWidgetArea, dock);
+ dock->setFloating(true);
+ dock->move(startingDockPos);
+ mw.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&mw));
+ QVERIFY(dock->isFloating());
+ QByteArray ba = mw.saveState();
+ const QPoint dockPos = dock->pos();
+ dock->move(availGeom.topLeft() + QPoint(10, 10));
+ dock->resize(dock->size() + QSize(10, 10));
+ QVERIFY(mw.restoreState(ba));
+ QVERIFY(dock->isFloating());
+ if (!QGuiApplication::platformName().compare("xcb", Qt::CaseInsensitive))
+ QTRY_COMPARE(dock->pos(), dockPos);
+}
+
void tst_QDockWidget::restoreDockWidget()
{
QByteArray geometry;