Removed QtGui includes
[situare] / tests / ui / listview / testlistview.cpp
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5        Jussi Laitinen - jussi.laitinen@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>
23
24 #include "ui/friendlistitem.h"
25 #include "ui/listview.h"
26
27 class TestListView: public QObject
28 {
29     Q_OBJECT
30
31 private slots:
32     void cleanupTestCase();
33     void initTestCase();
34     void addListItem();
35     void addItemToView();
36     void clearUnused();
37     void filterList();
38     void takeListItemFromView();
39
40 private:
41     ListView *listView;
42     User *user1;
43     User *user2;
44     User *user3;
45     User *user4;
46 };
47
48 void TestListView::cleanupTestCase()
49 {
50     delete listView;
51     delete user1;
52     delete user2;
53     delete user3;
54     delete user4;
55 }
56
57 void TestListView::initTestCase()
58 {
59     listView = new ListView();
60     QVERIFY(listView != 0);
61
62     user1 = new User(QString("Address address address address address"),
63                            GeoCoordinate(12.22, 23.33), QString("Name na msfdsa dsfadsaf sdaf"),
64                            QString("Note note note note note note note note"),
65                            QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
66                            true, QString("key1"), QString("km"), 44.12);
67     user1->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
68     user2 = new User(QString("Address address"),
69                            GeoCoordinate(12.1, 44.33), QString("Name na msfdsa dsfadsaf sdaf"),
70                            QString("Note note note note note note note note"),
71                            QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
72                            true, QString("key2"), QString("km"), 144.12);
73     user2->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
74     user3 = new User(QString("Address address address address address"),
75                            GeoCoordinate(12.22, 23.33), QString("Name na msfdsa dsfadsaf sdaf"),
76                            QString("Note note note note note note note note"),
77                            QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
78                            true, QString("key3"), QString("km"), 44.12);
79     user3->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
80     user4 = new User(QString("Address address"),
81                            GeoCoordinate(12.1, 44.33), QString("Name na msfdsa dsfadsaf sdaf"),
82                            QString("Note note note note note note note note"),
83                            QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
84                            true, QString("key4"), QString("km"), 144.12);
85     user4->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
86
87     QVERIFY(user1 != 0);
88     QVERIFY(user2 != 0);
89     QVERIFY(user3 != 0);
90     QVERIFY(user4 != 0);
91 }
92
93 void TestListView::addListItem()
94 {
95     listView->addListItem("key1", new FriendListItem());
96     QCOMPARE(listView->count(), 1);
97
98     listView->addListItem("key1", new FriendListItem());
99     QCOMPARE(listView->count(), 1);
100
101     listView->addListItem("key2", new FriendListItem());
102     QCOMPARE(listView->count(), 2);
103 }
104
105 void TestListView::addItemToView()
106 {
107     listView->addListItemToView(new FriendListItem());
108     QCOMPARE(listView->count(), 3);
109
110     listView->addListItemToView(new FriendListItem());
111     QCOMPARE(listView->count(), 4);
112
113     listView->clearList();
114     QCOMPARE(listView->count(), 0);
115 }
116
117 void TestListView::clearUnused()
118 {
119     listView->addListItem("key1", new FriendListItem());
120     listView->addListItem("key2", new FriendListItem());
121     listView->addListItem("key3", new FriendListItem());
122     listView->addListItem("key4", new FriendListItem());
123     QCOMPARE(listView->count(), 4);
124
125     QStringList newUserIDs;
126     newUserIDs.append("key2");
127     newUserIDs.append("key3");
128     listView->clearUnused(newUserIDs);
129     QCOMPARE(listView->count(), 2);
130     QVERIFY(listView->listItem("key1") == 0);
131     QVERIFY(listView->listItem("key2") != 0);
132     QVERIFY(listView->listItem("key3") != 0);
133     QVERIFY(listView->listItem("key4") == 0);
134 }
135
136 void TestListView::filterList()
137 {
138     listView->clearList();
139     QCOMPARE(listView->count(), 0);
140
141     FriendListItem *item1 = new FriendListItem();
142     FriendListItem *item2 = new FriendListItem();
143     FriendListItem *item3 = new FriendListItem();;
144     FriendListItem *item4 = new FriendListItem();
145
146     item1->setUserData(user1);
147     item2->setUserData(user2);
148     item3->setUserData(user3);
149     item4->setUserData(user4);
150
151     listView->addListItem(item1->id(), item1);
152     listView->addListItem(item2->id(), item2);
153     listView->addListItem(item3->id(), item3);
154     listView->addListItem(item4->id(), item4);
155     QCOMPARE(listView->count(), 4);
156
157     QList<QString> userIDs;
158     userIDs.append(item1->id());
159     listView->filter(userIDs);
160     QCOMPARE(listView->count(), 4);
161
162     int hiddenCounter = 0;
163
164     for (int i = 0; i < listView->count(); ++i) {
165         if (listView->item(i)->isHidden())
166             hiddenCounter++;
167     }
168
169     QCOMPARE(hiddenCounter, 3);
170
171     userIDs.append(item2->id());
172     listView->filter(userIDs);
173     QCOMPARE(listView->count(), 4);
174     hiddenCounter = 0;
175
176     for (int i = 0; i < listView->count(); ++i) {
177         if (listView->item(i)->isHidden())
178             hiddenCounter++;
179     }
180
181     QCOMPARE(hiddenCounter, 2);
182
183     listView->clearFilter();
184
185     hiddenCounter = 0;
186
187     for (int i = 0; i < listView->count(); ++i) {
188         if (listView->item(i)->isHidden())
189             hiddenCounter++;
190     }
191
192     QCOMPARE(hiddenCounter, 0);
193 }
194
195 void TestListView::takeListItemFromView()
196 {
197     QCOMPARE(listView->count(), 4);
198
199     ListItem *item = listView->takeListItemFromView("key3");
200     QVERIFY(item != 0);
201     QCOMPARE(listView->count(), 3);
202     QCOMPARE(item->id(), QString("key3"));
203
204     listView->addListItemToView(item);
205     QCOMPARE(listView->count(), 4);
206 }
207
208 QTEST_MAIN(TestListView)
209 #include "testlistview.moc"