diff options
author | Sergio Ahumada <sahumada@blackberry.com> | 2014-06-11 20:11:59 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-06-11 23:06:01 +0200 |
commit | 490e79e39ee90ad89bac164891177160d1926fdf (patch) | |
tree | f6e993c617f81ccd75563e1ceeef5ee5efd1b818 /tests/auto/widgets/kernel/qwidget | |
parent | a6d7e09e89a73b3706aabbf2d08586f238348c7c (diff) | |
parent | 7ffbfed7c791b1c8e514b5c9d24e8b80de3f21c2 (diff) |
Merge "Merge remote-tracking branch 'origin/stable' into 5.3" into refs/staging/5.3
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget')
-rw-r--r-- | tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 57 |
1 files changed, 45 insertions, 12 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index eac8ab2236..41e98e7a2c 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -262,6 +262,7 @@ private slots: void optimizedResizeMove(); void optimizedResize_topLevel(); void resizeEvent(); + void moveEvent(); void task110173(); void testDeletionInEventHandlers(); @@ -2114,41 +2115,53 @@ void tst_QWidget::showFullScreen() class ResizeWidget : public QWidget { public: - ResizeWidget(QWidget *p = 0) : QWidget(p) + ResizeWidget(QWidget *p = 0) + : QWidget(p) + , m_spontaneousResizeEventCount(0) + , m_synthesizedResizeEventCount(0) + , m_spontaneousMoveEventCount(0) + , m_synthesizedMoveEventCount(0) { setObjectName(QLatin1String("ResizeWidget")); setWindowTitle(objectName()); - m_resizeEventCount = 0; } protected: void resizeEvent(QResizeEvent *e){ QCOMPARE(size(), e->size()); - ++m_resizeEventCount; + (e->spontaneous() ? m_spontaneousResizeEventCount : m_synthesizedResizeEventCount)++; + } + void moveEvent(QMoveEvent *e) + { + (e->spontaneous() ? m_spontaneousMoveEventCount : m_synthesizedMoveEventCount)++; } public: - int m_resizeEventCount; + int m_spontaneousResizeEventCount; + int m_synthesizedResizeEventCount; + int m_spontaneousMoveEventCount; + int m_synthesizedMoveEventCount; }; void tst_QWidget::resizeEvent() { - QSKIP("QTBUG-30744"); - { QWidget wParent; wParent.resize(200, 200); ResizeWidget wChild(&wParent); wParent.show(); QTest::qWaitForWindowExposed(&wParent); - QCOMPARE (wChild.m_resizeEventCount, 1); // initial resize event before paint + QCOMPARE (wChild.m_synthesizedResizeEventCount, 1); // initial resize event before paint + QCOMPARE (wChild.m_spontaneousResizeEventCount, 0); wParent.hide(); QSize safeSize(640,480); if (wChild.size() == safeSize) safeSize.setWidth(639); wChild.resize(safeSize); - QCOMPARE (wChild.m_resizeEventCount, 1); + QCOMPARE (wChild.m_synthesizedResizeEventCount, 1); + QCOMPARE (wChild.m_spontaneousResizeEventCount, 0); wParent.show(); - QCOMPARE (wChild.m_resizeEventCount, 2); + QCOMPARE (wChild.m_synthesizedResizeEventCount, 2); + QCOMPARE (wChild.m_spontaneousResizeEventCount, 0); } { @@ -2156,19 +2169,39 @@ void tst_QWidget::resizeEvent() wTopLevel.resize(200, 200); wTopLevel.show(); QTest::qWaitForWindowExposed(&wTopLevel); - QCOMPARE (wTopLevel.m_resizeEventCount, 1); // initial resize event before paint for toplevels + const int synthesizedResizeEventCountAfterShow = wTopLevel.m_synthesizedResizeEventCount; + QCOMPARE (synthesizedResizeEventCountAfterShow, 1); // initial resize event before paint for toplevels + QCOMPARE (wTopLevel.m_spontaneousResizeEventCount, 0); wTopLevel.hide(); QSize safeSize(640,480); if (wTopLevel.size() == safeSize) safeSize.setWidth(639); wTopLevel.resize(safeSize); - QCOMPARE (wTopLevel.m_resizeEventCount, 1); + QCOMPARE (wTopLevel.m_synthesizedResizeEventCount, synthesizedResizeEventCountAfterShow); + QCOMPARE (wTopLevel.m_spontaneousResizeEventCount, 0); wTopLevel.show(); QTest::qWaitForWindowExposed(&wTopLevel); - QCOMPARE (wTopLevel.m_resizeEventCount, 2); +#ifdef Q_OS_OSX + QEXPECT_FAIL("", "QTBUG-30744", Abort); +#endif + QCOMPARE (wTopLevel.m_synthesizedResizeEventCount, synthesizedResizeEventCountAfterShow + 1); + QCOMPARE (wTopLevel.m_spontaneousResizeEventCount, 0); } } +void tst_QWidget::moveEvent() +{ + ResizeWidget wTopLevel; + wTopLevel.resize(200, 200); + centerOnScreen(&wTopLevel); + wTopLevel.show(); + QTest::qWaitForWindowExposed(&wTopLevel); + const int synthesizedMoveEventCountAfterShow = wTopLevel.m_synthesizedMoveEventCount; + wTopLevel.move(wTopLevel.pos() + QPoint(20, 20)); + QTRY_COMPARE (wTopLevel.m_synthesizedMoveEventCount, synthesizedMoveEventCountAfterShow + 1); + QCOMPARE (wTopLevel.m_spontaneousMoveEventCount, 0); +} + void tst_QWidget::showMinimized() { QWidget plain; |