Add initial test case for connection going offline
[qtcontacts-tracker:kprasannakumar8s-contactsd.git] / tests / telepathyplugin / test-telepathy-plugin.h
1 /***************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (people-users@projects.maemo.org)
6 **
7 ** This file is part of contactsd.
8 **
9 ** If you have questions regarding the use of this file, please contact
10 ** Nokia at people-users@projects.maemo.org.
11 **
12 ** This library is free software; you can redistribute it and/or
13 ** modify it under the terms of the GNU Lesser General Public
14 ** License version 2.1 as published by the Free Software Foundation
15 ** and appearing in the file LICENSE.LGPL included in the packaging
16 ** of this file.
17 **
18 ****************************************************************************/
19
20 #ifndef TEST_TELEPATHY_PLUGIN_H
21 #define TEST_TELEPATHY_PLUGIN_H
22
23 #include <QObject>
24 #include <QtTest/QtTest>
25 #include <QString>
26
27 #include <QContactManager>
28
29 #include "tests/lib/glib/simple-account-manager.h"
30 #include "tests/lib/glib/simple-account.h"
31 #include "tests/lib/glib/contacts-conn.h"
32 #include "tests/lib/glib/util.h"
33
34 #include "test.h"
35
36 QTM_USE_NAMESPACE
37
38 class TestExpectation
39 {
40 public:
41     enum Event {
42         Added,
43         Changed,
44     };
45
46     TestExpectation();
47
48     void verify(QContact &contact) const;
49
50     Event event;
51     QString accountUri;
52     QString alias;
53     TpTestsContactsConnectionPresenceStatusIndex presence;
54     QByteArray avatarData;
55 };
56
57 /**
58  * Telepathy plugin's unit test
59  */
60 class TestTelepathyPlugin : public Test
61 {
62 Q_OBJECT
63 public:
64     TestTelepathyPlugin(QObject *parent = 0);
65
66 protected Q_SLOTS:
67     void contactsAdded(const QList<QContactLocalId>& contactIds);
68     void contactsChanged(const QList<QContactLocalId>& contactIds);
69
70 private Q_SLOTS:
71     void initTestCase();
72     void init();
73
74     void testBasicUpdates();
75     void testSelfContact();
76     void testSetOffline();
77
78     void cleanup();
79     void cleanupTestCase();
80
81 private:
82     QContactManager *mContactManager;
83     TpBaseConnection *mConnService;
84     TestContactListManager *mListManager;
85
86     QList<TestExpectation> mExpectations;
87     void verify(TestExpectation::Event, const QList<QContactLocalId>&);
88 };
89
90 #endif