2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Ville Tiensuu - ville.tiensuu@ixonos.com
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.
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.
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,
22 #include <QtTest/QtTest>
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"
36 namespace TestOwnLocation // Test data for function is defined in namespace
38 const qreal xCoordinate = 65.525;
39 const qreal yCoordinate = 25.345;
40 const QPointF testLocationPoint(65.525, 25.345);
41 const QPointF defaultLocationPoint(DEFAULT_LONGITUDE,DEFAULT_LATITUDE);
42 const QPointF locationIconOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
43 const int itemIgnoresTransformationsFlagValue = 0x20;
46 using namespace TestOwnLocation;
50 * @brief Class that test OwnLocationItem
52 * @author Ville Tiensuu
54 class TestOwnLocationItem: public QObject
60 * @brief Test method for constructors.
61 * Creates instance of OwnLocationItem using three different constructors and tests
62 * that positions are set correctly.
63 * Tests that Z-values are set correctly.
64 * Tests that offses are set correctly.
65 * Tests that ItemIgnoresTransformations flag is set.
67 void testConstructors();
70 * @brief Creates instance of OwnLocationItem.
71 * Sets test position for location item in geographic coordinates.
72 * Reads position from location item in scene coordinates and
73 * verifies that it correctly formed.
75 void testSetAndGetPosition();
78 * @brief Creates instance of OwnLocationItem.
79 * Verifies that instance is visible.
80 * Hides instance and verifies that it is not visible.
82 void testHideAndShowPosition();
85 void TestOwnLocationItem::testConstructors()
88 OwnLocationItem ownLocationItem(defaultLocationPoint);
92 QCOMPARE (pixmap.isNull(), true);
94 pixmap = ownLocationItem.pixmap();
95 QCOMPARE (pixmap.isNull(), false);
99 QCOMPARE(ownLocationItem.position(),
100 MapEngine::convertLatLonToSceneCoordinate(defaultLocationPoint));
103 QCOMPARE(static_cast<int>(ownLocationItem.zValue()), OWN_LOCATION_ICON_Z_LEVEL);
107 // QCOMPARE(ownLocationItem.offset(),
108 // QPoint(-ownLocationItem.pixmap().width(), -ownLocationItem.pixmap().height()));
111 // Test ItemIgnoresTransformations Flags
112 QGraphicsItem::GraphicsItemFlags ownLocationItemFlags = ownLocationItem.flags();
113 QCOMPARE(ownLocationItemFlags, itemIgnoresTransformationsFlagValue);
117 void TestOwnLocationItem::testSetAndGetPosition()
119 OwnLocationItem ownLocation(defaultLocationPoint);
121 QCOMPARE(ownLocation.position(),
122 MapEngine::convertLatLonToSceneCoordinate(defaultLocationPoint));
124 ownLocation.setPosition(testLocationPoint);
126 QCOMPARE(ownLocation.position(),
127 MapEngine::convertLatLonToSceneCoordinate(testLocationPoint));
131 void TestOwnLocationItem::testHideAndShowPosition()
133 OwnLocationItem ownLocation(defaultLocationPoint);
134 QCOMPARE(ownLocation.isVisible(), true);
136 ownLocation.hideLocation();
137 QCOMPARE(ownLocation.isVisible(), false);
139 ownLocation.showLocation();
140 QCOMPARE(ownLocation.isVisible(), true);
143 QTEST_MAIN(TestOwnLocationItem)
144 #include "testownlocationitem.moc"