bd226df021ba49bdcbf5c0767214f17b8fa0aa16
[situare] / tests / testMap / testmapfetcher.cpp
1 #include <QtTest/QtTest>
2 #include <QUrl>
3 #include <QImage>
4
5 #include "../map/mapfetcher.h"
6
7 class TestMapFetcher : public QObject
8 {
9     Q_OBJECT
10 public:
11     TestMapFetcher();
12
13 private slots:
14     void testFetchImage();
15     void testSignals();
16
17
18 private:
19     MapFetcher *mapFetcher;
20 };
21
22 TestMapFetcher::TestMapFetcher()
23 {
24     mapFetcher = new MapFetcher();
25 }
26
27 void TestMapFetcher::testFetchImage()
28 {
29     QUrl url("");
30     mapFetcher->fetchMapImage(url);
31 }
32
33
34 void TestMapFetcher::testSignals()
35 {
36     QSignalSpy imageReceivedSpy(mapFetcher, SIGNAL(mapImageReceived(QUrl,QPixmap)));
37     QSignalSpy imageReceivedErrorSpy(mapFetcher, SIGNAL(error(QString)));
38
39     QVERIFY(imageReceivedSpy.isValid());
40
41     //Incorrect URL
42     QUrl url1("http://tile.openstreetmap.org/7/63/22.gi");
43     mapFetcher->fetchMapImage(url1);
44     QTest::qWait(1000);
45     QCOMPARE(imageReceivedErrorSpy.count(), 1);
46     QList<QVariant> signalArgs1 = imageReceivedErrorSpy.takeFirst();
47     qDebug() << signalArgs1.at(0).toString();
48
49     //Correct URL
50     QUrl url2("http://tile.openstreetmap.org/7/63/42.png");
51     mapFetcher->fetchMapImage(url2);
52     QTest::qWait(1000);
53     QCOMPARE(imageReceivedSpy.count(), 1);
54     QList<QVariant> signalArgs2 = imageReceivedSpy.takeFirst();
55     QCOMPARE(url2, signalArgs2.at(0).toUrl());
56
57     //10 requests
58     qDebug() << "Start:" << QTime::currentTime().toString("hh:mm:ss:zzz");
59     for (int i = 0; i < 10; ++i) {
60         QUrl url(QString("http://tile.openstreetmap.org/7/63/4%1.png").arg(i));
61         mapFetcher->fetchMapImage(url);
62     }
63     QTest::qWait(2000);
64
65 }
66
67 QTEST_MAIN(TestMapFetcher)
68 #include "testmapfetcher.moc"