phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.cpp
changeset 45 6b911d05207e
parent 37 ba76fc04e6c2
child 46 bc5a64e5bc3c
--- a/phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.cpp	Fri Jun 04 10:19:18 2010 +0100
+++ b/phonesettings/cpphonesettingsplugins/divertplugin/tsrc/ut_cpdivertplugin/ut_cpdivertplugin.cpp	Wed Jun 23 18:12:20 2010 +0300
@@ -30,7 +30,6 @@
 #include "cpitemdatahelper.h"
 #include "cpdivertitemdata.h"
 #include "psetwrappertypes.h"
-#include "cpdivertselectioncustomitem.h"
 
 #define private public
 #include "cpdivertplugin.h"
@@ -48,7 +47,7 @@
     ~CPsetContainer(){};
 };
 
-void fillNumber(QString& number)
+void fillNumber(QString& number, PsService /*service*/)
 {
     number = "1234567";
 }
@@ -96,6 +95,9 @@
     m_divertpluginGroup = qobject_cast<CpDivertPluginGroup *>(list.takeFirst());
     QVERIFY(m_divertpluginGroup);
     
+    m_dataForm = new HbDataFormModel;
+    m_dataForm->appendDataFormItem(m_divertpluginGroup);
+    
     QVERIFY(verify());
 }
 
@@ -105,7 +107,10 @@
 void UT_CpDivertPlugin::cleanup()
 {
     reset();
-    delete m_divertpluginGroup;
+    delete m_dataForm;
+    m_dataForm = NULL;
+    
+    //delete m_divertpluginGroup; // dataForm owned
     m_divertpluginGroup = NULL;
 
     delete m_helper;
@@ -148,23 +153,27 @@
 void UT_CpDivertPlugin::t_changeDivertingStateRequested()
 {
     //except user cancels
-    appendAction("All voice calls:", selectAction, "Cancel");
+    appendAction("txt_phone_setlabel_all_calls", selectAction, "Cancel");
     expect("PSetCallDivertingWrapper::getDefaultNumbers");
-    m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData("number", "");
+    m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData("text", "");
     m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData(
-            "state", CpDivertSelectionCustomitem::Disabled);
+        "checkState", Qt::Checked);
     m_divertpluginGroup->m_DataItemVoiceAllCalls->thisItemClicked();
+    waitForQueueEmpty();
     QVERIFY(verify());
     
     //except user selects vmb
-    appendAction("All voice calls:", selectItem, "txt_phone_setlabel_voice_mbx");
+    appendAction("txt_phone_setlabel_all_calls", selectItem, "txt_phone_setlabel_voice_mbx");
     expect("PSetCallDivertingWrapper::getDefaultNumbers");
-    expect("PSetCallDivertingWrapper::getVoiceMailBoxNumber").willOnce(invoke(fillNumber));
+    expect("PSetCallDivertingWrapper::queryVoiceMailBoxNumber").willOnce(invoke(fillNumber)).returns(0);
     expect("SsSettingsWrapper::get");
     expect("PSetCallDivertingWrapper::setCallDiverting");
     expect("CpPhoneNotes::noteShowing").returns(false);
     expect("CpPhoneNotes::showGlobalProgressNote");
+    m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData(
+        "checkState", Qt::Checked);
     m_divertpluginGroup->m_DataItemVoiceAllCalls->thisItemClicked();
+    waitForQueueEmpty();
     QVERIFY(verify()); // Verify item click
     PSCallDivertingCommand command;
     command.iNumber = "12345";
@@ -172,32 +181,32 @@
     command.iCondition = qvariant_cast<PsCallDivertingCondition>(
             m_divertpluginGroup->m_DataItemVoiceAllCalls->property("condition"));
     command.iServiceGroup = ServiceGroupVoice;
-    expect("CpPhoneNotes::showGlobalNote");
+    expect("CpPhoneNotes::showNotificationDialog");
     m_divertpluginGroup->handleDivertingChanged(command, false);
     expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify()); // Verify result processing
 
     //except user selects one of the default numbers
-    m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData("number","");
+    m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData("text", "");
     m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData(
-            "state", CpDivertSelectionCustomitem::Disabled);
-    appendAction("All voice calls:", selectItem, "0401234567");
+        "checkState", Qt::Checked);
+    appendAction("txt_phone_setlabel_all_calls", selectItem, "0401234567");
     expect("PSetCallDivertingWrapper::getDefaultNumbers");
     expect("SsSettingsWrapper::get");
     expect("PSetCallDivertingWrapper::setCallDiverting");
     expect("CpPhoneNotes::noteShowing").returns(false);
     expect("CpPhoneNotes::showGlobalProgressNote");
     m_divertpluginGroup->m_DataItemVoiceAllCalls->thisItemClicked();
+    waitForQueueEmpty();
     command.iNumber = "0401234567";
     command.iStatus = DivertingStatusActive;
     command.iCondition = qvariant_cast<PsCallDivertingCondition>(
             m_divertpluginGroup->m_DataItemVoiceAllCalls->property("condition"));
     command.iServiceGroup = ServiceGroupVoice;
     expect("CpPhoneNotes::cancelNote");
-    expect("CpPhoneNotes::showGlobalNote");
+    expect("CpPhoneNotes::showNotificationDialog");
     expect("PSetCallDivertingWrapper::setNewDefaultNumber").with(QString("0401234567"));
-    expect("Tools::voipSupported").returns(false);
     m_divertpluginGroup->handleDivertingChanged(command, true);
     expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
@@ -208,25 +217,32 @@
     expect("PSetCallDivertingWrapper::setCallDiverting"); // Disable divert
     expect("CpPhoneNotes::noteShowing").returns(false);
     expect("CpPhoneNotes::showGlobalProgressNote");
+    m_divertpluginGroup->m_DataItemVoiceAllCalls->setContentWidgetData(
+        "checkState", Qt::Unchecked);
     m_divertpluginGroup->m_DataItemVoiceAllCalls->thisItemClicked();
+    waitForQueueEmpty();
     command.iNumber = "";
     command.iStatus = DivertingStatusInactive;
     command.iCondition = qvariant_cast<PsCallDivertingCondition>(
             m_divertpluginGroup->m_DataItemVoiceAllCalls->property("condition"));
     command.iServiceGroup = ServiceGroupVoice;
-    expect("CpPhoneNotes::showGlobalNote");
+    expect("CpPhoneNotes::showNotificationDialog");
     m_divertpluginGroup->handleDivertingChanged(command, false);
-    expect("CpPhoneNotes::cancelNote");
+    //expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify());
     
     //except user selects other number, inserts number and cancels
+    /* BUG in framework (Crash in QGestureManager::getState due to QWeakPointer) */
+    /*
     appendAction("All voice calls:", selectItem, "Other number");
     appendAction("Number:", insertText, "12345");
     appendAction("Number:", selectAction, "Cancel");
     expect("PSetCallDivertingWrapper::getDefaultNumbers");
     m_divertpluginGroup->m_DataItemVoiceAllCalls->thisItemClicked();
+    waitForQueueEmpty();
     QVERIFY(verify());
+    */
 }
 
 /*!
@@ -234,22 +250,19 @@
  */
 void UT_CpDivertPlugin::t_itemShown()
 {
-    HbDataFormModel* model = 
-            qobject_cast<HbDataFormModel*>(m_divertpluginGroup->model());
-    
     expect("PSetCallDivertingWrapper::getCallDivertingStatus");
     expect("CpPhoneNotes::noteShowing").returns(false);
     expect("CpPhoneNotes::showGlobalProgressNote");
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceAllCalls));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceAllCalls));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfBusy));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfBusy));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAnswered));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAnswered));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfOutOfReach));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfOutOfReach));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAvailable));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAvailable));
     
     QList<PSCallDivertingStatus*> list;
     PSCallDivertingStatus divertStatus;
@@ -279,15 +292,15 @@
 
     // Test, Do not check status again
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceAllCalls));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceAllCalls));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfBusy));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfBusy));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAnswered));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAnswered));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfOutOfReach));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfOutOfReach));
     m_divertpluginGroup->itemShown(
-            model->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAvailable));
+            m_dataForm->indexFromItem(m_divertpluginGroup->m_DataItemVoiceIfNotAvailable));
     
 
     QVERIFY(verify());
@@ -296,26 +309,30 @@
 /*!
   UT_CpDivertPlugin::t_popUpTimerQuery
  */
-void UT_CpDivertPlugin::t_popUpTimerQuery()
+/*void UT_CpDivertPlugin::t_popUpTimerQuery()
 {
-    appendAction("If not answered:", selectItem, "0401234567");
-    appendAction("Time out", selectAction, "Cancel");
+    appendAction("txt_phone_setlabel_if_not_answered", selectItem, "0401234567");
+    appendAction("txt_phone_title_delay", selectAction, "Cancel");
     expect("PSetCallDivertingWrapper::getDefaultNumbers");
-    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData("number", "");
+    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData("text", "");
     m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData(
-            "state", CpDivertSelectionCustomitem::Disabled);
+        "checkState", Qt::Checked);
     m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->thisItemClicked();
+    waitForQueueEmpty();
     QVERIFY(verify());
     
-    appendAction("If not answered:", selectItem, "Other number");
-    appendAction("Number:", insertText, "12345");
-    appendAction("Number:", selectAction, "OK");
-    appendAction("Time out", selectItem, "15 second");
+    appendAction("txt_phone_setlabel_if_not_answered", selectItem, "txt_phone_list_enter_number_manually");
+    appendAction("txt_phone_info_number", insertText, "12345");
+    appendAction("txt_phone_info_number", selectAction, "OK");
+    appendAction("txt_phone_title_delay", selectItem, "txt_phone_list_15_seconds");
     //except user chooses other number and inserts number and timeout
     expect("PSetCallDivertingWrapper::getDefaultNumbers");    
     expect("SsSettingsWrapper::get");
     expect("PSetCallDivertingWrapper::setCallDiverting");
+    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData(
+        "checkState", Qt::Checked);
     m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->thisItemClicked();
+    waitForQueueEmpty();
     PSCallDivertingCommand command;
     command.iNumber = "12345";
     command.iNoReplyTimer = 15;
@@ -325,13 +342,16 @@
     command.iServiceGroup = ServiceGroupVoice;
     expect("CpPhoneNotes::showGlobalNote");
     m_divertpluginGroup->handleDivertingChanged(command, false);
-    expect("CpPhoneNotes::cancelNote");
+//    expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify());
     
     expect("SsSettingsWrapper::get");
     expect("PSetCallDivertingWrapper::setCallDiverting");
+    m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->setContentWidgetData(
+        "checkState", Qt::Unchecked);
     m_divertpluginGroup->m_DataItemVoiceIfNotAnswered->thisItemClicked();
+    waitForQueueEmpty();
     command.iNumber = "";
     command.iNoReplyTimer = 0;
     command.iStatus = DivertingStatusInactive;
@@ -340,12 +360,12 @@
     command.iServiceGroup = ServiceGroupVoice;
     expect("CpPhoneNotes::showGlobalNote");
     m_divertpluginGroup->handleDivertingChanged(command, false);
-    expect("CpPhoneNotes::cancelNote");
+    //expect("CpPhoneNotes::cancelNote");
     m_divertpluginGroup->divertRequestProcessed();
     QVERIFY(verify());
 
 }
-
+*/
 /*!
   UT_CpDivertPlugin::t_handleDivertingChanged
  */
@@ -355,18 +375,14 @@
     
     c.iStatus = DivertingStatusActive;
     c.iServiceGroup = ServiceGroupAllTeleservices;
-    bool bRet = false;
     expect("PSetCallDivertingWrapper::setNewDefaultNumber");
-    expect("Tools::voipSupported").returns(bRet);
     m_divertpluginGroup->handleDivertingChanged(c, true);
     
     QVERIFY(verify());
     
-    bRet = true;
     c.iServiceGroup = ServiceGroupAllTeleservices;
     c.iCondition = DivertConditionUnconditional;
     expect("PSetCallDivertingWrapper::setNewDefaultNumber");
-    expect("Tools::voipSupported").returns(bRet);
     m_divertpluginGroup->handleDivertingChanged(c, false);
     
     QVERIFY(verify());
@@ -510,7 +526,7 @@
     HbListWidget *list = qobject_cast<HbListWidget*>(d->contentWidget());
     QVERIFY(list);
     
-    bool ok=true;
+    bool ok=false;
     HbListWidgetItem *itemObject = 0;
     for (int i=0; i < list->count();i++) {
         itemObject = list->item(i);
@@ -524,6 +540,7 @@
                 QTest::qWait(50);
             }
             QTest::qWait(50);
+            break;
         }
         
     }
@@ -539,7 +556,6 @@
 {
     HbDialog* d = visibleDialog(dialog);
     QVERIFY(d);
-    
     QAction* o;
     bool ok=false;
     foreach (o, d->actions()) {
@@ -552,6 +568,7 @@
                 QTest::qWait(50);
             }
             QTest::qWait(50);
+            break;
         }
     }
     QVERIFY(ok);
@@ -569,9 +586,23 @@
     executeAction(*actionQueue.takeFirst());
     if (actionQueue.count()) {
         startTimer(1000);
+    } else {
+        emit queueEmpty();
     }
 
     qDebug() << "timerEvent, OUT";
 }
 
+/*!
+  UT_CpDivertPlugin::waitForQueueEmpty
+ */
+void UT_CpDivertPlugin::waitForQueueEmpty()
+{
+    if (actionQueue.count()) {
+        QSignalSpy spy(this, SIGNAL(queueEmpty()));
+        while (spy.count() == 0)
+            QTest::qWait(200);
+    }
+}
+
 QTEST_MAIN_S60UI(UT_CpDivertPlugin)