Fixed unit tests
[situare] / tests / map / ownlocationitem / testownlocationitem.cpp
1 /*
2     Situare - A location system for Facebook
3     Copyright (C) 2010  Ixonos Plc. Authors:
4
5         Ville Tiensuu - ville.tiensuu@ixonos.com
6
7     Situare is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License
9     version 2 as published by the Free Software Foundation.
10
11     Situare is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with Situare; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19     USA.
20 */
21
22 #include <QtTest/QtTest>
23 #include <QDebug>
24 #include <QList>
25
26 #include "map/ownlocationitem.h"
27 #include "map/mapscene.h"
28 #include "map/maptile.h"
29 #include "map/mapengine.h"
30 #include "map/mapcommon.h"
31 #include "map/mapview.h"
32 #include "map/baselocationitem.h"
33 #include "user/user.h"
34 #include "map/friendlocationitem.h"
35
36 namespace TestOwnLocation  //  Test data for function is defined in namespace
37 {   
38     const qreal xCoordinate = 65.525;
39     const qreal yCoordinate = 25.345;
40     const QPointF testLocationPoint(65.525, 25.345);
41     const QPointF defaultLocationPoint(UNDEFINED, UNDEFINED);
42     const QPointF locationIconOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
43     const int itemIgnoresTransformationsFlagValue = 0x20;    
44 }
45
46 using namespace TestOwnLocation;
47
48
49 /**
50 * @brief Class that test OwnLocationItem
51 *
52 * @author Ville Tiensuu
53 */
54 class TestOwnLocationItem: public QObject
55  {
56      Q_OBJECT
57  private slots:
58
59     /**
60     * @brief Test method for constructors.
61     *
62     * Tests that default position is set correctly.
63     * Tests that item has pixmap set.
64     * Tests that Z-value is set correctly.
65     * Tests that offset is set correctly.
66     * Tests that ItemIgnoresTransformations flag is set.
67     */
68      void testConstructors();
69  };
70
71  void TestOwnLocationItem::testConstructors()
72  {
73
74      OwnLocationItem ownLocationItem;
75
76      // Test Pixmap
77      QPixmap pixmap;
78      QCOMPARE (pixmap.isNull(), true);
79
80      pixmap = ownLocationItem.pixmap();
81      QCOMPARE (pixmap.isNull(), false);
82
83      // Test Position
84      QCOMPARE(ownLocationItem.pos(), defaultLocationPoint);
85
86      // Test Z-value
87      QCOMPARE(static_cast<int>(ownLocationItem.zValue()), OWN_LOCATION_ICON_Z_LEVEL);
88
89      // Test Offset
90      QCOMPARE(ownLocationItem.offset(),
91               QPointF(-ownLocationItem.pixmap().width()/2, -ownLocationItem.pixmap().height()/2));
92
93      // Test ItemIgnoresTransformations Flags
94      QGraphicsItem::GraphicsItemFlags ownLocationItemFlags = ownLocationItem.flags();
95      QCOMPARE(ownLocationItemFlags, itemIgnoresTransformationsFlagValue);
96  }
97
98  QTEST_MAIN(TestOwnLocationItem)
99  #include "testownlocationitem.moc"