From 519420641fabeeb7a372ed6157a7bc01f43b1b3b Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Mon, 14 Dec 2020 11:12:30 +0100 Subject: Port QPauseAnimation to the new property system Task-number: QTBUG-85520 Change-Id: I8c0ee86598f4c0f093f64b2891ee835a43964b84 Reviewed-by: Andreas Buhr Reviewed-by: Edward Welbourne --- .../qpauseanimation/tst_qpauseanimation.cpp | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'tests/auto/corelib') 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 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 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" -- cgit v1.2.3