phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuicommandcontroller/unit_tests.cpp
changeset 45 6b911d05207e
parent 21 92ab7f8d0eab
child 46 bc5a64e5bc3c
--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuicommandcontroller/unit_tests.cpp	Fri Jun 04 10:19:18 2010 +0100
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuicommandcontroller/unit_tests.cpp	Wed Jun 23 18:12:20 2010 +0300
@@ -20,16 +20,20 @@
 #include <QList>
 #include <hbapplication.h>
 #include <phoneappcommands.hrh>
+#include <xqphoneappcommands.h>
 #include "phoneuiqtviewif.h"
 #include "pevirtualengine.h"
 #include "bubblemanagerif.h"
 #include "phonebubblewrapper.h"
 #include "phoneuicommandcontroller.h"
+#include "phoneresourceids.h"
 
 extern bool m_setActions;
 extern bool m_setInvalidCommand;
 extern QList<HbAction*> m_menuActions;
 extern bool m_setInvalidButtonCommands;
+extern bool m_setInvalidToolBarCommands;
+extern bool m_setCustomToolBarCommands;
 
 #define PHONE_QT_VIEW_ADAPTER_TEST_MAIN(TestObject) \
 int main(int argc, char *argv[]) \
@@ -83,6 +87,7 @@
     return m_isDialpadVisible; }
     QString dialpadText() {return m_dialpadText;};
     void clearAndHideDialpad() { m_clearAndHideDialpadCalled = true;};
+    void clearDialpad() {};
     void bringToForeground() {;};
     void setMenuActions(const QList<PhoneAction*>& actions) { m_setMenuActionsCalled = true;};
     void shutdownPhoneApp() {;};
@@ -161,6 +166,7 @@
     void testSetCallMenuActions();
     void testSetDialpadMenuActions();
     void testPushButtonActionsForCall();
+    void testToolBarActionsForCall();
 
 
 private:
@@ -675,6 +681,126 @@
     
 }
 
+void TestPhoneUiCommandController::testToolBarActionsForCall()
+{
+    int callState = EPEStateConnected;
+    QMap<int,int> callStates;
+    QMap<int,int> serviceIds;
+    int serviceId(2);
+    int callId(1);
+    callStates[callId] = EPEStateConnected;
+    serviceIds[callId] = serviceId;
+    m_setInvalidToolBarCommands = false;
+    m_setCustomToolBarCommands = false;
+    
+    QList<PhoneAction *> actions = 
+        m_commandController->toolBarActions(
+            R_PHONEUI_DIALER_CBA,
+            callStates,
+            serviceIds,
+            serviceId,
+            callId);
+    
+    QVERIFY(4==actions.count());
+    QVERIFY(EPhoneInCallCmdActivateIhf == actions.at(0)->command());
+    QVERIFY(EPhoneInCallCmdHold == actions.at(1)->command());
+    QVERIFY(EPhoneInCallCmdContacts == actions.at(2)->command());
+    QVERIFY(EPhoneInCallCmdDialer == actions.at(3)->command());
+    
+    qDeleteAll(actions);
+    actions.clear();
+    
+    // Invalid resource id
+    actions = m_commandController->toolBarActions(
+            -1,
+            callStates,
+            serviceIds,
+            serviceId,
+            callId);
+    
+    QVERIFY(0==actions.count());
+    
+    qDeleteAll(actions);
+    actions.clear();
+    
+    // Service not found
+    actions = m_commandController->toolBarActions(
+            R_PHONEUI_DIALER_CBA,
+            callStates,
+            serviceIds,
+            -1,
+            -1);
+    
+    QVERIFY(4==actions.count());
+    
+    qDeleteAll(actions);
+    actions.clear();
+    
+    // Invalid toolbar command by extension
+    m_setInvalidToolBarCommands = true;
+    
+    actions = m_commandController->toolBarActions(
+            R_PHONEUI_DIALER_CBA,
+            callStates,
+            serviceIds,
+            serviceId,
+            callId);
+    
+    QVERIFY(3==actions.count());
+    
+    qDeleteAll(actions);
+    actions.clear();
+    
+    
+    // Command list modified by extension
+    m_setInvalidToolBarCommands = false;
+    m_setCustomToolBarCommands = true;
+
+    actions = m_commandController->toolBarActions(
+            R_PHONEUI_DIALER_CBA,
+            callStates,
+            serviceIds,
+            serviceId,
+            callId);
+    
+    QVERIFY(4==actions.count());
+    QVERIFY(EPhoneInCallCmdJoin == actions.at(0)->command());
+    QVERIFY(EPhoneInCallCmdUnhold == actions.at(1)->command());
+    QVERIFY(EPhoneInCallCmdEndThisOutgoingCall == actions.at(2)->command());
+    QVERIFY(EPhoneCallComingCmdSilent == actions.at(3)->command());
+    
+    qDeleteAll(actions);
+    actions.clear();
+    
+    m_setCustomToolBarCommands =false;
+    
+    // Multi call
+    callStates[2] = EPEStateHeld;
+    serviceIds[2] = 2;
+    
+    actions = m_commandController->toolBarActions(
+            R_PHONEUI_INCALL_DIALER_CBA,
+            callStates,
+            serviceIds,
+            serviceId,
+            callId);
+    
+    QVERIFY(4==actions.count());
+    
+    // No extension
+    serviceIds[1] = 1;
+    serviceIds[2] = 1;
+    serviceId = 1;
+    
+    actions = m_commandController->toolBarActions(
+            R_PHONEUI_INCALL_DIALER_CBA,
+            callStates,
+            serviceIds,
+            serviceId,
+            callId);
+    
+    QVERIFY(4==actions.count());
+}
 
 PHONE_QT_VIEW_ADAPTER_TEST_MAIN(TestPhoneUiCommandController)
 #include "unit_tests.moc"