|
1 /* |
|
2 * ============================================================================ |
|
3 * Name : unittest_hbactivitymanager.cpp |
|
4 * Part of : LibHb / HbActivityManager |
|
5 * Description : HbActivityManager unit tests |
|
6 * Version : %version: 5 % |
|
7 * |
|
8 * Copyright (c) 2008-2009 Nokia. All rights reserved. |
|
9 * This material, including documentation and any related computer |
|
10 * programs, is protected by copyright controlled by Nokia. All |
|
11 * rights are reserved. Copying, including reproducing, storing, |
|
12 * adapting or translating, any or all of this material requires the |
|
13 * prior written consent of Nokia. This material also contains |
|
14 * confidential information which may not be disclosed to others |
|
15 * without the prior written consent of Nokia. |
|
16 * ============================================================================ |
|
17 */ |
|
18 |
|
19 #include <QtTest/QtTest> |
|
20 |
|
21 #include <hbapplication.h> |
|
22 #include <hbactivitymanager.h> |
|
23 #include <hbtest.h> |
|
24 |
|
25 class TestHbActivityManager : public QObject |
|
26 { |
|
27 Q_OBJECT |
|
28 |
|
29 public slots: |
|
30 void cleanup(); |
|
31 |
|
32 private slots: |
|
33 void testConstruction(); |
|
34 void testAddActivity(); |
|
35 void testRemoveActivity(); |
|
36 void testActivityData(); |
|
37 void testUpdateActivity(); |
|
38 void testWaitActivity(); |
|
39 void testActivities(); |
|
40 void testCommandLineParsing(); |
|
41 void testFalseAndEmptyValuesReturnedWhenPluginCannotBeLoaded(); |
|
42 |
|
43 }; |
|
44 |
|
45 |
|
46 void TestHbActivityManager::cleanup() |
|
47 { |
|
48 HbActivityManager manager; |
|
49 manager.removeActivity("TestActivity1"); |
|
50 manager.removeActivity("TestActivity2"); |
|
51 } |
|
52 |
|
53 void TestHbActivityManager::testConstruction() |
|
54 { |
|
55 HbActivityManager *manager = new HbActivityManager; |
|
56 QVERIFY(manager); |
|
57 delete manager; |
|
58 } |
|
59 |
|
60 void TestHbActivityManager::testAddActivity() |
|
61 { |
|
62 HbActivityManager manager; |
|
63 QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash())); |
|
64 // cannot add same activity twice |
|
65 QVERIFY(!manager.addActivity("TestActivity1", "TestData2", QVariantHash())); |
|
66 } |
|
67 |
|
68 void TestHbActivityManager::testRemoveActivity() |
|
69 { |
|
70 HbActivityManager manager; |
|
71 // activity have to be added before it's deleted |
|
72 QVERIFY(!manager.removeActivity("TestActivity1")); |
|
73 QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash())); |
|
74 QVERIFY(manager.removeActivity("TestActivity1")); |
|
75 } |
|
76 |
|
77 void TestHbActivityManager::testActivityData() |
|
78 { |
|
79 HbActivityManager manager; |
|
80 // empty data is returned for non existing activity |
|
81 QCOMPARE(manager.activityData("TestActivity1"), QVariant()); |
|
82 |
|
83 // correct data is returned for existing activity |
|
84 QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash())); |
|
85 QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData")); |
|
86 } |
|
87 |
|
88 void TestHbActivityManager::testUpdateActivity() |
|
89 { |
|
90 HbActivityManager manager; |
|
91 // activity have to be added before it's updated |
|
92 QVERIFY(!manager.updateActivity("TestActivity1", "TestData", QVariantHash())); |
|
93 |
|
94 // activity can be succesfully updated |
|
95 QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash())); |
|
96 QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData")); |
|
97 QVERIFY(manager.updateActivity("TestActivity1", "TestData2", QVariantHash())); |
|
98 QCOMPARE(manager.activityData("TestActivity1"), QVariant("TestData2")); |
|
99 } |
|
100 |
|
101 void TestHbActivityManager::testWaitActivity() |
|
102 { |
|
103 HbActivityManager manager; |
|
104 // mocked plugin returns false when there are no activities, so we have to add something |
|
105 QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash())); |
|
106 QVERIFY(manager.waitActivity()); |
|
107 } |
|
108 |
|
109 void TestHbActivityManager::testActivities() |
|
110 { |
|
111 HbActivityManager manager; |
|
112 // empty list returned when there is no activities |
|
113 QCOMPARE(manager.activities().count(), 0); |
|
114 |
|
115 QVERIFY(manager.addActivity("TestActivity1", "TestData", QVariantHash())); |
|
116 QCOMPARE(manager.activities().count(), 1); |
|
117 |
|
118 QVERIFY(manager.addActivity("TestActivity2", "TestData", QVariantHash())); |
|
119 QCOMPARE(manager.activities().count(), 2); |
|
120 } |
|
121 |
|
122 void TestHbActivityManager::testCommandLineParsing() |
|
123 { |
|
124 HbActivityManager manager; |
|
125 // fake activity plugin returns valid fake activity when QStringList with |
|
126 // single "UnitTest" QString is used as argument |
|
127 |
|
128 Hb::ActivationReason reason(Hb::ActivationReasonNormal); |
|
129 QString id; |
|
130 QVariantHash params; |
|
131 |
|
132 manager.parseCommandLine(QStringList(), reason, id, params); |
|
133 QCOMPARE(reason, Hb::ActivationReasonNormal); |
|
134 QCOMPARE(id, QString()); |
|
135 QVERIFY(params.isEmpty()); |
|
136 |
|
137 manager.parseCommandLine(QStringList("UnitTest"), reason, id, params); |
|
138 QCOMPARE(reason, Hb::ActivationReasonActivity); |
|
139 QCOMPARE(id, QString("TestActivity")); |
|
140 QCOMPARE(params.count(), 2); |
|
141 QVERIFY(params.contains("activityname")); |
|
142 QCOMPARE(params.value("activityname"), QVariant("TestActivity")); |
|
143 QVERIFY(params.contains("fakeParam")); |
|
144 QCOMPARE(params.value("fakeParam"), QVariant("fakeValue")); |
|
145 } |
|
146 |
|
147 void TestHbActivityManager::testFalseAndEmptyValuesReturnedWhenPluginCannotBeLoaded() |
|
148 { |
|
149 QSKIP("This test can't be performed, because the plugin path is hardcoded into HbActivityManager", SkipAll); |
|
150 QVERIFY(QFile::rename("/resource/qt/plugins/hbactivityplugin.qtplugin", "/resource/qt/plugins/hbactivityplugin.tmp")); |
|
151 |
|
152 HbActivityManager manager; |
|
153 |
|
154 // every method will return false or empty value |
|
155 QVERIFY(!manager.addActivity("TestActivity1", "TestData2", QVariantHash())); |
|
156 QVERIFY(!manager.removeActivity("TestActivity1")); |
|
157 QCOMPARE(manager.activityData("TestActivity1"), QVariant()); |
|
158 QVERIFY(!manager.updateActivity("TestActivity1", "TestData", QVariantHash())); |
|
159 QVERIFY(!manager.waitActivity()); |
|
160 QCOMPARE(manager.activities().count(), 0); |
|
161 |
|
162 QVERIFY(QFile::rename("/resource/qt/plugins/hbactivityplugin.tmp", "/resource/qt/plugins/hbactivityplugin.qtplugin")); |
|
163 } |
|
164 |
|
165 int main(int argc, char *argv[]) |
|
166 { |
|
167 #if defined(Q_OS_WIN32) || defined(Q_OS_LINUX) |
|
168 QCoreApplication::addLibraryPath("testplugins/"); |
|
169 #elif defined(Q_OS_SYMBIAN) |
|
170 QCoreApplication::addLibraryPath("/resource/qt/plugins/testplugins/"); |
|
171 #endif |
|
172 |
|
173 HbApplication app(argc, argv); |
|
174 TestHbActivityManager tc; |
|
175 int ret = QTest::qExec(&tc, argc, argv); |
|
176 QMetaObject::invokeMethod(&app, "aboutToQuit", Qt::DirectConnection); |
|
177 return ret; |
|
178 } |
|
179 |
|
180 |
|
181 |
|
182 #include "unittest_hbactivitymanager.moc" |