Tests: Support verifying only parts of the contact info, and add expectation for...
[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     enum VerifyFlags {
47         Alias = 1 << 0,
48         Presence = 1 << 1,
49         Avatar = 1 << 2,
50         All = (1 << 3) - 1
51     };
52
53     TestExpectation();
54     void verify(QContact &contact) const;
55
56     VerifyFlags flags;
57     Event event;
58     QString accountUri;
59
60     QString alias;
61     TpTestsContactsConnectionPresenceStatusIndex presence;
62     QByteArray avatarData;
63 };
64
65 /**
66  * Telepathy plugin's unit test
67  */
68 class TestTelepathyPlugin : public Test
69 {
70 Q_OBJECT
71 public:
72     TestTelepathyPlugin(QObject *parent = 0);
73
74 protected Q_SLOTS:
75     void contactsAdded(const QList<QContactLocalId>& contactIds);
76     void contactsChanged(const QList<QContactLocalId>& contactIds);
77
78 private Q_SLOTS:
79     void initTestCase();
80     void init();
81
82     void testBasicUpdates();
83     void testSelfContact();
84     void testSetOffline();
85
86     void cleanup();
87     void cleanupTestCase();
88
89 private:
90     QContactManager *mContactManager;
91     TpBaseConnection *mConnService;
92     TestContactListManager *mListManager;
93
94     QList<TestExpectation> mExpectations;
95     void verify(TestExpectation::Event, const QList<QContactLocalId>&);
96 };
97
98 #endif