Merge lp:~mardy/libaccounts-qt/packaging into lp:libaccounts-qt

Proposed by Alberto Mardegan
Status: Merged
Approved by: Alberto Mardegan
Approved revision: no longer in the source branch.
Merged at revision: 122
Proposed branch: lp:~mardy/libaccounts-qt/packaging
Merge into: lp:libaccounts-qt
Diff against target: 934 lines (+231/-97)
20 files modified
.gitignore (+2/-0)
Accounts/Accounts.pro (+1/-1)
Accounts/account-service.cpp (+5/-8)
Accounts/account-service.h (+1/-1)
Accounts/account.cpp (+9/-27)
Accounts/account.h (+1/-0)
Accounts/accounts-qt5.pc.in (+1/-1)
Accounts/application.h (+1/-1)
Accounts/manager.cpp (+4/-22)
Accounts/provider.cpp (+0/-3)
Accounts/service-type.cpp (+0/-2)
Accounts/service.cpp (+0/-2)
Accounts/utils.cpp (+1/-1)
common-vars.pri (+1/-1)
debian/changelog (+13/-0)
doc/doc.pri (+2/-2)
tests/MyProvider.provider (+11/-0)
tests/MyService.service (+5/-0)
tests/accountstest.cpp (+172/-25)
tests/accountstest.h (+1/-0)
To merge this branch: bzr merge lp:~mardy/libaccounts-qt/packaging
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve
Online Accounts Pending
Review via email: mp+149780@code.launchpad.net

Commit message

New upstream release.

    - Make libaccounts-qt compile with QT_NO_KEYWORDS
    - Tests: increase coverage (now 93%)
    - Make AccountService::account() always return a valid account
    - Remove excessive debug verbosity
    - Fixed pkg-config requires for accounts-qt5
    - Documentation fixes for out-of-tree builds

Description of the change

New upstream release

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
lp:~mardy/libaccounts-qt/packaging updated
122. By Alberto Mardegan

New upstream release.

    - Make libaccounts-qt compile with QT_NO_KEYWORDS
    - Tests: increase coverage (now 93%)
    - Make AccountService::account() always return a valid account
    - Remove excessive debug verbosity
    - Fixed pkg-config requires for accounts-qt5
    - Documentation fixes for out-of-tree builds
.

