summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp')
-rw-r--r--tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
index ade70b0eec..0c0c50ac64 100644
--- a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
+++ b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp
@@ -55,6 +55,7 @@ private slots:
void reparentToAlreadyCreated();
void reparentToNotYetCreated();
void asViewport();
+ void requestUpdate();
};
void tst_QOpenGLWidget::create()
@@ -305,6 +306,29 @@ void tst_QOpenGLWidget::asViewport()
QVERIFY(view->paintCount() == 0);
}
+class PaintCountWidget : public QOpenGLWidget
+{
+public:
+ PaintCountWidget() : m_count(0) { }
+ void reset() { m_count = 0; }
+ void paintGL() Q_DECL_OVERRIDE { ++m_count; }
+ int m_count;
+};
+
+void tst_QOpenGLWidget::requestUpdate()
+{
+ PaintCountWidget w;
+ w.resize(640, 480);
+ w.show();
+ QTest::qWaitForWindowExposed(&w);
+
+ w.reset();
+ QCOMPARE(w.m_count, 0);
+
+ w.windowHandle()->requestUpdate();
+ QTRY_VERIFY(w.m_count > 0);
+}
+
QTEST_MAIN(tst_QOpenGLWidget)
#include "tst_qopenglwidget.moc"