diff options
Diffstat (limited to 'tests/auto/studio3d/q3dssurfaceviewer/tst_q3dssurfaceviewer.cpp')
-rw-r--r-- | tests/auto/studio3d/q3dssurfaceviewer/tst_q3dssurfaceviewer.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/studio3d/q3dssurfaceviewer/tst_q3dssurfaceviewer.cpp b/tests/auto/studio3d/q3dssurfaceviewer/tst_q3dssurfaceviewer.cpp index 7197b49..6133577 100644 --- a/tests/auto/studio3d/q3dssurfaceviewer/tst_q3dssurfaceviewer.cpp +++ b/tests/auto/studio3d/q3dssurfaceviewer/tst_q3dssurfaceviewer.cpp @@ -61,6 +61,8 @@ private slots: void testBasics(); void testSourceChange_data(); void testSourceChange(); + void testActivateActions_data(); + void testActivateActions(); void testSizeChange_data(); void testSizeChange(); void testUpdateInterval_data(); @@ -368,6 +370,40 @@ void tst_Q3DSSurfaceViewer::testSourceChange() checkPixel(m_viewer, Qt::red); } +void tst_Q3DSSurfaceViewer::testActivateActions_data() +{ + testBasics_data(); +} + +void tst_Q3DSSurfaceViewer::testActivateActions() +{ + QFETCH(bool, isWindow); + + if (isWindow) + createWindowAndViewer(m_viewer, ACTIVATEACTIONS); + else + createOffscreenAndViewer(m_viewer, ACTIVATEACTIONS); + + QSignalSpy spy(m_viewer->presentation(), &Q3DSPresentation::customSignalEmitted); + + QVERIFY(spy.isValid()); + + // This presentations sends custom signals at 1000ms and at 3000ms. + // At same times it also changes scene color using activate actions. + QCOMPARE(spy.count(), 0); + QImage image1 = m_viewer->grab(); + + QTest::qWait(2000); + QCOMPARE(spy.count(), 1); + QImage image2 = m_viewer->grab(); + QVERIFY(image1 != image2); + + QTest::qWait(2000); + QCOMPARE(spy.count(), 2); + QImage image3 = m_viewer->grab(); + QVERIFY(image1 == image3); +} + void tst_Q3DSSurfaceViewer::testSizeChange_data() { testBasics_data(); |