Approved by PS Jenkins bot.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.gitignore'
2--- .gitignore 2012-11-26 09:17:34 +0000
3+++ .gitignore 2013-02-21 10:14:20 +0000
4@@ -10,5 +10,7 @@
5 /doc/qch
6 moc_*
7 *~
8+*.gcda
9+*.gcno
10 *.o
11 *.tar.*
12
13=== modified file 'Accounts/Accounts.pro'
14--- Accounts/Accounts.pro 2013-01-18 10:49:27 +0000
15+++ Accounts/Accounts.pro 2013-02-21 10:14:20 +0000
16@@ -37,7 +37,7 @@
17
18 CONFIG += link_pkgconfig
19
20-DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
21+DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII QT_NO_KEYWORDS
22 QT += core xml
23 QT -= gui
24
25
26=== modified file 'Accounts/account-service.cpp'
27--- Accounts/account-service.cpp 2013-02-15 12:20:43 +0000
28+++ Accounts/account-service.cpp 2013-02-21 10:14:20 +0000
29@@ -202,15 +202,13 @@
30 }
31
32 /*!
33- * Return the Account. Do not delete this object explicitly.
34+ * Return the Account.
35 */
36 Account *AccountService::account() const
37 {
38 Q_D(const AccountService);
39 AgAccount *account = ag_account_service_get_account(d->m_accountService);
40- AgAccountId account_id = account->id;
41-
42- return d->m_manager->account(account_id);
43+ return new Account(account, d->m_manager);
44 }
45
46 /*!
47@@ -272,7 +270,7 @@
48 QStringList groups, all_keys;
49
50 all_keys = allKeys();
51- foreach (QString key, all_keys)
52+ Q_FOREACH (QString key, all_keys)
53 {
54 if (key.contains(slash)) {
55 QString group = key.section(slash, 0, 0);
56@@ -291,7 +289,7 @@
57 QStringList keys, all_keys;
58
59 all_keys = allKeys();
60- foreach (QString key, all_keys)
61+ Q_FOREACH (QString key, all_keys)
62 {
63 if (!key.contains(slash))
64 keys.append(key);
65@@ -357,7 +355,7 @@
66 {
67 /* delete all keys in the group */
68 QStringList keys = allKeys();
69- foreach (QString key, keys)
70+ Q_FOREACH (QString key, keys)
71 {
72 if (!key.isEmpty())
73 remove(key);
74@@ -381,7 +379,6 @@
75 void AccountService::setValue(const QString &key, const QVariant &value)
76 {
77 Q_D(AccountService);
78- TRACE();
79
80 GVariant *variant = qVariantToGVariant(value);
81 if (variant == 0) {
82
83=== modified file 'Accounts/account-service.h'
84--- Accounts/account-service.h 2013-02-18 10:17:42 +0000
85+++ Accounts/account-service.h 2013-02-21 10:14:20 +0000
86@@ -81,7 +81,7 @@
87
88 AuthData authData() const;
89
90-signals:
91+Q_SIGNALS:
92 void enabled(bool isEnabled);
93 void changed();
94
95
96=== modified file 'Accounts/account.cpp'
97--- Accounts/account.cpp 2013-02-15 12:20:43 +0000
98+++ Accounts/account.cpp 2013-02-21 10:14:20 +0000
99@@ -130,7 +130,6 @@
100
101 Watch::~Watch()
102 {
103- TRACE();
104 Account *account = qobject_cast<Account *>(QObject::parent());
105 /* The destructor of Account deletes the child Watches before detaching
106 * them, so here account should always be not NULL */
107@@ -140,25 +139,22 @@
108
109 void Account::Private::on_display_name_changed(Account *self)
110 {
111- TRACE();
112 const gchar *name = ag_account_get_display_name(self->d->m_account);
113
114- emit self->displayNameChanged(UTF8(name));
115+ Q_EMIT self->displayNameChanged(UTF8(name));
116 }
117
118 void Account::Private::on_enabled(Account *self, const gchar *service_name,
119 gboolean enabled)
120 {
121- TRACE();
122-
123- emit self->enabledChanged(UTF8(service_name), enabled);
124+ Q_EMIT self->enabledChanged(UTF8(service_name), enabled);
125 }
126
127 void Account::Private::on_deleted(Account *self)
128 {
129 TRACE();
130
131- emit self->removed();
132+ Q_EMIT self->removed();
133 }
134
135 /*!
136@@ -171,7 +167,6 @@
137 QObject(parent),
138 d(new Private)
139 {
140- TRACE();
141 d->m_account = account;
142 g_object_ref(account);
143
144@@ -189,8 +184,6 @@
145 */
146 Account::~Account()
147 {
148- TRACE();
149-
150 QObjectList list = children();
151 for (int i = 0; i < list.count(); i++)
152 {
153@@ -232,8 +225,6 @@
154 */
155 bool Account::supportsService(const QString &serviceType) const
156 {
157- TRACE() << serviceType;
158-
159 return ag_account_supports_service(d->m_account,
160 serviceType.toUtf8().constData());
161 }
162@@ -248,8 +239,6 @@
163 */
164 ServiceList Account::services(const QString &serviceType) const
165 {
166- TRACE() << serviceType;
167-
168 GList *list;
169 if (serviceType.isEmpty()) {
170 list = ag_account_list_services(d->m_account);
171@@ -423,7 +412,7 @@
172 QStringList groups, all_keys;
173
174 all_keys = allKeys();
175- foreach (QString key, all_keys)
176+ Q_FOREACH (QString key, all_keys)
177 {
178 if (key.contains(slash)) {
179 QString group = key.section(slash, 0, 0);
180@@ -444,7 +433,7 @@
181 QStringList keys, all_keys;
182
183 all_keys = allKeys();
184- foreach (QString key, all_keys)
185+ Q_FOREACH (QString key, all_keys)
186 {
187 if (!key.contains(slash))
188 keys.append(key);
189@@ -522,7 +511,7 @@
190 {
191 /* delete all keys in the group */
192 QStringList keys = allKeys();
193- foreach (QString key, keys)
194+ Q_FOREACH (QString key, keys)
195 {
196 if (!key.isEmpty())
197 remove(key);
198@@ -545,8 +534,6 @@
199 */
200 void Account::setValue(const QString &key, const QVariant &value)
201 {
202- TRACE();
203-
204 GVariant *variant = qVariantToGVariant(value);
205 if (variant == 0) {
206 return;
207@@ -570,11 +557,11 @@
208 error->code == G_IO_ERROR_CANCELLED) {
209 TRACE() << "Account destroyed, operation cancelled";
210 } else {
211- emit self->error(Error(error));
212+ Q_EMIT self->error(Error(error));
213 }
214 g_error_free(error);
215 } else {
216- emit self->synced();
217+ Q_EMIT self->synced();
218 }
219 }
220
221@@ -723,7 +710,7 @@
222 void Watch::Private::account_notify_cb(AgAccount *account, const gchar *key,
223 Watch *watch)
224 {
225- emit watch->notify(key);
226+ Q_EMIT watch->notify(key);
227
228 Q_UNUSED(account);
229 }
230@@ -781,8 +768,6 @@
231 */
232 void Account::sync()
233 {
234- TRACE();
235-
236 ag_account_store_async(d->m_account,
237 d->m_cancellable,
238 (GAsyncReadyCallback)&Private::account_store_cb,
239@@ -798,8 +783,6 @@
240 */
241 bool Account::syncAndBlock()
242 {
243- TRACE();
244-
245 GError *error = NULL;
246 bool ret;
247
248@@ -819,7 +802,6 @@
249 */
250 void Account::remove()
251 {
252- TRACE();
253 ag_account_delete(d->m_account);
254 }
255
256
257=== modified file 'Accounts/account.h'
258--- Accounts/account.h 2013-02-15 12:20:43 +0000
259+++ Accounts/account.h 2013-02-21 10:14:20 +0000
260@@ -201,6 +201,7 @@
261 friend class Manager;
262 friend class Account::Private;
263 friend class Watch;
264+ friend class AccountService;
265 friend class AccountServicePrivate;
266
267 Private *d;
268
269=== modified file 'Accounts/accounts-qt5.pc.in'
270--- Accounts/accounts-qt5.pc.in 2013-01-18 10:49:27 +0000
271+++ Accounts/accounts-qt5.pc.in 2013-02-21 10:14:20 +0000
272@@ -10,6 +10,6 @@
273 Description: Accounts Library
274 Version: $$PROJECT_VERSION
275 Libs: -L${libdir} -laccounts-qt5
276-Requires: QtCore QtXml
277+Requires: Qt5Core Qt5Xml
278 Cflags: -I${includedir}
279
280
281=== modified file 'Accounts/application.h'
282--- Accounts/application.h 2012-03-20 06:33:27 +0000
283+++ Accounts/application.h 2013-02-21 10:14:20 +0000
284@@ -55,7 +55,7 @@
285 private:
286 // Don't include private data in docs: \cond
287 friend class Manager;
288- Application(AgApplication *authData);
289+ Application(AgApplication *application);
290
291 AgApplication *m_application;
292 // \endcond
293
294=== modified file 'Accounts/manager.cpp'
295--- Accounts/manager.cpp 2012-05-21 12:35:18 +0000
296+++ Accounts/manager.cpp 2013-02-21 10:14:20 +0000
297@@ -147,30 +147,22 @@
298
299 void Manager::Private::on_account_created(Manager *self, AgAccountId id)
300 {
301- TRACE() << "id =" << id;
302-
303- emit self->accountCreated(id);
304+ Q_EMIT self->accountCreated(id);
305 }
306
307 void Manager::Private::on_account_deleted(Manager *self, AgAccountId id)
308 {
309- TRACE() << "id =" << id;
310-
311- emit self->accountRemoved(id);
312+ Q_EMIT self->accountRemoved(id);
313 }
314
315 void Manager::Private::on_account_updated(Manager *self, AgAccountId id)
316 {
317- TRACE() << "id =" << id;
318-
319- emit self->accountUpdated(id);
320+ Q_EMIT self->accountUpdated(id);
321 }
322
323 void Manager::Private::on_enabled_event(Manager *self, AgAccountId id)
324 {
325- TRACE() << "id =" << id;
326-
327- emit self->enabledEvent(id);
328+ Q_EMIT self->enabledEvent(id);
329 }
330
331 /*!
332@@ -230,8 +222,6 @@
333 */
334 Manager::~Manager()
335 {
336- TRACE();
337-
338 g_signal_handlers_disconnect_by_func
339 (d->m_manager, (void *)&Private::on_enabled_event, this);
340 g_signal_handlers_disconnect_by_func
341@@ -255,8 +245,6 @@
342 */
343 Account *Manager::account(const AccountId &id) const
344 {
345- TRACE() << "get account id: " << id;
346-
347 GError *error = NULL;
348 AgAccount *account = ag_manager_load_account(d->m_manager, id, &error);
349
350@@ -349,8 +337,6 @@
351 */
352 Account *Manager::createAccount(const QString &providerName)
353 {
354- TRACE() << providerName;
355-
356 AgAccount *account =
357 ag_manager_create_account(d->m_manager,
358 providerName.toUtf8().constData());
359@@ -373,7 +359,6 @@
360 */
361 Service Manager::service(const QString &serviceName) const
362 {
363- TRACE() << serviceName;
364 AgService *service =
365 ag_manager_get_service(d->m_manager,
366 serviceName.toUtf8().constData());
367@@ -392,7 +377,6 @@
368 */
369 ServiceList Manager::serviceList(const QString &serviceType) const
370 {
371- TRACE() << serviceType;
372 GList *list;
373
374 if (serviceType.isEmpty()) {
375@@ -401,7 +385,6 @@
376 list = ag_manager_list_services_by_type(d->m_manager,
377 serviceType.toUtf8().constData());
378 }
379- TRACE() << "found:" << g_list_length(list);
380
381 /* convert glist -> ServiceList */
382 ServiceList servList;
383@@ -426,7 +409,6 @@
384 */
385 Provider Manager::provider(const QString &providerName) const
386 {
387- TRACE() << providerName;
388 AgProvider *provider;
389
390 provider = ag_manager_get_provider(d->m_manager,
391
392=== modified file 'Accounts/provider.cpp'
393--- Accounts/provider.cpp 2012-03-20 06:33:33 +0000
394+++ Accounts/provider.cpp 2013-02-21 10:14:20 +0000
395@@ -46,7 +46,6 @@
396 Provider::Provider(AgProvider *provider, ReferenceMode mode):
397 m_provider(provider)
398 {
399- TRACE();
400 if (m_provider != 0 && mode == AddReference)
401 ag_provider_ref(m_provider);
402 }
403@@ -83,8 +82,6 @@
404
405 Provider::~Provider()
406 {
407- TRACE();
408-
409 ag_provider_unref(m_provider);
410 m_provider = 0;
411 }
412
413=== modified file 'Accounts/service-type.cpp'
414--- Accounts/service-type.cpp 2012-05-21 12:35:18 +0000
415+++ Accounts/service-type.cpp 2013-02-21 10:14:20 +0000
416@@ -49,7 +49,6 @@
417 m_serviceType(serviceType),
418 m_tags(0)
419 {
420- TRACE();
421 if (m_serviceType != 0 && mode == AddReference)
422 ag_service_type_ref(m_serviceType);
423 }
424@@ -88,7 +87,6 @@
425
426 ServiceType::~ServiceType()
427 {
428- TRACE();
429 if (m_serviceType != 0) {
430 ag_service_type_unref(m_serviceType);
431 m_serviceType = 0;
432
433=== modified file 'Accounts/service.cpp'
434--- Accounts/service.cpp 2012-05-21 12:35:18 +0000
435+++ Accounts/service.cpp 2013-02-21 10:14:20 +0000
436@@ -87,8 +87,6 @@
437
438 Service::~Service()
439 {
440- TRACE();
441-
442 if (m_service != 0) {
443 ag_service_unref(m_service);
444 m_service = 0;
445
446=== modified file 'Accounts/utils.cpp'
447--- Accounts/utils.cpp 2013-01-18 11:55:30 +0000
448+++ Accounts/utils.cpp 2013-02-21 10:14:20 +0000
449@@ -48,7 +48,7 @@
450 GVariantBuilder builder;
451
452 g_variant_builder_init(&builder, G_VARIANT_TYPE_STRING_ARRAY);
453- foreach (const QString &string, stringList) {
454+ Q_FOREACH (const QString &string, stringList) {
455 g_variant_builder_add(&builder, "s", string.toUtf8().constData());
456 }
457 return g_variant_builder_end(&builder);
458
459=== modified file 'common-vars.pri'
460--- common-vars.pri 2013-02-19 07:21:35 +0000
461+++ common-vars.pri 2013-02-21 10:14:20 +0000
462@@ -15,7 +15,7 @@
463 # Project version
464 # remember to update debian/* files if you changes this
465 #-----------------------------------------------------------------------------
466-PROJECT_VERSION = 1.5
467+PROJECT_VERSION = 1.6
468
469 #-----------------------------------------------------------------------------
470 # Library version
471
472=== modified file 'debian/changelog'
473--- debian/changelog 2013-02-19 07:21:35 +0000
474+++ debian/changelog 2013-02-21 10:14:20 +0000
475@@ -1,3 +1,16 @@
476+libaccounts-qt (1.6-0ubuntu1) raring; urgency=low
477+
478+ * New upstream release.
479+ - Make libaccounts-qt compile with QT_NO_KEYWORDS
480+ - Tests: increase coverage (now 93%)
481+ - Make AccountService::account() always return a valid account
482+ - Remove excessive debug verbosity
483+ - Fixed pkg-config requires for accounts-qt5
484+ - Documentation fixes for out-of-tree builds
485+
486+
487+ -- Alberto Mardegan <alberto.mardegan@canonical.com> Thu, 21 Feb 2013 11:47:25 +0200
488+
489 libaccounts-qt (1.5-0ubuntu1) raring; urgency=low
490
491 [ Robert Bruce Park ]
492
493=== modified file 'doc/doc.pri'
494--- doc/doc.pri 2011-03-18 15:05:38 +0000
495+++ doc/doc.pri 2013-02-21 10:14:20 +0000
496@@ -10,7 +10,7 @@
497 # must exist _before_ qmake generates the Makefile...so, make sure our
498 # documentation target folders exist in the current build folder
499 for( folder, DOC_FOLDERS ) {
500- system( mkdir -p $$(PWD)/$${folder} )
501+ system( mkdir -p $${TOP_BUILD_DIR}/$${folder} )
502 }
503
504
505@@ -61,7 +61,7 @@
506 #-----------------------------------------------------------------------------
507 documentation.path = $${INSTALL_PREFIX}/share/doc/$${PROJECT_NAME}
508 for( folder, DOC_FOLDERS ) {
509- documentation.files += $${folder}
510+ documentation.files += $${TOP_BUILD_DIR}/$${folder}
511 }
512 # make sure docs are generated before trying to install anything
513 documentation.depends = docs
514
515=== modified file 'tests/MyProvider.provider'
516--- tests/MyProvider.provider 2010-03-08 12:41:43 +0000
517+++ tests/MyProvider.provider 2013-02-21 10:14:20 +0000
518@@ -2,4 +2,15 @@
519 <provider id="MyProvider">
520 <name>My Provider</name>
521 <icon>general_myprovider</icon>
522+ <translations>accounts</translations>
523+
524+ <template>
525+ <group name="auth">
526+ <setting name="method">oauth2</setting>
527+ <setting name="mechanism">user_agent</setting>
528+ <group name="oauth2/user_agent">
529+ <setting name="Host">myserver.example</setting>
530+ </group>
531+ </group>
532+ </template>
533 </provider>
534
535=== modified file 'tests/MyService.service'
536--- tests/MyService.service 2012-03-20 06:33:27 +0000
537+++ tests/MyService.service 2013-02-21 10:14:20 +0000
538@@ -4,6 +4,11 @@
539 <name>My Service</name>
540 <icon>general_myservice</icon>
541 <provider>MyProvider</provider>
542+ <translations>accounts</translations>
543+ <tags>
544+ <tag>email</tag>
545+ <tag>e-mail</tag>
546+ </tags>
547
548 <!-- default settings (account settings have precedence over these) -->
549 <template>
550
551=== modified file 'tests/accountstest.cpp'
552--- tests/accountstest.cpp 2013-02-15 12:20:43 +0000
553+++ tests/accountstest.cpp 2013-02-21 10:14:20 +0000
554@@ -62,8 +62,16 @@
555 /* manager */
556 void AccountsTest::managerTestCase()
557 {
558- Manager * mgr=new Manager();
559- QVERIFY(mgr!=NULL);
560+ Manager *mgr = new Manager();
561+ QVERIFY(mgr != NULL);
562+ QCOMPARE(mgr->serviceType(), QString());
563+
564+ mgr->setAbortOnTimeout(true);
565+ QCOMPARE(mgr->abortOnTimeout(), true);
566+
567+ mgr->setTimeout(123);
568+ QCOMPARE(mgr->timeout(), quint32(123));
569+
570 delete mgr;
571 }
572
573@@ -116,21 +124,19 @@
574 {
575 clearDb();
576
577- Manager * mgr=new Manager();
578- QVERIFY(mgr!=NULL);
579+ Manager *mgr = new Manager();
580+ QVERIFY(mgr != NULL);
581
582 // make sure there is account
583- Account* account = mgr->createAccount(NULL);
584+ Account *account = mgr->createAccount(NULL);
585 account->sync();
586
587 AccountIdList list = mgr->accountList(NULL);
588-
589 QVERIFY(!list.isEmpty());
590 QCOMPARE(list.size(), 1);
591
592- for (int i = 0; i < list.size(); i++) {
593- qDebug("%d : %d",i,list.at(i));
594- }
595+ list = mgr->accountList("e-mail");
596+ QVERIFY(list.isEmpty());
597
598 delete account;
599 delete mgr;
600@@ -149,11 +155,33 @@
601
602 delete account;
603
604+ /* Test invalid provider */
605+ Provider invalid;
606+ QVERIFY(!invalid.isValid());
607+
608 /* Check listing and loading of XML files */
609 Provider provider = mgr->provider("MyProvider");
610 QVERIFY(provider.isValid());
611
612 QCOMPARE(provider.displayName(), QString("My Provider"));
613+ QCOMPARE(provider.iconName(), QString("general_myprovider"));
614+ QCOMPARE(provider.trCatalog(), QString("accounts"));
615+
616+ QDomDocument dom = provider.domDocument();
617+ QDomElement root = dom.documentElement();
618+ QCOMPARE(root.tagName(), QString("provider"));
619+
620+ /* Test copy constructor */
621+ Provider copy(provider);
622+ QCOMPARE(copy.displayName(), QString("My Provider"));
623+
624+ /* Test assignment */
625+ copy = provider;
626+ QCOMPARE(copy.displayName(), QString("My Provider"));
627+ copy = invalid;
628+ QVERIFY(!copy.isValid());
629+ copy = provider;
630+ QCOMPARE(copy.displayName(), QString("My Provider"));
631
632 ProviderList providers = mgr->providerList();
633 QVERIFY(!providers.isEmpty());
634@@ -171,6 +199,15 @@
635 Service service = mgr->service(MYSERVICE);
636 QVERIFY(service.isValid());
637 QCOMPARE(service.name(), MYSERVICE);
638+ QCOMPARE(service.iconName(), QString("general_myservice"));
639+ QCOMPARE(service.trCatalog(), QString("accounts"));
640+ QStringList tags;
641+ tags << "email" << "e-mail";
642+ QCOMPARE(service.tags(), tags.toSet());
643+ // Called twice, because the second time it returns a cached result
644+ QCOMPARE(service.tags(), tags.toSet());
645+ QVERIFY(service.hasTag("email"));
646+ QVERIFY(!service.hasTag("chat"));
647
648 service = mgr->service(SERVICE);
649 QVERIFY(!service.isValid());
650@@ -180,16 +217,18 @@
651
652 void AccountsTest::serviceListTestCase()
653 {
654- Manager * mgr=new Manager();
655- QVERIFY(mgr!=NULL);
656+ Manager *mgr = new Manager();
657+ QVERIFY(mgr != NULL);
658
659 ServiceList list = mgr->serviceList();
660 QVERIFY(!list.isEmpty());
661 QCOMPARE(list.count(), 2);
662
663- for (int i = 0; i < list.size(); i++) {
664- qDebug("%d : %s",i,list.at(i).name().toLocal8Bit().constData());
665- }
666+ list = mgr->serviceList("e-mail");
667+ QCOMPARE(list.count(), 1);
668+
669+ list = mgr->serviceList("sharing");
670+ QCOMPARE(list.count(), 1);
671
672 delete mgr;
673 }
674@@ -223,6 +262,7 @@
675
676 Account *account = mgr->createAccount(PROVIDER);
677 QVERIFY(account!=NULL);
678+ QVERIFY(account->isWritable());
679
680 delete account;
681 delete mgr;
682@@ -260,6 +300,24 @@
683 QVERIFY(!list.isEmpty());
684 QCOMPARE(list.count(), 1);
685
686+ list = account->services("e-mail");
687+ QCOMPARE(list.count(), 1);
688+
689+ list = account->services("unsupported");
690+ QVERIFY(list.isEmpty());
691+
692+ Service service = mgr->service(MYSERVICE);
693+ QVERIFY(service.isValid());
694+
695+ /* Test default settings */
696+ account->selectService(service);
697+ QCOMPARE(account->value("parameters/server").toString(),
698+ QString("talk.google.com"));
699+ QCOMPARE(account->valueAsInt("parameters/port"), 5223);
700+ SettingSource source;
701+ QCOMPARE(account->valueAsInt("parameters/port", 0, &source), 5223);
702+ QCOMPARE(source, TEMPLATE);
703+
704 delete account;
705 delete mgr;
706 }
707@@ -339,6 +397,9 @@
708 QStringList names;
709 names << "Tom" << "Dick" << "Harry";
710 account->setValue("names", names);
711+ account->setValue("big distance", quint64(3));
712+ account->setValue("big difference", qint64(-300));
713+ account->setValue("boolean", false);
714 account->sync();
715
716 QTest::qWait(10);
717@@ -361,10 +422,22 @@
718 QVERIFY(source == ACCOUNT);
719
720 QCOMPARE(account->value("names").toStringList(), names);
721+ QCOMPARE(account->value("big distance").toULongLong(), quint64(3));
722+ QCOMPARE(account->value("big difference").toLongLong(), qint64(-300));
723
724 /* test the convenience methods */
725 QString strval = account->valueAsString("test");
726 QCOMPARE (strval, QString("value"));
727+ QCOMPARE(account->valueAsString("test", "Hi", &source), QString("value"));
728+ QCOMPARE(source, ACCOUNT);
729+
730+ QCOMPARE(account->valueAsBool("boolean"), false);
731+ QCOMPARE(account->valueAsBool("boolean", true, &source), false);
732+ QCOMPARE(source, ACCOUNT);
733+
734+ QCOMPARE(account->valueAsUInt64("big distance"), quint64(3));
735+ QCOMPARE(account->valueAsUInt64("big distance", 10, &source), quint64(3));
736+ QCOMPARE(source, ACCOUNT);
737
738 strval = account->valueAsString("test_unexisting", "hello");
739 QCOMPARE (strval, QString("hello"));
740@@ -523,6 +596,12 @@
741 AccountService *accountService = new AccountService(account, service);
742 QVERIFY(accountService != NULL);
743
744+ QCOMPARE(accountService->account()->providerName(),
745+ account->providerName());
746+ Service copy = accountService->service();
747+ QVERIFY(copy.isValid());
748+ QCOMPARE(copy.name(), service.name());
749+
750 QObject::connect(accountService, SIGNAL(changed()),
751 this, SLOT(onAccountServiceChanged()));
752 QObject::connect(accountService, SIGNAL(enabled(bool)),
753@@ -550,8 +629,9 @@
754 account->sync();
755
756 /* ensure that the callbacks have been called the correct number of times */
757- int changedEmissions = 0;
758- QCOMPARE(spyChanged.count(), ++changedEmissions);
759+ QCOMPARE(spyChanged.count(), 1);
760+ spyChanged.clear();
761+ spyEnabled.clear();
762
763 QStringList expectedChanges;
764 expectedChanges << "parameters/server";
765@@ -562,16 +642,15 @@
766 UTF8("www.example.com"));
767 QCOMPARE(accountService->enabled(), true);
768
769- int enabledEmissions = spyChanged.count();
770-
771 /* check the enabled status */
772 account->selectService();
773 account->setEnabled(false);
774 account->sync();
775- QCOMPARE(spyChanged.count(), changedEmissions);
776- QCOMPARE(spyEnabled.count(), ++enabledEmissions);
777+ QCOMPARE(spyChanged.count(), 0);
778+ QCOMPARE(spyEnabled.count(), 1);
779 QCOMPARE(accountService->enabled(), false);
780 QCOMPARE(m_accountServiceEnabledValue, accountService->enabled());
781+ spyEnabled.clear();
782
783 /* enable the account, but disable the service */
784 account->selectService();
785@@ -579,18 +658,19 @@
786 account->selectService(service);
787 account->setEnabled(false);
788 account->sync();
789- QCOMPARE(spyEnabled.count(), enabledEmissions);
790+ QCOMPARE(spyEnabled.count(), 0);
791 QCOMPARE(accountService->enabled(), false);
792
793 /* re-enable the service */
794 account->selectService(service);
795 account->setEnabled(true);
796 account->sync();
797- QCOMPARE(spyEnabled.count(), ++enabledEmissions);
798+ QCOMPARE(spyEnabled.count(), 1);
799 QCOMPARE(accountService->enabled(), true);
800 QCOMPARE(m_accountServiceEnabledValue, accountService->enabled());
801+ spyEnabled.clear();
802+ spyChanged.clear();
803
804- changedEmissions = spyChanged.count();
805
806 /* test some more APIs */
807 QStringList expectedList;
808@@ -605,6 +685,21 @@
809 expectedList << "parameters";
810 QCOMPARE(accountService->childGroups().toSet(), expectedList.toSet());
811
812+ /* Remove one key */
813+ accountService->remove("parameters/port");
814+ account->sync();
815+ QCOMPARE(spyChanged.count(), 1);
816+ QCOMPARE(m_accountServiceChangedFields, QStringList("parameters/port"));
817+ spyChanged.clear();
818+
819+ /* remove all keys */
820+ accountService->clear();
821+ account->sync();
822+ QCOMPARE(spyChanged.count(), 1);
823+ QVERIFY(m_accountServiceChangedFields.contains("parameters/server"));
824+ QVERIFY(m_accountServiceChangedFields.contains("parameters/old-ssl"));
825+ spyChanged.clear();
826+
827 delete accountService;
828 delete account;
829 delete mgr;
830@@ -1038,12 +1133,50 @@
831
832 QCOMPARE(authData.parameters(), expectedParameters);
833
834+ /* Test copy constructor */
835+ AuthData copy(authData);
836+ QCOMPARE(copy.parameters(), expectedParameters);
837+
838+ /* And delete destructor */
839+ AuthData *copy2 = new AuthData(authData);
840+ QCOMPARE(copy2->parameters(), expectedParameters);
841+ delete copy2;
842+
843 delete accountService;
844 delete account;
845 delete manager;
846 QVERIFY(service.isValid());
847 }
848
849+void AccountsTest::globalAuthDataTest()
850+{
851+ Manager *manager = new Manager;
852+ QVERIFY(manager != NULL);
853+
854+ Account *account = manager->createAccount("MyProvider");
855+ QVERIFY(account != NULL);
856+
857+ Service service; // global account
858+ QVERIFY(!service.isValid());
859+
860+ AccountService *accountService = new AccountService(account, service);
861+ QVERIFY(accountService != 0);
862+
863+ AuthData authData = accountService->authData();
864+ QCOMPARE(authData.method(), QString("oauth2"));
865+ QCOMPARE(authData.mechanism(), QString("user_agent"));
866+ QCOMPARE(authData.credentialsId(), uint(0));
867+
868+ QVariantMap expectedParameters;
869+ expectedParameters.insert("Host", QString("myserver.example"));
870+
871+ QCOMPARE(authData.parameters(), expectedParameters);
872+
873+ delete accountService;
874+ delete account;
875+ delete manager;
876+}
877+
878 void AccountsTest::listEnabledServices()
879 {
880 clearDb();
881@@ -1082,8 +1215,9 @@
882
883 Manager *mgr = new Manager("e-mail");
884 QVERIFY(mgr != NULL);
885+ QCOMPARE(mgr->serviceType(), QString("e-mail"));
886
887- Account* account = mgr->createAccount("MyProvider");
888+ Account *account = mgr->createAccount("MyProvider");
889 QVERIFY(account != NULL);
890 account->setEnabled(true);
891
892@@ -1094,10 +1228,12 @@
893 account->sync();
894
895 AccountIdList list = mgr->accountListEnabled("e-mail");
896-
897 QVERIFY(!list.isEmpty());
898 QCOMPARE(list.size(), 1);
899
900+ list = mgr->accountListEnabled();
901+ QCOMPARE(list.count(), 1);
902+
903 account->setEnabled(false);
904 account->sync();
905
906@@ -1170,6 +1306,17 @@
907 QCOMPARE(serviceType.trCatalog(), QLatin1String("translation_file"));
908 QCOMPARE(serviceType.iconName(), QLatin1String("email_icon"));
909 QVERIFY(serviceType.tags().contains(QString("email")));
910+ // called twice, because the second time it returns a cached result
911+ QVERIFY(serviceType.tags().contains(QString("email")));
912+ QVERIFY(serviceType.hasTag(QString("email")));
913+ QVERIFY(!serviceType.hasTag(QString("fake-email")));
914+
915+ QDomDocument dom = serviceType.domDocument();
916+ QDomElement root = dom.documentElement();
917+ QCOMPARE(root.tagName(), QString("service-type"));
918+
919+ ServiceType copy(serviceType);
920+ QCOMPARE(copy.displayName(), QLatin1String("Electronic mail"));
921
922 delete mgr;
923 }
924
925=== modified file 'tests/accountstest.h'
926--- tests/accountstest.h 2013-02-15 12:20:43 +0000
927+++ tests/accountstest.h 2013-02-21 10:14:20 +0000
928@@ -96,6 +96,7 @@
929 void credentialsIdTest();
930
931 void authDataTest();
932+ void globalAuthDataTest();
933
934 void listEnabledServices();
935

Subscribers

People subscribed via source and target branches

to all changes: