~gabriel1984sibiu/minitube/qt5.6

« back to all changes in this revision

Viewing changes to tests/auto/widgets/graphicsview/qgraphicsitemanimation/tst_qgraphicsitemanimation.cpp

  • Committer: Grevutiu Gabriel
  • Date: 2017-06-13 08:43:17 UTC
  • Revision ID: gabriel1984sibiu@gmail.com-20170613084317-ek0zqe0u9g3ocvi8
OriginalĀ upstreamĀ code

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 2016 The Qt Company Ltd.
 
4
** Contact: https://www.qt.io/licensing/
 
5
**
 
6
** This file is part of the test suite of the Qt Toolkit.
 
7
**
 
8
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
 
9
** Commercial License Usage
 
10
** Licensees holding valid commercial Qt licenses may use this file in
 
11
** accordance with the commercial license agreement provided with the
 
12
** Software or, alternatively, in accordance with the terms contained in
 
13
** a written agreement between you and The Qt Company. For licensing terms
 
14
** and conditions see https://www.qt.io/terms-conditions. For further
 
15
** information use the contact form at https://www.qt.io/contact-us.
 
16
**
 
17
** GNU General Public License Usage
 
18
** Alternatively, this file may be used under the terms of the GNU
 
19
** General Public License version 3 as published by the Free Software
 
20
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
 
21
** included in the packaging of this file. Please review the following
 
22
** information to ensure the GNU General Public License requirements will
 
23
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
 
24
**
 
25
** $QT_END_LICENSE$
 
26
**
 
27
****************************************************************************/
 
28
 
 
29
 
 
30
#include <QtTest/QtTest>
 
31
 
 
32
#include <qgraphicsitemanimation.h>
 
33
#include <QtCore/qtimeline.h>
 
34
#include <QtGui/qmatrix.h>
 
35
 
 
36
class tst_QGraphicsItemAnimation : public QObject
 
37
{
 
38
    Q_OBJECT
 
39
 
 
40
private slots:
 
41
    void construction();
 
42
    void linearMove();
 
43
    void linearRotation();
 
44
    void checkReturnedLists();
 
45
    void overwriteValueForStep();
 
46
    void setTimeLine();
 
47
};
 
48
 
 
49
void tst_QGraphicsItemAnimation::construction()
 
50
{
 
51
    QGraphicsItemAnimation animation;
 
52
    QVERIFY(!animation.item());
 
53
    QVERIFY(!animation.timeLine());
 
54
    QCOMPARE(animation.posAt(0), QPointF());
 
55
    QCOMPARE(animation.posAt(0.5), QPointF());
 
56
    QCOMPARE(animation.posAt(1), QPointF());
 
57
    QCOMPARE(animation.matrixAt(0), QMatrix());
 
58
    QCOMPARE(animation.matrixAt(0.5), QMatrix());
 
59
    QCOMPARE(animation.matrixAt(1), QMatrix());
 
60
    QCOMPARE(animation.rotationAt(0), qreal(0.0));
 
61
    QCOMPARE(animation.rotationAt(0.5), qreal(0.0));
 
62
    QCOMPARE(animation.rotationAt(1), qreal(0.0));
 
63
    QCOMPARE(animation.xTranslationAt(0), qreal(0.0));
 
64
    QCOMPARE(animation.xTranslationAt(0.5), qreal(0.0));
 
65
    QCOMPARE(animation.xTranslationAt(1), qreal(0.0));
 
66
    QCOMPARE(animation.yTranslationAt(0), qreal(0.0));
 
67
    QCOMPARE(animation.yTranslationAt(0.5), qreal(0.0));
 
68
    QCOMPARE(animation.yTranslationAt(1), qreal(0.0));
 
69
    QCOMPARE(animation.verticalScaleAt(0), qreal(1.0));
 
70
    QCOMPARE(animation.horizontalScaleAt(0), qreal(1.0));
 
71
    QCOMPARE(animation.verticalShearAt(0), qreal(0.0));
 
72
    QCOMPARE(animation.horizontalShearAt(0), qreal(0.0));
 
73
    animation.clear(); // don't crash
 
74
}
 
75
 
 
76
void tst_QGraphicsItemAnimation::linearMove()
 
77
{
 
78
    QGraphicsItemAnimation animation;
 
79
 
 
80
    for (int i = 0; i <= 10; ++i) {
 
81
        QCOMPARE(animation.posAt(i / 10.0).x(), qreal(0));
 
82
        QCOMPARE(animation.posAt(i / 10.0).y(), qreal(0));
 
83
    }
 
84
 
 
85
    animation.setPosAt(1, QPointF(10, -10));
 
86
 
 
87
    for (int i = 0; i <= 10; ++i) {
 
88
        QCOMPARE(animation.posAt(i / 10.0).x(), qreal(i));
 
89
        QCOMPARE(animation.posAt(i / 10.0).y(), qreal(-i));
 
90
    }
 
91
 
 
92
    animation.setPosAt(2, QPointF(10, -10));
 
93
 
 
94
    QCOMPARE(animation.posAt(11).x(), qreal(10));
 
95
}
 
