[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdepim] kaddressbook/merge: Add new unittest
From:       Montel Laurent <montel () kde ! org>
Date:       2014-04-30 20:43:05
Message-ID: E1WfbLN-0001z9-FG () scm ! kde ! org
[Download RAW message or body]

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/mergecontactduplicatecontactdialogtest.cpp    \
[License: GPL (v2)] C  +10   -17   \
kaddressbook/merge/tests/mergecontactduplicatecontactdialogtest.h [from: \
kaddressbook/merge/mergecontactduplicatecontactdialog.h - 056% similarity] C  +4    \
-20   kaddressbook/merge/tests/searchpotentialduplicatecontactjobtest.cpp [from: \
kaddressbook/merge/mergecontactduplicatecontactdialog.h - 055% similarity] C  +6    \
-18   kaddressbook/merge/tests/searchpotentialduplicatecontactjobtest.h [from: \
kaddressbook/merge/mergecontactduplicatecontactdialog.h - 056% similarity]

http://commits.kde.org/kdepim/428631f06408c5e03f6697e101cc60a477903de2

diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.cpp \
b/kaddressbook/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 <KLocalizedString>
 #include <KSharedConfig>
 #include <KConfigGroup>
 #include <KGlobal>
 
+#include <QStackedWidget>
+#include <QLabel>
+
 using namespace KABMergeContacts;
 
-MergeContactDuplicateContactDialog::MergeContactDuplicateContactDialog(QWidget \
*parent) +MergeContactDuplicateContactDialog::MergeContactDuplicateContactDialog(const \
Akonadi::Item::List &list, QWidget *parent)  : KDialog(parent)
 {
     setCaption( i18n( "Select Contacts to merge" ) );
     setButtons( Close );
+    mStackedWidget = new QStackedWidget(this);
+    mStackedWidget->setObjectName(QLatin1String("stackedwidget"));
+
     mMergeContact = new MergeContactShowResultTabWidget;
-    setMainWidget(mMergeContact);
+    mMergeContact->setObjectName(QLatin1String("mergecontact"));
+    mStackedWidget->addWidget(mMergeContact);
+
+    mNoContactSelected = new QLabel(i18n("No contacts selected."));
+    mNoContactSelected->setObjectName(QLatin1String("nocontactselected"));
+    mStackedWidget->addWidget(mNoContactSelected);
+
+    mNoDuplicateContactFound = new QLabel(i18n("No contact duplicated found."));
+    mNoDuplicateContactFound->setObjectName(QLatin1String("noduplicatecontactfound"));
 +    mStackedWidget->addWidget(mNoDuplicateContactFound);
+
+
+    mNoEnoughContactSelected = new QLabel(i18n("You must select at least two \
elements.")); +    mNoEnoughContactSelected->setObjectName(QLatin1String("noenoughcontactselected"));
 +    mStackedWidget->addWidget(mNoEnoughContactSelected);
+
+
+    setMainWidget(mStackedWidget);
     readConfig();
+    searchPotentialDuplicateContacts(list);
 }
 
 MergeContactDuplicateContactDialog::~MergeContactDuplicateContactDialog()
@@ -42,6 +68,19 @@ MergeContactDuplicateContactDialog::~MergeContactDuplicateContactDialog()
  
 }
 
