Added missing friendlistview to unit tests.
authorJussi Laitinen <jupe@l3l7588.ixonos.local>
Thu, 12 Aug 2010 08:31:20 +0000 (11:31 +0300)
committerJussi Laitinen <jupe@l3l7588.ixonos.local>
Thu, 12 Aug 2010 08:31:20 +0000 (11:31 +0300)
tests/tests.pro
tests/ui/friendlistview/friendlistview.pro [new file with mode: 0644]
tests/ui/friendlistview/testfriendlistview.cpp [new file with mode: 0644]

index c38a235..76e90c5 100644 (file)
@@ -10,7 +10,7 @@ SUBDIRS = coordinates/geocoordinate \
           map/mapscene \
           map/friendlocationitem \
           map/maprouteitem \
-          ui/listview \
+          ui/friendlistview \
           ui/friendlistitem \
           ui/tabbedpanel \
           ui/avatarimage \
diff --git a/tests/ui/friendlistview/friendlistview.pro b/tests/ui/friendlistview/friendlistview.pro
new file mode 100644 (file)
index 0000000..4e72e5f
--- /dev/null
@@ -0,0 +1,24 @@
+CONFIG += qtestlib
+DEFINES += QT_NO_DEBUG_OUTPUT
+INCLUDEPATH += . \
+    ../../../src/
+HEADERS += ../../../src/ui/listview.h \
+    ../../../src/ui/listitem.h \
+    ../../../src/ui/extendedlistitem.h \
+    ../../../src/ui/extendedlistitemstore.h \
+    ../../../src/ui/friendlistitem.h \
+    ../../../src/user/user.h \
+    ../../../src/coordinates/scenecoordinate.h \
+    ../../../src/coordinates/geocoordinate.h \
+    ../../../src/ui/friendlistview.h
+SOURCES += ../../../src/ui/listview.cpp \
+    ../../../src/ui/listitem.cpp \
+    ../../../src/ui/extendedlistitem.cpp \
+    ../../../src/ui/extendedlistitemstore.cpp \
+    ../../../src/ui/friendlistitem.cpp \
+    ../../../src/user/user.cpp \
+    testfriendlistview.cpp \
+    ../../../src/coordinates/scenecoordinate.cpp \
+    ../../../src/coordinates/geocoordinate.cpp \
+    ../../../src/ui/friendlistview.cpp
+RESOURCES += ../../../images.qrc
diff --git a/tests/ui/friendlistview/testfriendlistview.cpp b/tests/ui/friendlistview/testfriendlistview.cpp
new file mode 100644 (file)
index 0000000..90afcec
--- /dev/null
@@ -0,0 +1,240 @@
+/*
+   Situare - A location system for Facebook
+   Copyright (C) 2010  Ixonos Plc. Authors:
+
+       Jussi Laitinen - jussi.laitinen@ixonos.com
+
+   Situare is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License
+   version 2 as published by the Free Software Foundation.
+
+   Situare is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with Situare; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
+   USA.
+*/
+
+#include <QtTest>
+#include <QtGui>
+
+#include "../../../src/ui/friendlistitem.h"
+#include "../../../src/ui/friendlistview.h"
+#include "../../../src/user/user.h"
+
+class TestFriendListView: public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void cleanupTestCase();
+    void initTestCase();
+    void addListItem();
+    void addItemToView();
+    void clearUnused();
+    void filterListByID();
+    void filterListByName();
+    void takeListItemFromView();
+
+private:
+    int hiddenItemCount();
+
+private:
+    FriendListView *friendListView;
+    User *user1;
+    User *user2;
+    User *user3;
+    User *user4;
+};
+
+void TestFriendListView::cleanupTestCase()
+{
+    delete friendListView;
+    delete user1;
+    delete user2;
+    delete user3;
+    delete user4;
+}
+
+void TestFriendListView::initTestCase()
+{
+    friendListView = new FriendListView();
+    QVERIFY(friendListView != 0);
+
+    user1 = new User(QString("Address address address address address"),
+                           GeoCoordinate(12.22, 23.33), QString("John Doe"),
+                           QString("Note note note note note note note note"),
+                           QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
+                           true, QString("key1"), QString("km"), 44.12);
+    user1->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
+
+    user2 = new User(QString("Address address"),
+                           GeoCoordinate(12.1, 44.33), QString("Jane Doe"),
+                           QString("Note note note note note note note note"),
+                           QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
+                           true, QString("key2"), QString("km"), 144.12);
+    user2->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
+
+    user3 = new User(QString("Address address address address address"),
+                           GeoCoordinate(12.22, 23.33), QString("Kate Nameless"),
+                           QString("Note note note note note note note note"),
+                           QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
+                           true, QString("key3"), QString("km"), 44.12);
+    user3->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
+
+    user4 = new User(QString("Address address"),
+                           GeoCoordinate(12.1, 44.33), QString("Jay Nameless"),
+                           QString("Note note note note note note note note"),
+                           QUrl("http://image.url"), QString("Timestamp timestamp timestamp tim"),
+                           true, QString("key4"), QString("km"), 144.12);
+    user4->setProfileImage(QPixmap(":/res/images/profile_pic_border.png"));
+
+    QVERIFY(user1 != 0);
+    QVERIFY(user2 != 0);
+    QVERIFY(user3 != 0);
+    QVERIFY(user4 != 0);
+}
+
+void TestFriendListView::addListItem()
+{
+    friendListView->addListItem("key1", new FriendListItem());
+    QCOMPARE(friendListView->count(), 1);
+
+    friendListView->addListItem("key1", new FriendListItem());
+    QCOMPARE(friendListView->count(), 1);
+
+    friendListView->addListItem("key2", new FriendListItem());
+    QCOMPARE(friendListView->count(), 2);
+}
+
+void TestFriendListView::addItemToView()
+{
+    friendListView->addListItemToView(new FriendListItem());
+    QCOMPARE(friendListView->count(), 3);
+
+    friendListView->addListItemToView(new FriendListItem());
+    QCOMPARE(friendListView->count(), 4);
+
+    friendListView->clearList();
+    QCOMPARE(friendListView->count(), 0);
+}
+
+void TestFriendListView::clearUnused()
+{
+    friendListView->addListItem("key1", new FriendListItem());
+    friendListView->addListItem("key2", new FriendListItem());
+    friendListView->addListItem("key3", new FriendListItem());
+    friendListView->addListItem("key4", new FriendListItem());
+    QCOMPARE(friendListView->count(), 4);
+
+    QStringList newUserIDs;
+    newUserIDs.append("key2");
+    newUserIDs.append("key3");
+    friendListView->clearUnused(newUserIDs);
+    QCOMPARE(friendListView->count(), 2);
+    QVERIFY(friendListView->listItem("key1") == 0);
+    QVERIFY(friendListView->listItem("key2") != 0);
+    QVERIFY(friendListView->listItem("key3") != 0);
+    QVERIFY(friendListView->listItem("key4") == 0);
+}
+
+void TestFriendListView::filterListByID()
+{
+    friendListView->clearList();
+    QCOMPARE(friendListView->count(), 0);
+
+    FriendListItem *item1 = new FriendListItem();
+    FriendListItem *item2 = new FriendListItem();
+    FriendListItem *item3 = new FriendListItem();;
+    FriendListItem *item4 = new FriendListItem();
+
+    item1->setUserData(user1);
+    item2->setUserData(user2);
+    item3->setUserData(user3);
+    item4->setUserData(user4);
+
+    friendListView->addListItem("key1", item1);
+    friendListView->addListItem("key2", item2);
+    friendListView->addListItem("key3", item3);
+    friendListView->addListItem("key4", item4);
+    QCOMPARE(friendListView->count(), 4);
+
+    QList<QString> userIDs;
+    userIDs.append("key1");
+    friendListView->filter(userIDs);
+    QCOMPARE(friendListView->count(), 4);
+    QCOMPARE(hiddenItemCount(), 3);
+
+    userIDs.append("key2");
+    friendListView->filter(userIDs);
+    QCOMPARE(friendListView->count(), 4);
+    QCOMPARE(hiddenItemCount(), 2);
+
+    friendListView->clearFilter();
+    QCOMPARE(hiddenItemCount(), 0);
+}
+
+void TestFriendListView::filterListByName()
+{
+    friendListView->clearList();
+    QCOMPARE(friendListView->count(), 0);
+
+    FriendListItem *item1 = new FriendListItem();
+    FriendListItem *item2 = new FriendListItem();
+    FriendListItem *item3 = new FriendListItem();;
+    FriendListItem *item4 = new FriendListItem();
+
+    item1->setUserData(user1);
+    item2->setUserData(user2);
+    item3->setUserData(user3);
+    item4->setUserData(user4);
+
+    friendListView->addListItem("key1", item1);
+    friendListView->addListItem("key2", item2);
+    friendListView->addListItem("key3", item3);
+    friendListView->addListItem("key4", item4);
+    QCOMPARE(friendListView->count(), 4);
+
+    friendListView->filter("doe");
+    QCOMPARE(hiddenItemCount(), 2);
+
+    friendListView->filter("j");
+    QCOMPARE(hiddenItemCount(), 1);
+
+    friendListView->filter("john");
+    QCOMPARE(hiddenItemCount(), 3);
+
+    friendListView->clearFilter();
+    QCOMPARE(hiddenItemCount(), 0);
+}
+
+void TestFriendListView::takeListItemFromView()
+{
+    QCOMPARE(friendListView->count(), 4);
+
+    ListItem *item = friendListView->takeListItemFromView("key3");
+    QVERIFY(item != 0);
+    QCOMPARE(friendListView->count(), 3);
+
+    friendListView->addListItemToView(item);
+    QCOMPARE(friendListView->count(), 4);
+}
+
+int TestFriendListView::hiddenItemCount()
+{
+    int hiddenCounter = 0;
+
+    for (int i = 0; i < friendListView->count(); ++i) {
+        if (friendListView->item(i)->isHidden())
+            hiddenCounter++;
+    }
+
+    return hiddenCounter;
+}
+
+QTEST_MAIN(TestFriendListView)
+#include "testfriendlistview.moc"