96
 
 
97
void tst_QGraphicsItemAnimation::linearRotation()
 
98
{
 
99
    QGraphicsItemAnimation animation;
 
100
    animation.setRotationAt(1, 1);
 
101
 
 
102
    for (int i = 0; i <= 10; ++i)
 
103
        QCOMPARE(animation.rotationAt(i / 10.0), qreal(i / 10.0));
 
104
}
 
105
 
 
106
void tst_QGraphicsItemAnimation::checkReturnedLists()
 
107
{
 
108
    QGraphicsItemAnimation animation;
 
109
 
 
110
    animation.setPosAt(1.0, QPointF(10, -10));
 
111
    animation.setPosAt(0.5, QPointF(5, -5));
 
112
 
 
113
    animation.setRotationAt(0.3, 2.3);
 
114
    animation.setTranslationAt(0.3, 15, 15);
 
115
    animation.setScaleAt(0.3, 2.5, 1.8);
 
116
    animation.setShearAt(0.3, 5, 5);
 
117
 
 
118
    QCOMPARE(animation.posList().at(0), (QPair<qreal, QPointF>(0.5, QPointF(5, -5))));
 
119
    QCOMPARE(animation.posList().at(1), (QPair<qreal, QPointF>(1.0, QPointF(10, -10))));
 
120
    QCOMPARE(animation.rotationList().at(0), (QPair<qreal, qreal>(0.3, 2.3)));
 
121
    QCOMPARE(animation.translationList().at(0), (QPair<qreal, QPointF>(0.3, QPointF(15, 15))));
 
122
    QCOMPARE(animation.scaleList().at(0), (QPair<qreal, QPointF>(0.3, QPointF(2.5, 1.8))));
 
123
    QCOMPARE(animation.shearList().at(0), (QPair<qreal, QPointF>(0.3, QPointF(5, 5))));
 
124
 
 
125
    QCOMPARE(animation.posList().size(), 2);
 
126
    QCOMPARE(animation.rotationList().size(), 1);
 
127
    QCOMPARE(animation.translationList().size(), 1);
 
128
    QCOMPARE(animation.scaleList().size(), 1);
 
129
    QCOMPARE(animation.shearList().size(), 1);
 
130
}
 
131
 
 
132
void tst_QGraphicsItemAnimation::overwriteValueForStep()
 
133
{
 
134
    QGraphicsItemAnimation animation;
 
135
 
 
136
    for (int i=0; i<3; i++){
 
137
        animation.setPosAt(0.3, QPointF(3, -3.1));
 
138
        animation.setRotationAt(0.3, 2.3);
 
139
        animation.setTranslationAt(0.3, 15, 15);
 
140
        animation.setScaleAt(0.3, 2.5, 1.8);
 
141
        animation.setShearAt(0.3, 5, 5);
 
142
 
 
143
        QCOMPARE(animation.posList().size(), 1);
 
144
        QCOMPARE(animation.rotationList().size(), 1);
 
145
        QCOMPARE(animation.translationList().size(), 1);
 
146
        QCOMPARE(animation.scaleList().size(), 1);
 
147
        QCOMPARE(animation.shearList().size(), 1);
 
148
    }
 
149
}
 
150
 
 
151
void tst_QGraphicsItemAnimation::setTimeLine()
 
152
{
 
153
    QGraphicsItemAnimation animation;
 
154
    QCOMPARE(animation.timeLine(), (QTimeLine *)0);
 
155
 
 
156
    QPointer<QTimeLine> line1 = new QTimeLine;
 
157
    animation.setTimeLine(line1);
 
158
    QCOMPARE(animation.timeLine(), (QTimeLine *)line1);
 
159
    animation.setTimeLine(line1);
 
160
    QVERIFY(line1);
 
161
    QCOMPARE(animation.timeLine(), (QTimeLine *)line1);
 
162
 
 
163
    animation.setTimeLine(0);
 
164
    QCOMPARE(animation.timeLine(), (QTimeLine *)0);
 
165
    QVERIFY(!line1);
 
166
 
 
167
    QTimeLine *line2 = new QTimeLine;
 
168
    animation.setTimeLine(line2);
 
169
    QCOMPARE(animation.timeLine(), (QTimeLine *)line2);
 
170
 
 
171
    delete line2;
 
172
    QCOMPARE(animation.timeLine(), (QTimeLine *)0);
 
173
}
 
174
 
 
175
QTEST_MAIN(tst_QGraphicsItemAnimation)
 
176
#include "tst_qgraphicsitemanimation.moc"