+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 = new \
SearchPotentialDuplicateContactJob(list, this); +        //job->start();
+    }
+}
+
 void MergeContactDuplicateContactDialog::readConfig()
 {
     KConfigGroup grp( KGlobal::config(), "MergeContactDuplicateContactDialog" );
diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.h \
b/kaddressbook/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 <KDialog>
+#include <Akonadi/Item>
 
+#include "kaddressbook_export.h"
+class QStackedWidget;
+class QLabel;
 namespace KABMergeContacts {
 class MergeContactShowResultTabWidget;
-class MergeContactDuplicateContactDialog : public KDialog
+class KADDRESSBOOK_EXPORT MergeContactDuplicateContactDialog : public KDialog
 {
     Q_OBJECT
 public:
-    explicit MergeContactDuplicateContactDialog(QWidget *parent=0);
+    explicit MergeContactDuplicateContactDialog(const Akonadi::Item::List &list, \
QWidget *parent=0);  ~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/kaddressbook/merge/searchpotentialduplicatecontactjob.h index 6926e77..c785eff \
                100644
--- a/kaddressbook/merge/searchpotentialduplicatecontactjob.h
+++ b/kaddressbook/merge/searchpotentialduplicatecontactjob.h
@@ -21,8 +21,11 @@
 
 #include <QObject>
 #include <Akonadi/Item>
+
+#include "kaddressbook_export.h"
+
 namespace KABMergeContacts {
-class SearchPotentialDuplicateContactJob : public QObject
+class KADDRESSBOOK_EXPORT SearchPotentialDuplicateContactJob : public QObject
 {
     Q_OBJECT
 public:
diff --git a/kaddressbook/merge/tests/CMakeLists.txt \
b/kaddressbook/merge/tests/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 "" \
"kaddressbookprivate")  add_akonadi_isolated_test_advanced( \
mergecontactshowresultdialogtest.cpp "" "kaddressbookprivate")  \
add_akonadi_isolated_test_advanced( mergecontactselectinformationdialogtest.cpp "" \
"kaddressbookprivate") +add_akonadi_isolated_test_advanced( \
mergecontactduplicatecontactdialogtest.cpp "" "kaddressbookprivate") \
+add_akonadi_isolated_test_advanced( searchpotentialduplicatecontactjobtest.cpp "" \
                "kaddressbookprivate")
diff --git a/kaddressbook/merge/tests/mergecontactduplicatecontactdialogtest.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 <montel@kde.org>
+
+  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 <qtest_kde.h>
+
+#include <QStackedWidget>
+using namespace KABMergeContacts;
+
+MergeContactDuplicateContactDialogTest::MergeContactDuplicateContactDialogTest()
+{
+}
+
+void MergeContactDuplicateContactDialogTest::shouldHaveDefaultValueOnCreation()
+{
+    Akonadi::Item::List lst;
+    MergeContactDuplicateContactDialog dlg(lst);
+    dlg.show();
+    QStackedWidget *stackedWidget = qFindChild<QStackedWidget *>(&dlg, \
QLatin1String("stackedwidget")); +    QVERIFY(stackedWidget);
+    QCOMPARE(stackedWidget->currentWidget()->objectName(), \
QLatin1String("nocontactselected")); +}
+
+void MergeContactDuplicateContactDialogTest::shouldShowNoEnoughPageWhenSelectOneContact()
 +{
+    Akonadi::Item::List lst;
+    lst << Akonadi::Item(42);
+    MergeContactDuplicateContactDialog dlg(lst);
+    dlg.show();
+    QStackedWidget *stackedWidget = qFindChild<QStackedWidget *>(&dlg, \
QLatin1String("stackedwidget")); +    QVERIFY(stackedWidget);
+    QCOMPARE(stackedWidget->currentWidget()->objectName(), \
QLatin1String("noenoughcontactselected")); +}
+
+
+QTEST_KDEMAIN(MergeContactDuplicateContactDialogTest, GUI)
diff --git a/kaddressbook/merge/mergecontactduplicatecontactdialog.h \
b/kaddressbook/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 <KDialog>
+#ifndef MERGECONTACTDUPLICATECONTACTDIALOGTEST_H
+#define MERGECONTACTDUPLICATECONTACTDIALOGTEST_H
 
-namespace KABMergeContacts {
-class MergeContactShowResultTabWidget;
-class MergeContactDuplicateContactDialog : public KDialog
+#include <QObject>
+
+class MergeContactDuplicateContactDialogTest : public QObject
 {
     Q_OBJECT
 public:
-    explicit MergeContactDuplicateContactDialog(QWidget *parent=0);
-    ~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/kaddressbook/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 <KDialog>
+#include <qtest_kde.h>
 
-namespace KABMergeContacts {
-class MergeContactShowResultTabWidget;
-class MergeContactDuplicateContactDialog : public KDialog
+SearchPotentialDuplicateContactJobTest::SearchPotentialDuplicateContactJobTest()
 {
-    Q_OBJECT
-public:
-    explicit MergeContactDuplicateContactDialog(QWidget *parent=0);
-    ~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/kaddressbook/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 <KDialog>
+#include <QObject>
 
-namespace KABMergeContacts {
-class MergeContactShowResultTabWidget;
-class MergeContactDuplicateContactDialog : public KDialog
+class SearchPotentialDuplicateContactJobTest : public QObject
 {
     Q_OBJECT
 public:
-    explicit MergeContactDuplicateContactDialog(QWidget *parent=0);
-    ~MergeContactDuplicateContactDialog();
-
-private slots:
-    void slotAddDuplicateContact();
-
-private:
-    void readConfig();
-    void writeConfig();
-    MergeContactShowResultTabWidget *mMergeContact;
+    SearchPotentialDuplicateContactJobTest();
 };
-}
 
-#endif // MERGECONTACTDUPLICATECONTACTDIALOG_H
+#endif // SEARCHPOTENTIALDUPLICATECONTACTJOBTEST_H


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic