From kde-commits Wed Apr 30 20:43:05 2014 From: Montel Laurent Date: Wed, 30 Apr 2014 20:43:05 +0000 To: kde-commits Subject: [kdepim] kaddressbook/merge: Add new unittest Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=139889059431397 Git commit 428631f06408c5e03f6697e101cc60a477903de2 by Montel Laurent. Committed on 30/04/2014 at 20:42. Pushed by mlaurent into branch 'master'. Add new unittest M +41 -2 kaddressbook/merge/mergecontactduplicatecontactdialog.cpp M +11 -2 kaddressbook/merge/mergecontactduplicatecontactdialog.h M +4 -1 kaddressbook/merge/searchpotentialduplicatecontactjob.h M +2 -0 kaddressbook/merge/tests/CMakeLists.txt A +53 -0 kaddressbook/merge/tests/mergecontactduplicatecontactdialogt= est.cpp [License: GPL (v2)] C +10 -17 kaddressbook/merge/tests/mergecontactduplicatecontactdialogt= est.h [from: kaddressbook/merge/mergecontactduplicatecontactdialog.h - 056%= similarity] C +4 -20 kaddressbook/merge/tests/searchpotentialduplicatecontactjobt= est.cpp [from: kaddressbook/merge/mergecontactduplicatecontactdialog.h - 05= 5% similarity] C +6 -18 kaddressbook/merge/tests/searchpotentialduplicatecontactjobt= est.h [from: kaddressbook/merge/mergecontactduplicatecontactdialog.h - 056%= similarity] http://commits.kde.org/kdepim/428631f06408c5e03f6697e101cc60a477903de2 diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.cpp b/ka= ddressbook/merge/mergecontactduplicatecontactdialog.cpp index 7ff0e7e..a0f1589 100644 --- a/kaddressbook/merge/mergecontactduplicatecontactdialog.cpp +++ b/kaddressbook/merge/mergecontactduplicatecontactdialog.cpp @@ -20,21 +20,47 @@ = #include "mergecontactshowresulttabwidget.h" = +#include "searchpotentialduplicatecontactjob.h" + #include #include #include #include = +#include +#include + using namespace KABMergeContacts; = -MergeContactDuplicateContactDialog::MergeContactDuplicateContactDialog(QWi= dget *parent) +MergeContactDuplicateContactDialog::MergeContactDuplicateContactDialog(con= st Akonadi::Item::List &list, QWidget *parent) : KDialog(parent) { setCaption( i18n( "Select Contacts to merge" ) ); setButtons( Close ); + mStackedWidget =3D new QStackedWidget(this); + mStackedWidget->setObjectName(QLatin1String("stackedwidget")); + mMergeContact =3D new MergeContactShowResultTabWidget; - setMainWidget(mMergeContact); + mMergeContact->setObjectName(QLatin1String("mergecontact")); + mStackedWidget->addWidget(mMergeContact); + + mNoContactSelected =3D new QLabel(i18n("No contacts selected.")); + mNoContactSelected->setObjectName(QLatin1String("nocontactselected")); + mStackedWidget->addWidget(mNoContactSelected); + + mNoDuplicateContactFound =3D new QLabel(i18n("No contact duplicated fo= und.")); + mNoDuplicateContactFound->setObjectName(QLatin1String("noduplicatecont= actfound")); + mStackedWidget->addWidget(mNoDuplicateContactFound); + + + mNoEnoughContactSelected =3D new QLabel(i18n("You must select at least= two elements.")); + mNoEnoughContactSelected->setObjectName(QLatin1String("noenoughcontact= selected")); + mStackedWidget->addWidget(mNoEnoughContactSelected); + + + setMainWidget(mStackedWidget); readConfig(); + searchPotentialDuplicateContacts(list); } = MergeContactDuplicateContactDialog::~MergeContactDuplicateContactDialog() @@ -42,6 +68,19 @@ MergeContactDuplicateContactDialog::~MergeContactDuplica= teContactDialog() = } = +void MergeContactDuplicateContactDialog::searchPotentialDuplicateContacts(= const Akonadi::Item::List &list) +{ + if (list.isEmpty()) { + mStackedWidget->setCurrentWidget(mNoContactSelected); + } else if (list.count() < 2){ + mStackedWidget->setCurrentWidget(mNoEnoughContactSelected); + } else { + //TODO + //SearchPotentialDuplicateContactJob *job =3D new SearchPotentialD= uplicateContactJob(list, this); + //job->start(); + } +} + void MergeContactDuplicateContactDialog::readConfig() { KConfigGroup grp( KGlobal::config(), "MergeContactDuplicateContactDial= og" ); diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.h b/kadd= ressbook/merge/mergecontactduplicatecontactdialog.h index 7ebc3ba..842d607 100644 --- a/kaddressbook/merge/mergecontactduplicatecontactdialog.h +++ b/kaddressbook/merge/mergecontactduplicatecontactdialog.h @@ -19,23 +19,32 @@ #define MERGECONTACTDUPLICATECONTACTDIALOG_H = #include +#include = +#include "kaddressbook_export.h" +class QStackedWidget; +class QLabel; namespace KABMergeContacts { class MergeContactShowResultTabWidget; -class MergeContactDuplicateContactDialog : public KDialog +class KADDRESSBOOK_EXPORT MergeContactDuplicateContactDialog : public KDia= log { Q_OBJECT public: - explicit MergeContactDuplicateContactDialog(QWidget *parent=3D0); + explicit MergeContactDuplicateContactDialog(const Akonadi::Item::List = &list, QWidget *parent=3D0); ~MergeContactDuplicateContactDialog(); = private slots: void slotAddDuplicateContact(); = private: + void searchPotentialDuplicateContacts(const Akonadi::Item::List &list); void readConfig(); void writeConfig(); MergeContactShowResultTabWidget *mMergeContact; + QLabel *mNoContactSelected; + QLabel *mNoDuplicateContactFound; + QLabel *mNoEnoughContactSelected; + QStackedWidget *mStackedWidget; }; } = diff --git a/kaddressbook/merge/searchpotentialduplicatecontactjob.h b/kadd= ressbook/merge/searchpotentialduplicatecontactjob.h index 6926e77..c785eff 100644 --- a/kaddressbook/merge/searchpotentialduplicatecontactjob.h +++ b/kaddressbook/merge/searchpotentialduplicatecontactjob.h @@ -21,8 +21,11 @@ = #include #include + +#include "kaddressbook_export.h" + namespace KABMergeContacts { -class SearchPotentialDuplicateContactJob : public QObject +class KADDRESSBOOK_EXPORT SearchPotentialDuplicateContactJob : public QObj= ect { Q_OBJECT public: diff --git a/kaddressbook/merge/tests/CMakeLists.txt b/kaddressbook/merge/t= ests/CMakeLists.txt index 73f8c6b..1bb4050 100644 --- a/kaddressbook/merge/tests/CMakeLists.txt +++ b/kaddressbook/merge/tests/CMakeLists.txt @@ -21,3 +21,5 @@ set(KDEPIMLIBS_RUN_SQLITE_ISOLATED_TESTS TRUE) add_akonadi_isolated_test_advanced( mergecontactinfowidgettest.cpp "" "kad= dressbookprivate") add_akonadi_isolated_test_advanced( mergecontactshowresultdialogtest.cpp "= " "kaddressbookprivate") add_akonadi_isolated_test_advanced( mergecontactselectinformationdialogtes= t.cpp "" "kaddressbookprivate") +add_akonadi_isolated_test_advanced( mergecontactduplicatecontactdialogtest= .cpp "" "kaddressbookprivate") +add_akonadi_isolated_test_advanced( searchpotentialduplicatecontactjobtest= .cpp "" "kaddressbookprivate") diff --git a/kaddressbook/merge/tests/mergecontactduplicatecontactdialogtes= t.cpp b/kaddressbook/merge/tests/mergecontactduplicatecontactdialogtest.cpp new file mode 100644 index 0000000..21e495c --- /dev/null +++ b/kaddressbook/merge/tests/mergecontactduplicatecontactdialogtest.cpp @@ -0,0 +1,53 @@ +/* + Copyright (c) 2014 Montel Laurent + + This program 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. + + This program 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 this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ + +#include "mergecontactduplicatecontactdialogtest.h" + +#include "../mergecontactduplicatecontactdialog.h" + +#include + +#include +using namespace KABMergeContacts; + +MergeContactDuplicateContactDialogTest::MergeContactDuplicateContactDialog= Test() +{ +} + +void MergeContactDuplicateContactDialogTest::shouldHaveDefaultValueOnCreat= ion() +{ + Akonadi::Item::List lst; + MergeContactDuplicateContactDialog dlg(lst); + dlg.show(); + QStackedWidget *stackedWidget =3D qFindChild(&dlg, Q= Latin1String("stackedwidget")); + QVERIFY(stackedWidget); + QCOMPARE(stackedWidget->currentWidget()->objectName(), QLatin1String("= nocontactselected")); +} + +void MergeContactDuplicateContactDialogTest::shouldShowNoEnoughPageWhenSel= ectOneContact() +{ + Akonadi::Item::List lst; + lst << Akonadi::Item(42); + MergeContactDuplicateContactDialog dlg(lst); + dlg.show(); + QStackedWidget *stackedWidget =3D qFindChild(&dlg, Q= Latin1String("stackedwidget")); + QVERIFY(stackedWidget); + QCOMPARE(stackedWidget->currentWidget()->objectName(), QLatin1String("= noenoughcontactselected")); +} + + +QTEST_KDEMAIN(MergeContactDuplicateContactDialogTest, GUI) diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.h b/kadd= ressbook/merge/tests/mergecontactduplicatecontactdialogtest.h similarity index 56% copy from kaddressbook/merge/mergecontactduplicatecontactdialog.h copy to kaddressbook/merge/tests/mergecontactduplicatecontactdialogtest.h index 7ebc3ba..31de7c8 100644 --- a/kaddressbook/merge/mergecontactduplicatecontactdialog.h +++ b/kaddressbook/merge/tests/mergecontactduplicatecontactdialogtest.h @@ -15,28 +15,21 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ = -#ifndef MERGECONTACTDUPLICATECONTACTDIALOG_H -#define MERGECONTACTDUPLICATECONTACTDIALOG_H = -#include +#ifndef MERGECONTACTDUPLICATECONTACTDIALOGTEST_H +#define MERGECONTACTDUPLICATECONTACTDIALOGTEST_H = -namespace KABMergeContacts { -class MergeContactShowResultTabWidget; -class MergeContactDuplicateContactDialog : public KDialog +#include + +class MergeContactDuplicateContactDialogTest : public QObject { Q_OBJECT public: - explicit MergeContactDuplicateContactDialog(QWidget *parent=3D0); - ~MergeContactDuplicateContactDialog(); - -private slots: - void slotAddDuplicateContact(); + MergeContactDuplicateContactDialogTest(); = -private: - void readConfig(); - void writeConfig(); - MergeContactShowResultTabWidget *mMergeContact; +private Q_SLOTS: + void shouldHaveDefaultValueOnCreation(); + void shouldShowNoEnoughPageWhenSelectOneContact(); }; -} = -#endif // MERGECONTACTDUPLICATECONTACTDIALOG_H +#endif // MERGECONTACTDUPLICATECONTACTDIALOGTEST_H diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.h b/kadd= ressbook/merge/tests/searchpotentialduplicatecontactjobtest.cpp similarity index 55% copy from kaddressbook/merge/mergecontactduplicatecontactdialog.h copy to kaddressbook/merge/tests/searchpotentialduplicatecontactjobtest.cpp index 7ebc3ba..2a6c99a 100644 --- a/kaddressbook/merge/mergecontactduplicatecontactdialog.h +++ b/kaddressbook/merge/tests/searchpotentialduplicatecontactjobtest.cpp @@ -15,28 +15,12 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ = -#ifndef MERGECONTACTDUPLICATECONTACTDIALOG_H -#define MERGECONTACTDUPLICATECONTACTDIALOG_H +#include "searchpotentialduplicatecontactjobtest.h" = -#include +#include = -namespace KABMergeContacts { -class MergeContactShowResultTabWidget; -class MergeContactDuplicateContactDialog : public KDialog +SearchPotentialDuplicateContactJobTest::SearchPotentialDuplicateContactJob= Test() { - Q_OBJECT -public: - explicit MergeContactDuplicateContactDialog(QWidget *parent=3D0); - ~MergeContactDuplicateContactDialog(); - -private slots: - void slotAddDuplicateContact(); - -private: - void readConfig(); - void writeConfig(); - MergeContactShowResultTabWidget *mMergeContact; -}; } = -#endif // MERGECONTACTDUPLICATECONTACTDIALOG_H +QTEST_KDEMAIN(SearchPotentialDuplicateContactJobTest, NoGUI) diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.h b/kadd= ressbook/merge/tests/searchpotentialduplicatecontactjobtest.h similarity index 56% copy from kaddressbook/merge/mergecontactduplicatecontactdialog.h copy to kaddressbook/merge/tests/searchpotentialduplicatecontactjobtest.h index 7ebc3ba..1407596 100644 --- a/kaddressbook/merge/mergecontactduplicatecontactdialog.h +++ b/kaddressbook/merge/tests/searchpotentialduplicatecontactjobtest.h @@ -15,28 +15,16 @@ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ = -#ifndef MERGECONTACTDUPLICATECONTACTDIALOG_H -#define MERGECONTACTDUPLICATECONTACTDIALOG_H +#ifndef SEARCHPOTENTIALDUPLICATECONTACTJOBTEST_H +#define SEARCHPOTENTIALDUPLICATECONTACTJOBTEST_H = -#include +#include = -namespace KABMergeContacts { -class MergeContactShowResultTabWidget; -class MergeContactDuplicateContactDialog : public KDialog +class SearchPotentialDuplicateContactJobTest : public QObject { Q_OBJECT public: - explicit MergeContactDuplicateContactDialog(QWidget *parent=3D0); - ~MergeContactDuplicateContactDialog(); - -private slots: - void slotAddDuplicateContact(); - -private: - void readConfig(); - void writeConfig(); - MergeContactShowResultTabWidget *mMergeContact; + SearchPotentialDuplicateContactJobTest(); }; -} = -#endif // MERGECONTACTDUPLICATECONTACTDIALOG_H +#endif // SEARCHPOTENTIALDUPLICATECONTACTJOBTEST_H