summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/animation/qpauseanimation/tst_qpauseanimation.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/auto/corelib/animation/qpauseanimation/tst_qpauseanimation.cpp b/tests/auto/corelib/animation/qpauseanimation/tst_qpauseanimation.cpp
index a10930b517..0688eafda8 100644
--- a/tests/auto/corelib/animation/qpauseanimation/tst_qpauseanimation.cpp
+++ b/tests/auto/corelib/animation/qpauseanimation/tst_qpauseanimation.cpp
@@ -105,6 +105,7 @@ private slots:
void sequentialGroupWithPause();
void multipleSequentialGroups();
void zeroDuration();
+ void bindings();
};
void tst_QPauseAnimation::initTestCase()
@@ -442,5 +443,45 @@ void tst_QPauseAnimation::zeroDuration()
QCOMPARE(animation.m_updateCurrentTimeCount, 1);
}
+void tst_QPauseAnimation::bindings()
+{
+ TestablePauseAnimation animation;
+
+ QProperty<int> duration;
+ animation.bindableDuration().setBinding(Qt::makePropertyBinding(duration));
+
+ duration = 42;
+ QCOMPARE(animation.duration(), 42);
+
+ // negative values must be ignored
+ QTest::ignoreMessage(QtWarningMsg,
+ "QPauseAnimation::setDuration: cannot set a negative duration");
+ duration = -1;
+ QCOMPARE(animation.duration(), 42);
+ QCOMPARE(duration, -1);
+
+ // Setting an invalid value shouldn't clear the binding
+ QTest::ignoreMessage(QtWarningMsg,
+ "QPauseAnimation::setDuration: cannot set a negative duration");
+ animation.setDuration(-1);
+ QVERIFY(animation.bindableDuration().hasBinding());
+ QCOMPARE(animation.duration(), 42);
+
+ QProperty<int> durationObserver;
+ durationObserver.setBinding(animation.bindableDuration().makeBinding());
+
+ animation.setDuration(46);
+ QCOMPARE(durationObserver, 46);
+
+ // Setting a valid value should clear the binding
+ QVERIFY(!animation.bindableDuration().hasBinding());
+
+ // Setting an invalid value also doesn't affect the observer
+ QTest::ignoreMessage(QtWarningMsg,
+ "QPauseAnimation::setDuration: cannot set a negative duration");
+ animation.setDuration(-1);
+ QCOMPARE(durationObserver, 46);
+}
+
QTEST_MAIN(tst_QPauseAnimation)
#include "tst_qpauseanimation.moc"