#include <QMouseEvent>
#include <QParallelAnimationGroup>
+#include "coordinates/scenecoordinate.h"
#include "mapcommon.h"
#include "mapscroller.h"
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += . \
- ../../../src/ \
- /usr/include/glib-2.0 /usr/lib/glib-2.0/include
+ ../../../src/
# Input
SOURCES += testfriendgroupitem.cpp \
../../../src/map/friendgroupitem.cpp \
../../../src/map/friendlocationitem.cpp \
- ../../../src/map/baselocationitem.cpp \
- ../../../src/map/mapengine.cpp \
- ../../../src/map/ownlocationitem.cpp \
- ../../../src/map/maptilerequest.cpp \
- ../../../src/map/maptile.cpp \
- ../../../src/map/mapscene.cpp \
- ../../../src/map/mapfetcher.cpp \
- ../../../src/map/frienditemshandler.cpp \
- ../../../src/user/user.cpp \
- ../../../src/map/gpslocationitem.cpp \
- ../../../src/network/networkaccessmanager.cpp \
- ../../../src/network/networkhandler.cpp \
- ../../../src/network/networkreply.cpp \
- ../../../src/map/mapscroller.cpp
+ ../../../src/map/baselocationitem.cpp
HEADERS += ../../../src/map/friendgroupitem.h \
../../../src/map/friendlocationitem.h \
- ../../../src/map/baselocationitem.h \
- ../../../src/map/mapengine.h \
- ../../../src/map/ownlocationitem.h \
- ../../../src/map/maptilerequest.h \
- ../../../src/map/maptile.h \
- ../../../src/map/mapscene.h \
- ../../../src/map/mapfetcher.h \
- ../../../src/map/mapcommon.h \
- ../../../src/map/frienditemshandler.h \
- ../../../src/user/user.h \
- ../../../src/map/gpslocationitem.h \
- ../../../src/network/networkaccessmanager.h \
- ../../../src/network/networkhandler.h \
- ../../../src/network/networkreply.h \
- ../../../src/map/mapscroller.h
+ ../../../src/map/baselocationitem.h
DEFINES += QT_NO_DEBUG_OUTPUT
RESOURCES += ../../../images.qrc
-
-maemo5 | simulator {
- INCLUDEPATH += /usr/include/glib-2.0 /usr/lib/glib-2.0/include
- SOURCES += ../../../src/network/networkhandlerprivate.cpp
- HEADERS += ../../../src/network/networkhandlerprivate.h
- QT += maemo5 dbus
- CONFIG += icd2
- message([QJson])
- message(Make sure you have QJson development headers installed)
- message(add: deb http://repository.maemo.org/extras-devel fremantle free non-free)
- message(to Scratchbox's sources.list in /etc/apt)
- message(run: apt-get update)
- message(install headers with: apt-get install libqjson-dev)
- message([QtMobility])
- message(Make sure you have QtMobility development headers installed)
- message(install headers with: apt-get install libqtm-dev)
-} else {
- SOURCES += ../../../src/network/networkhandlerprivatestub.cpp
- HEADERS += ../../../src/network/networkhandlerprivatestub.h
- message(QJson built in)
- message(Make sure you have QJson development headers installed)
- message(install headers with: sudo apt-get install libqjson-dev)
-}
*/
#include <QtTest/QtTest>
+#include <QGraphicsScene>
#include "map/mapcommon.h"
#include "map/friendgroupitem.h"
#include "map/friendlocationitem.h"
-#include "map/mapscene.h"
class TestFriendGroupItem: public QObject
{
FriendGroupItem *group;
QPixmap *pixmap;
QUrl url;
- MapScene scene;
+ QGraphicsScene scene;
};
void TestFriendGroupItem::initTestCase()
CONFIG += qtestlib
QT += network
TEMPLATE = app
-TARGET =
+TARGET =
DEPENDPATH += .
INCLUDEPATH += . \
../../../src/
# Input
-SOURCES += testgpslocationitem.cpp \
+SOURCES += testgpslocationitem.cpp \
../../../src/map/gpslocationitem.cpp \
- ../../../src/network/networkhandler.cpp
-HEADERS += \
+ ../../../src/coordinates/scenecoordinate.cpp \
+ ../../../src/coordinates/geocoordinate.cpp
+HEADERS += \
../../../src/map/gpslocationitem.h \
- ../../../src/network/networkhandler.h
+ ../../../src/coordinates/scenecoordinate.h \
+ ../../../src/coordinates/geocoordinate.h
DEFINES += QT_NO_DEBUG_OUTPUT
RESOURCES += ../../../images.qrc
-
-maemo5 | simulator {
- INCLUDEPATH += /usr/include/glib-2.0 /usr/lib/glib-2.0/include
- SOURCES += ../../../src/network/networkhandlerprivate.cpp
- HEADERS += ../../../src/network/networkhandlerprivate.h
- QT += maemo5 dbus
- CONFIG += icd2
- message([QJson])
- message(Make sure you have QJson development headers installed)
- message(add: deb http://repository.maemo.org/extras-devel fremantle free non-free)
- message(to Scratchbox's sources.list in /etc/apt)
- message(run: apt-get update)
- message(install headers with: apt-get install libqjson-dev)
- message([QtMobility])
- message(Make sure you have QtMobility development headers installed)
- message(install headers with: apt-get install libqtm-dev)
-} else {
- SOURCES += ../../../src/network/networkhandlerprivatestub.cpp
- HEADERS += ../../../src/network/networkhandlerprivatestub.h
- message(QJson built in)
- message(Make sure you have QJson development headers installed)
- message(install headers with: sudo apt-get install libqjson-dev)
-}
#include <QtTest/QtTest>
+#include "coordinates/scenecoordinate.h"
#include "map/mapcommon.h"
+
#include "map/gpslocationitem.h"
class TestGPSLocationItem: public QObject
{
// create item and update it's position so pixmap is set
GPSLocationItem item;
- item.updatePosition(QPoint(100, 100), 10);
+ item.updatePosition(SceneCoordinate(100, 100), 10);
// item should be visible and pixmap set
QCOMPARE(item.isVisible(), true);
QCOMPARE(item.isVisible(), true);
QCOMPARE(item.pixmap().isNull(), true);
- item.updatePosition(QPoint(500, 500), 10);
+ item.updatePosition(SceneCoordinate(500, 500), 10);
// pixmam should be set after first position update
QCOMPARE(item.pixmap().isNull(), false);
void TestGPSLocationItem::position()
{
GPSLocationItem item;
- item.updatePosition(QPoint(123, 321), 10);
+ item.updatePosition(SceneCoordinate(123, 321), 10);
QCOMPARE(item.pos(), QPointF(123, 321));
}
../../../src/network/networkaccessmanager.cpp \
../../../src/network/networkhandler.cpp \
../../../src/network/networkreply.cpp \
- ../../../src/map/mapscroller.cpp
+ ../../../src/map/mapscroller.cpp \
+ ../../../src/coordinates/scenecoordinate.cpp \
+ ../../../src/coordinates/geocoordinate.cpp
HEADERS += ../../../src/map/mapengine.h \
../../../src/map/mapscene.h \
../../../src/map/maptile.h \
../../../src/network/networkaccessmanager.h \
../../../src/network/networkhandler.h \
../../../src/network/networkreply.h \
- ../../../src/map/mapscroller.h
+ ../../../src/map/mapscroller.h \
+ ../../../src/coordinates/scenecoordinate.h \
+ ../../../src/coordinates/geocoordinate.h
DEFINES += QT_NO_DEBUG_OUTPUT
maemo5 | simulator {
#include <QtTest/QtTest>
#include "common.h"
+#include "coordinates/scenecoordinate.h"
#include "map/mapcommon.h"
#include "map/mapengine.h"
const int DEFAULT_TEST_ZOOMLEVEL = 5;
-const QPoint DEFAULT_TEST_SCENECOORDINATE = QPoint(12345,54321);
-const QPoint NEW_TEST_SCENECOORDINATE = QPoint(50000,40000);
+const SceneCoordinate DEFAULT_TEST_SCENECOORDINATE = SceneCoordinate(12345, 54321);
+const SceneCoordinate NEW_TEST_SCENECOORDINATE = SceneCoordinate(50000, 40000);
class TestMapEngine: public QObject
{
private slots:
void convertTileNumberToSceneCoordinate();
- void convertLatLonToSceneCoordinate_data();
- void convertLatLonToSceneCoordinate();
+ void convertTileNumberToSceneCoordinate_data();
void setLocationNewTilesCount();
void setLocationRemovedTilesCount();
void zoomOutRemovedTilesCount();
void usingLastLocation();
signals:
- void setCenterPosition(QPoint); // a way to call a private slot
+ void setCenterPosition(SceneCoordinate); // a way to call a private slot
};
/**
*/
void TestMapEngine::convertTileNumberToSceneCoordinate()
{
- QCOMPARE(MapEngine::convertTileNumberToSceneCoordinate(18, QPoint(0,0)), QPoint(0,0));
- QCOMPARE(MapEngine::convertTileNumberToSceneCoordinate(18, QPoint(1,2)), QPoint(256,512));
- QCOMPARE(MapEngine::convertTileNumberToSceneCoordinate(16, QPoint(3,4)), QPoint(3072,4096));
-}
-
-/**
- * @brief Test data for converting latitude and longitude coordinates to scene coordinates
- */
-void TestMapEngine::convertLatLonToSceneCoordinate_data()
-{
- QTest::addColumn<QPointF>("coordinate");
- QTest::addColumn<QPoint>("result");
+ QFETCH(int, zoomLevel);
+ QFETCH(QPoint, tileNumber);
+ QFETCH(SceneCoordinate, expected);
- QTest::newRow("top left") << QPointF(MIN_LONGITUDE, OSM_MAX_LATITUDE) << QPoint(0, 0);
-
- int x = (1 << OSM_MAX_ZOOM_LEVEL) * OSM_TILE_SIZE_X;
- int y = (1 << OSM_MAX_ZOOM_LEVEL) * OSM_TILE_SIZE_Y;
- QTest::newRow("bottom right") << QPointF(MAX_LONGITUDE, OSM_MIN_LATITUDE) << QPoint(x, y);
+ SceneCoordinate result = MapEngine::convertTileNumberToSceneCoordinate(zoomLevel, tileNumber);
+ QCOMPARE(result.x(), expected.x());
+ QCOMPARE(result.y(), expected.y());
}
-/**
-* @brief Test converting real world cordinates to scene coordinates
-* @todo Implement
-*/
-void TestMapEngine::convertLatLonToSceneCoordinate()
+void TestMapEngine::convertTileNumberToSceneCoordinate_data()
{
- QFETCH(QPointF, coordinate);
- QFETCH(QPoint, result);
+ QTest::addColumn<int>("zoomLevel");
+ QTest::addColumn<QPoint>("tileNumber");
+ QTest::addColumn<SceneCoordinate>("expected");
- QCOMPARE(MapEngine::convertLatLonToSceneCoordinate(coordinate), result);
+ QTest::newRow("data1") << 18 << QPoint(0, 0) << SceneCoordinate(0, 0);
+ QTest::newRow("data2") << 18 << QPoint(1, 2) << SceneCoordinate(256, 512);
+ QTest::newRow("data3") << 16 << QPoint(3, 4) << SceneCoordinate(3072, 4096);
}
void TestMapEngine::setLocationNewTilesCount()
{
MapEngine engine;
engine.viewResized(QSize(800, 480));
- connect(this, SIGNAL(setCenterPosition(QPoint)), &engine, SLOT(setCenterPosition(QPoint)));
+ connect(this, SIGNAL(setCenterPosition(SceneCoordinate)),
+ &engine, SLOT(setCenterPosition(SceneCoordinate)));
QSignalSpy fetchImageSpy(&engine, SIGNAL(fetchImage(int,int,int)));
QTest::qWait(1000);
fetchImageSpy.clear();
// first test, scene is empty so all tiles should be downloaded
- emit setCenterPosition(QPoint(1220*16, 1220*16));
+ emit setCenterPosition(SceneCoordinate(1220*16, 1220*16));
QTest::qWait(1000);
QCOMPARE(fetchImageSpy.count(), 5*4);
fetchImageSpy.clear();
// move one tile to east and south, only most right one column and most bottom one row tiles
// should be downloaded
- emit setCenterPosition(QPoint((1220+OSM_TILE_SIZE_X)*16, (1220+OSM_TILE_SIZE_Y)*16));
+ emit setCenterPosition(SceneCoordinate((1220+OSM_TILE_SIZE_X)*16, (1220+OSM_TILE_SIZE_Y)*16));
QTest::qWait(1000);
QCOMPARE(fetchImageSpy.count(), 4 + 4);
fetchImageSpy.clear();
{
MapEngine engine;
engine.viewResized(QSize(800, 480));
- connect(this, SIGNAL(setCenterPosition(QPoint)), &engine, SLOT(setCenterPosition(QPoint)));
+ connect(this, SIGNAL(setCenterPosition(SceneCoordinate)),
+ &engine, SLOT(setCenterPosition(SceneCoordinate)));
const int maxItemsCount = 40;
- emit setCenterPosition(QPoint(1220*16, 1220*16));
+ emit setCenterPosition(SceneCoordinate(1220*16, 1220*16));
QTest::qWait(1000);
- emit setCenterPosition(QPoint(2220*16, 2220*16));
+ emit setCenterPosition(SceneCoordinate(2220*16, 2220*16));
QTest::qWait(1000);
QVERIFY(engine.scene()->items().count() <= maxItemsCount);
- emit setCenterPosition(QPoint(520*16, 2220*16));
+ emit setCenterPosition(SceneCoordinate(520*16, 2220*16));
QTest::qWait(1000);
- emit setCenterPosition(QPoint(2220*16, 520*16));
+ emit setCenterPosition(SceneCoordinate(2220*16, 520*16));
QTest::qWait(1000);
QVERIFY(engine.scene()->items().count() <= maxItemsCount);
{
MapEngine engine;
engine.viewResized(QSize(800, 480));
- connect(this, SIGNAL(setCenterPosition(QPoint)), &engine, SLOT(setCenterPosition(QPoint)));
+ connect(this, SIGNAL(setCenterPosition(SceneCoordinate)),
+ &engine, SLOT(setCenterPosition(SceneCoordinate)));
const int maxItemsCount = 40;
- emit setCenterPosition(QPoint(1220*16, 1220*16));
+ emit setCenterPosition(SceneCoordinate(1220*16, 1220*16));
QTest::qWait(1000);
QTest::qWait(1000);
QVERIFY(engine.scene()->items().count() <= maxItemsCount);
- emit setCenterPosition(QPoint(520*16, 2220*16));
+ emit setCenterPosition(SceneCoordinate(520*16, 2220*16));
QTest::qWait(1000);
- emit setCenterPosition(QPoint(2220*16, 520*16));
+ emit setCenterPosition(SceneCoordinate(2220*16, 520*16));
QTest::qWait(1000);
QVERIFY(engine.scene()->items().count() <= maxItemsCount);
{
MapEngine engine;
engine.viewResized(QSize(800, 480));
- connect(this, SIGNAL(setCenterPosition(QPoint)), &engine, SLOT(setCenterPosition(QPoint)));
+ connect(this, SIGNAL(setCenterPosition(SceneCoordinate)),
+ &engine, SLOT(setCenterPosition(SceneCoordinate)));
const int maxItemsCount = 40;
- emit setCenterPosition(QPoint(1220*16, 1220.23*16));
+ emit setCenterPosition(SceneCoordinate(1220*16, 1220.23*16));
QTest::qWait(1000);
- emit setCenterPosition(QPoint(2220*16, 2220.23*16));
+ emit setCenterPosition(SceneCoordinate(2220*16, 2220.23*16));
QTest::qWait(1000);
QVERIFY(engine.scene()->items().count() <= maxItemsCount);
- emit setCenterPosition(QPoint(520*16, 2220*16));
+ emit setCenterPosition(SceneCoordinate(520*16, 2220*16));
QTest::qWait(1000);
- emit setCenterPosition(QPoint(2220*16, 520*16));
+ emit setCenterPosition(SceneCoordinate(2220*16, 520*16));
QTest::qWait(1000);
QVERIFY(engine.scene()->items().count() <= maxItemsCount);
// Create mapengine and start monitoring zoomLevelChanged-signal
MapEngine *mapengine = new MapEngine;
QSignalSpy mapEngineSpy(mapengine, SIGNAL(zoomLevelChanged(int)));
- connect(this, SIGNAL(setCenterPosition(QPoint)), mapengine, SLOT(setCenterPosition(QPoint)));
+ connect(this, SIGNAL(setCenterPosition(SceneCoordinate)),
+ mapengine, SLOT(setCenterPosition(SceneCoordinate)));
QVERIFY (mapEngineSpy.isValid());
QCOMPARE (mapEngineSpy.count(), 0);
QSettings settings(DIRECTORY_NAME, FILE_NAME);
settings.setValue(MAP_LAST_ZOOMLEVEL, DEFAULT_TEST_ZOOMLEVEL);
settings.setValue(MAP_LAST_POSITION,
- mapengine->convertSceneCoordinateToLatLon(DEFAULT_TEST_ZOOMLEVEL,
- DEFAULT_TEST_SCENECOORDINATE));
+ QVariant::fromValue(GeoCoordinate(DEFAULT_TEST_SCENECOORDINATE)));
// Call mapengines init() and verify that signal will be send
mapengine->init();
delete mapengine;
// Read settings and verify that zoomlevel is correct
- MapEngine testengine;// = new mapEngine;
- QPointF LatLonLocation =
- settings.value(MAP_LAST_POSITION, ERROR_VALUE_NOT_FOUND_ON_SETTINGS).toPointF();
- QCOMPARE(LatLonLocation, testengine.convertSceneCoordinateToLatLon(DEFAULT_TEST_ZOOMLEVEL,
- NEW_TEST_SCENECOORDINATE));
+ GeoCoordinate location =
+ settings.value(MAP_LAST_POSITION, ERROR_VALUE_NOT_FOUND_ON_SETTINGS).value<GeoCoordinate>();
+ QCOMPARE(location.latitude(), GeoCoordinate(NEW_TEST_SCENECOORDINATE).latitude());
+ QCOMPARE(location.longitude(), GeoCoordinate(NEW_TEST_SCENECOORDINATE).longitude());
}
QTEST_MAIN(TestMapEngine)
../../../src/network/networkaccessmanager.cpp \
../../../src/network/networkhandler.cpp \
../../../src/network/networkreply.cpp \
- ../../../src/map/mapscroller.cpp
+ ../../../src/map/mapscroller.cpp \
+ ../../../src/coordinates/scenecoordinate.cpp \
+ ../../../src/coordinates/geocoordinate.cpp
HEADERS += ../../../src/map/mapscene.h \
../../../src/map/maptile.h \
../../../src/map/mapengine.h \
../../../src/network/networkaccessmanager.h \
../../../src/network/networkhandler.h \
../../../src/network/networkreply.h \
- ../../../src/map/mapscroller.h
+ ../../../src/map/mapscroller.h \
+ ../../../src/coordinates/scenecoordinate.h \
+ ../../../src/coordinates/geocoordinate.h
DEFINES += QT_NO_DEBUG_OUTPUT
maemo5 | simulator {
../../../src/network/networkaccessmanager.cpp \
../../../src/network/networkhandler.cpp \
../../../src/network/networkreply.cpp \
- ../../../src/map/mapscroller.cpp
+ ../../../src/map/mapscroller.cpp \
+ ../../../src/coordinates/scenecoordinate.cpp \
+ ../../../src/coordinates/geocoordinate.cpp
HEADERS += ../../../src/map/maptile.h \
../../../src/map/mapfetcher.h \
../../../src/map/mapengine.h \
../../../src/network/networkaccessmanager.h \
../../../src/network/networkhandler.h \
../../../src/network/networkreply.h \
- ../../../src/map/mapscroller.h
+ ../../../src/map/mapscroller.h \
+ ../../../src/coordinates/scenecoordinate.h \
+ ../../../src/coordinates/geocoordinate.h
DEFINES += QT_NO_DEBUG_OUTPUT
maemo5 | simulator {
# Input
SOURCES += testmapview.cpp \
../../../src/map/mapview.cpp \
- ../../../src/map/mapscroller.cpp
+ ../../../src/map/mapscroller.cpp \
+ ../../../src/coordinates/scenecoordinate.cpp \
+ ../../../src/coordinates/geocoordinate.cpp
HEADERS += ../../../src/map/mapview.h \
- ../../../src/map/mapscroller.h
+ ../../../src/map/mapscroller.h \
+ ../../../src/coordinates/scenecoordinate.h \
+ ../../../src/coordinates/geocoordinate.h
DEFINES += QT_NO_DEBUG_OUTPUT
+QT += testlib
CONFIG += qtestlib
DEFINES += QT_NO_DEBUG_OUTPUT
INCLUDEPATH += . \
- ../../../src/
+ ../../../src/
HEADERS += ../../../src/ui/friendlistview.h \
../../../src/ui/friendlistitem.h \
../../../src/user/user.h \
#include <QtTest>
#include <QtGui>
-#include "../../../src/ui/friendlistitem.h"
-#include "../../../src/ui/friendlistview.h"
-#include "../../../src/user/user.h"
-#include "../../../src/ui/avatarimage.h"
+#include "src/coordinates/geocoordinate.h"
+#include "src/ui/friendlistitem.h"
+#include "src/ui/friendlistview.h"
+#include "src/user/user.h"
+#include "src/ui/avatarimage.h"
class TestFriendList: public QObject
{
FriendListView *view = new FriendListView();
- User *user1 = new User(QString("Address"), QPointF(12.22, 23.33), QString("Name"),
+ User *user1 = new User(QString("Address"), GeoCoordinate(12.22, 23.33), QString("Name"),
QString("Note"), QUrl("http://image.url"), QString("Timestamp"), true,
QString("UserID1"), QString("Units"), 44.12);
user1->setProfileImage(QPixmap("situare_user.gif"));
- User *user2 = new User(QString("Address"), QPointF(12.22, 23.33), QString("Name"),
+
+ User *user2 = new User(QString("Address"), GeoCoordinate(12.22, 23.33), QString("Name"),
QString("Note"), QUrl("http://image.url"), QString("Timestamp"), true,
QString("UserID2"), QString("Units"), 44.12);
user2->setProfileImage(QPixmap("situare_user.gif"));
TestUser::TestUser()
{
const QString address = "Kuja 3 A, 90560 Oulu, Finland";
- const QPointF coordinates(65.3, 25.5);
+ const GeoCoordinate coordinates(65.3, 25.5);
const QString name = "Jukka Kukka";
const QString note = "Testing";
const QUrl imageUrl = QUrl("http://profile.ak.fbcdn.net/v225/874/99/q100000139211584_3252.jpg");
void TestUser::testCoordinates()
{
- QPointF oldValue = user->coordinates();
+ GeoCoordinate oldValue = user->coordinates();
qDebug() << oldValue;
- QPointF newValue(64.3, 25.8);
+ GeoCoordinate newValue(64.3, 25.8);
user->setCoordinates(newValue);
- QPointF currentValue = user->coordinates();
+ GeoCoordinate currentValue = user->coordinates();
qDebug() << currentValue;
- QCOMPARE(currentValue, newValue);
+ QCOMPARE(currentValue.latitude(), newValue.latitude());
+ QCOMPARE(currentValue.longitude(), newValue.longitude());
}
void TestUser::testName()
CONFIG += qtestlib
TEMPLATE = app
-TARGET =
+TARGET =
DEPENDPATH += .
-INCLUDEPATH += .
+INCLUDEPATH += . \
+ ../../src
DEFINES += QT_NO_DEBUG_OUTPUT
# Input
-HEADERS += ../../src/user/user.h
-SOURCES += testuser.cpp ../../src/user/user.cpp
+HEADERS += ../../src/user/user.h \
+ ../../src/coordinates/scenecoordinate.h \
+ ../../src/coordinates/geocoordinate.h \
+ ../../src/map/osm.h
+SOURCES += testuser.cpp ../../src/user/user.cpp \
+ ../../src/coordinates/scenecoordinate.cpp \
+ ../../src/coordinates/geocoordinate.cpp