aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/animation/qanimationgroupjob/tst_qanimationgroupjob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/animation/qanimationgroupjob/tst_qanimationgroupjob.cpp')
-rw-r--r--tests/auto/declarative/animation/qanimationgroupjob/tst_qanimationgroupjob.cpp310
1 files changed, 0 insertions, 310 deletions
diff --git a/tests/auto/declarative/animation/qanimationgroupjob/tst_qanimationgroupjob.cpp b/tests/auto/declarative/animation/qanimationgroupjob/tst_qanimationgroupjob.cpp
deleted file mode 100644
index 2bb974af7d..0000000000
--- a/tests/auto/declarative/animation/qanimationgroupjob/tst_qanimationgroupjob.cpp
+++ /dev/null
@@ -1,310 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtTest/QtTest>
-
-#include <QtDeclarative/private/qanimationgroupjob_p.h>
-#include <QtDeclarative/private/qsequentialanimationgroupjob_p.h>
-#include <QtDeclarative/private/qparallelanimationgroupjob_p.h>
-
-Q_DECLARE_METATYPE(QAbstractAnimationJob::State)
-
-class tst_QAnimationGroupJob : public QObject
-{
- Q_OBJECT
-public Q_SLOTS:
- void initTestCase();
-
-private slots:
- void construction();
- void emptyGroup();
- void setCurrentTime();
- void addChildTwice();
-};
-
-void tst_QAnimationGroupJob::initTestCase()
-{
- qRegisterMetaType<QAbstractAnimationJob::State>("QAbstractAnimationJob::State");
-}
-
-void tst_QAnimationGroupJob::construction()
-{
- QSequentialAnimationGroupJob animationgroup;
-}
-
-class TestableGenericAnimation : public QAbstractAnimationJob
-{
-public:
- TestableGenericAnimation(int duration = 250) : m_duration(duration) {}
- int duration() const { return m_duration; }
-
-private:
- int m_duration;
-};
-
-class UncontrolledAnimation : public QObject, public QAbstractAnimationJob
-{
- Q_OBJECT
-public:
- UncontrolledAnimation()
- : id(0)
- {
- }
-
- int duration() const { return -1; /* not time driven */ }
-
-protected:
- void timerEvent(QTimerEvent *event)
- {
- if (event->timerId() == id)
- stop();
- }
-
- void updateRunning(bool running)
- {
- if (running) {
- id = startTimer(500);
- } else {
- killTimer(id);
- id = 0;
- }
- }
-
-private:
- int id;
-};
-
-class StateChangeListener: public QAnimationJobChangeListener
-{
-public:
- virtual void animationStateChanged(QAbstractAnimationJob *, QAbstractAnimationJob::State newState, QAbstractAnimationJob::State)
- {
- states << newState;
- }
-
- int count()
- {
- return states.count();
- }
-
- QList<QAbstractAnimationJob::State> states;
-};
-
-void tst_QAnimationGroupJob::emptyGroup()
-{
- QSequentialAnimationGroupJob group;
- StateChangeListener groupStateChangedSpy;
- group.addAnimationChangeListener(&groupStateChangedSpy, QAbstractAnimationJob::StateChange);
-
- QCOMPARE(group.state(), QAnimationGroupJob::Stopped);
- group.start();
-
- QCOMPARE(groupStateChangedSpy.count(), 2);
-
- QCOMPARE(groupStateChangedSpy.states.at(0), QAnimationGroupJob::Running);
- QCOMPARE(groupStateChangedSpy.states.at(1), QAnimationGroupJob::Stopped);
-
- QCOMPARE(group.state(), QAnimationGroupJob::Stopped);
-
- QTest::ignoreMessage(QtWarningMsg, "QAbstractAnimationJob::pause: Cannot pause a stopped animation");
- group.pause();
-
- QCOMPARE(groupStateChangedSpy.count(), 2);
- QCOMPARE(group.state(), QAnimationGroupJob::Stopped);
-
- group.start();
-
- QCOMPARE(groupStateChangedSpy.states.at(2),
- QAnimationGroupJob::Running);
- QCOMPARE(groupStateChangedSpy.states.at(3),
- QAnimationGroupJob::Stopped);
-
- QCOMPARE(group.state(), QAnimationGroupJob::Stopped);
-
- group.stop();
-
- QCOMPARE(groupStateChangedSpy.count(), 4);
- QCOMPARE(group.state(), QAnimationGroupJob::Stopped);
-}
-
-void tst_QAnimationGroupJob::setCurrentTime()
-{
- // was originally sequence operating on same object/property
- QSequentialAnimationGroupJob *sequence = new QSequentialAnimationGroupJob();
- QAbstractAnimationJob *a1_s_o1 = new TestableGenericAnimation;
- QAbstractAnimationJob *a2_s_o1 = new TestableGenericAnimation;
- QAbstractAnimationJob *a3_s_o1 = new TestableGenericAnimation;
- a2_s_o1->setLoopCount(3);
- sequence->appendAnimation(a1_s_o1);
- sequence->appendAnimation(a2_s_o1);
- sequence->appendAnimation(a3_s_o1);
-
- // was originally sequence operating on different object/properties
- QAnimationGroupJob *sequence2 = new QSequentialAnimationGroupJob();
- QAbstractAnimationJob *a1_s_o2 = new TestableGenericAnimation;
- QAbstractAnimationJob *a1_s_o3 = new TestableGenericAnimation;
- sequence2->appendAnimation(a1_s_o2);
- sequence2->appendAnimation(a1_s_o3);
-
- // was originally parallel operating on different object/properties
- QAnimationGroupJob *parallel = new QParallelAnimationGroupJob();
- QAbstractAnimationJob *a1_p_o1 = new TestableGenericAnimation;
- QAbstractAnimationJob *a1_p_o2 = new TestableGenericAnimation;
- QAbstractAnimationJob *a1_p_o3 = new TestableGenericAnimation;
- a1_p_o2->setLoopCount(3);
- parallel->appendAnimation(a1_p_o1);
- parallel->appendAnimation(a1_p_o2);
- parallel->appendAnimation(a1_p_o3);
-
- QAbstractAnimationJob *notTimeDriven = new UncontrolledAnimation;
- QCOMPARE(notTimeDriven->totalDuration(), -1);
-
- QAbstractAnimationJob *loopsForever = new TestableGenericAnimation;
- loopsForever->setLoopCount(-1);
- QCOMPARE(loopsForever->totalDuration(), -1);
-
- QParallelAnimationGroupJob group;
- group.appendAnimation(sequence);
- group.appendAnimation(sequence2);
- group.appendAnimation(parallel);
- group.appendAnimation(notTimeDriven);
- group.appendAnimation(loopsForever);
-
- // Current time = 1
- group.setCurrentTime(1);
- QCOMPARE(group.state(), QAnimationGroupJob::Stopped);
- QCOMPARE(sequence->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(a1_s_o1->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(sequence2->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(a1_s_o2->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(parallel->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(a1_p_o1->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(a1_p_o2->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(a1_p_o3->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(notTimeDriven->state(), QAnimationGroupJob::Stopped);
- QCOMPARE(loopsForever->state(), QAnimationGroupJob::Stopped);
-
- QCOMPARE(group.currentLoopTime(), 1);
- QCOMPARE(sequence->currentLoopTime(), 1);
- QCOMPARE(a1_s_o1->currentLoopTime(), 1);
- QCOMPARE(a2_s_o1->currentLoopTime(), 0);
- QCOMPARE(a3_s_o1->currentLoopTime(), 0);
- QCOMPARE(a1_s_o2->currentLoopTime(), 1);
- QCOMPARE(a1_s_o3->currentLoopTime(), 0);
- QCOMPARE(a1_p_o1->currentLoopTime(), 1);
- QCOMPARE(a1_p_o2->currentLoopTime(), 1);
- QCOMPARE(a1_p_o3->currentLoopTime(), 1);
- QCOMPARE(notTimeDriven->currentLoopTime(), 1);
- QCOMPARE(loopsForever->currentLoopTime(), 1);
-
- // Current time = 250
- group.setCurrentTime(250);
- QCOMPARE(group.currentLoopTime(), 250);
- QCOMPARE(sequence->currentLoopTime(), 250);
- QCOMPARE(a1_s_o1->currentLoopTime(), 250);
- QCOMPARE(a2_s_o1->currentLoopTime(), 0);
- QCOMPARE(a3_s_o1->currentLoopTime(), 0);
- QCOMPARE(a1_s_o2->currentLoopTime(), 250);
- QCOMPARE(a1_s_o3->currentLoopTime(), 0);
- QCOMPARE(a1_p_o1->currentLoopTime(), 250);
- QCOMPARE(a1_p_o2->currentLoopTime(), 0);
- QCOMPARE(a1_p_o2->currentLoop(), 1);
- QCOMPARE(a1_p_o3->currentLoopTime(), 250);
- QCOMPARE(notTimeDriven->currentLoopTime(), 250);
- QCOMPARE(loopsForever->currentLoopTime(), 0);
- QCOMPARE(loopsForever->currentLoop(), 1);
- QCOMPARE(sequence->currentAnimation(), a2_s_o1);
-
- // Current time = 251
- group.setCurrentTime(251);
- QCOMPARE(group.currentLoopTime(), 251);
- QCOMPARE(sequence->currentLoopTime(), 251);
- QCOMPARE(a1_s_o1->currentLoopTime(), 250);
- QCOMPARE(a2_s_o1->currentLoopTime(), 1);
- QCOMPARE(a2_s_o1->currentLoop(), 0);
- QCOMPARE(a3_s_o1->currentLoopTime(), 0);
- QCOMPARE(sequence2->currentLoopTime(), 251);
- QCOMPARE(a1_s_o2->currentLoopTime(), 250);
- QCOMPARE(a1_s_o3->currentLoopTime(), 1);
- QCOMPARE(a1_p_o1->currentLoopTime(), 250);
- QCOMPARE(a1_p_o2->currentLoopTime(), 1);
- QCOMPARE(a1_p_o2->currentLoop(), 1);
- QCOMPARE(a1_p_o3->currentLoopTime(), 250);
- QCOMPARE(notTimeDriven->currentLoopTime(), 251);
- QCOMPARE(loopsForever->currentLoopTime(), 1);
- QCOMPARE(sequence->currentAnimation(), a2_s_o1);
-}
-
-void tst_QAnimationGroupJob::addChildTwice()
-{
- QAbstractAnimationJob *subGroup;
- QAbstractAnimationJob *subGroup2;
- QAnimationGroupJob *parent = new QSequentialAnimationGroupJob();
-
- subGroup = new QAbstractAnimationJob;
- parent->appendAnimation(subGroup);
- parent->appendAnimation(subGroup);
- QVERIFY(parent->firstChild() && !parent->firstChild()->nextSibling());
-
- parent->clear();
-
- QVERIFY(!parent->firstChild());
-
- // adding the same item twice to a group will remove the item from its current position
- // and append it to the end
- subGroup = new QAbstractAnimationJob;
- parent->appendAnimation(subGroup);
- subGroup2 = new QAbstractAnimationJob;
- parent->appendAnimation(subGroup2);
-
- QCOMPARE(parent->firstChild(), subGroup);
- QCOMPARE(parent->lastChild(), subGroup2);
-
- parent->appendAnimation(subGroup);
-
- QCOMPARE(parent->firstChild(), subGroup2);
- QCOMPARE(parent->lastChild(), subGroup);
-
- delete parent;
-}
-
-QTEST_MAIN(tst_QAnimationGroupJob)
-#include "tst_qanimationgroupjob.moc"