phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp
changeset 21 92ab7f8d0eab
child 22 6bb1b21d2484
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneuis/bubblemanager2/tsrc/unit/ut_bubbleutils/ut_bubbleutils.cpp	Fri Mar 19 09:28:42 2010 +0200
@@ -0,0 +1,518 @@
+/*!
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include <hbapplication.h>
+#include <hbtextitem.h>
+#include <hbiconitem.h>
+#include <hbpushbutton.h>
+#include <hbaction.h>
+
+#include "bubbletest.h"
+#include "bubbleutils.h"
+#include "bubbleheader.h"
+#include "bubblestyleoption.h"
+#include "bubblebuttonstyle.h"
+
+class BubbleButtonStyleMock : public BubbleButtonStyle
+{
+public:
+    BubbleButtonStyleMock() {};
+    BubbleButtonStyle::ButtonColor color() {return mButtonColor; };
+};
+
+class ut_BubbleUtils : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void initTestCase();
+    void cleanupTestCase();
+
+    void test_setCallHeaderTexts3Lines_incoming();
+    void test_setCallHeaderTexts3Lines_waiting();
+    void test_setCallHeaderTexts3Lines_active();
+    void test_setCallHeaderTexts3Lines_disconnected();
+    void test_setCallHeaderTexts3Lines_outgoing();
+    void test_setCallHeaderTexts3Lines_alerting();
+    void test_setCallHeaderTexts3Lines_held();
+    void test_setCallHeaderTexts3Lines_alerttodisconnected();
+
+    void test_setCallHeaderTexts2Lines_waiting();
+    void test_setCallHeaderTexts2Lines_alerttodisconnected();
+    void test_setCallHeaderTexts2Lines_active();
+    void test_setCallHeaderTexts2Lines_held();
+    void test_setCallHeaderTexts2Lines_disconnected();
+
+    void test_compareHeaders();
+
+    void test_stylePluginNameWithPath();
+
+    void test_setButtonStyleForAction();
+
+private:
+};
+
+void ut_BubbleUtils::initTestCase()
+{
+}
+
+void ut_BubbleUtils::cleanupTestCase()
+{
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_incoming()
+{
+    // incoming call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+    
+    header.setCallState( BubbleManager::Incoming );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "calling", Qt::ElideRight );
+    
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "calling" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+        
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "calling" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_waiting()
+{
+    // incoming call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Waiting );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "waiting", Qt::ElideRight );
+
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "waiting" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "waiting" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_active()
+{
+    // active call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Active );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "", Qt::ElideRight );
+    
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "" );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add timer
+    opt = BubbleStyleOption();
+    header.setTimerCost( "00:00" );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "00:00" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+    header.setTimerCost( "" );
+    
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+        
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add timer
+    opt = BubbleStyleOption();
+    header.setTimerCost( "00:00" );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "00:00" );
+    QVERIFY( opt.mText3Clip == Qt::ElideRight );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_disconnected()
+{
+    // disconnected call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Disconnected );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "discon", Qt::ElideRight );
+    header.setTimerCost( "00:00" );
+    
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "discon" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+        
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "discon" );
+    QVERIFY( opt.mText3Clip == Qt::ElideRight );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_outgoing()
+{
+    // outgoing call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Outgoing );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "calling", Qt::ElideRight );
+    
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    
+    QVERIFY( opt.mText1 == "calling" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "john" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+        
+    QVERIFY( opt.mText1 == "calling" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "john" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "12345" );
+    QVERIFY( opt.mText3Clip == Qt::ElideLeft );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_alerting()
+{
+    // alerting call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Alerting );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "calling", Qt::ElideRight );
+    
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "" );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+        
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_held()
+{
+    // held
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::OnHold );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "on hold", Qt::ElideRight );
+    header.setTimerCost( "00:00" );
+    
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+    
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "on hold" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+    
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+        
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "on hold" );
+    QVERIFY( opt.mText3Clip == Qt::ElideRight );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts3Lines_alerttodisconnected()
+{
+    // incoming call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Incoming );
+    header.setCallState( BubbleManager::AlertToDisconnected );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "disconnected", Qt::ElideRight );
+
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "disconnected" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli( "12345", Qt::ElideLeft );
+    BubbleUtils::setCallHeaderTexts3Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "12345" );
+    QVERIFY( opt.mText2Clip == Qt::ElideLeft );
+    QVERIFY( opt.mText3 == "disconnected" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts2Lines_waiting()
+{
+    // waiting call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Waiting );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "waiting", Qt::ElideRight );
+
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "waiting" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli("12345",Qt::ElideLeft);
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "waiting" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts2Lines_alerttodisconnected()
+{
+    // waiting call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Waiting );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "disconnected", Qt::ElideRight );
+
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "disconnected" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+
+    // add secondary cli
+    opt = BubbleStyleOption();
+    header.setSecondaryCli("12345",Qt::ElideLeft);
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "disconnected" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts2Lines_active()
+{
+    // active call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Active );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "", Qt::ElideRight );
+
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "" );
+    QVERIFY( opt.mText3 == "" );
+
+    // add timer
+    opt = BubbleStyleOption();
+    header.setTimerCost( "00:00" );
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "00:00" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts2Lines_held()
+{
+    // held
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::OnHold );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "on hold", Qt::ElideRight );
+    header.setTimerCost( "00:00" );
+
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "on hold" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+}
+
+void ut_BubbleUtils::test_setCallHeaderTexts2Lines_disconnected()
+{
+    // disconnected call
+    BubbleHeader header;
+    BubbleStyleOption opt;
+
+    header.setCallState( BubbleManager::Disconnected );
+    header.setCli( "john", Qt::ElideRight );
+    header.setText( "discon", Qt::ElideRight );
+    header.setTimerCost( "00:00" );
+
+    BubbleUtils::setCallHeaderTexts2Lines(header, opt);
+    QVERIFY( opt.mText1 == "john" );
+    QVERIFY( opt.mText1Clip == Qt::ElideRight );
+    QVERIFY( opt.mText2 == "discon" );
+    QVERIFY( opt.mText2Clip == Qt::ElideRight );
+    QVERIFY( opt.mText3 == "" );
+}
+
+void ut_BubbleUtils::test_compareHeaders()
+{
+    BubbleHeader header1;
+    BubbleHeader header2;
+
+    header1.setCallState(BubbleManagerIF::Active);
+    header2.setCallState(BubbleManagerIF::Waiting);
+    QVERIFY( BubbleUtils::compareHeaders(&header1,&header2) == false );
+
+    header1.setCallState(BubbleManagerIF::Active);
+    header2.setCallState(BubbleManagerIF::OnHold);
+    QVERIFY( BubbleUtils::compareHeaders(&header1,&header2) == true );
+}
+
+void ut_BubbleUtils::test_stylePluginNameWithPath()
+{
+#if defined(Q_OS_SYMBIAN)
+    QString name(BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
+    QVERIFY(name=="z:/resource/qt/plugins/phone/bubblestyleplugin.dll");
+#elif defined(Q_OS_WIN)
+    QString name(BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
+    QVERIFY(name=="c:/hb/bin/bubblestyleplugin.dll");
+#else // Q_OS_UNIX
+    QString name(BubbleUtils::stylePluginNameWithPath("bubblestyleplugin.dll"));
+    QVERIFY(name=="/home/lib/bubblestyleplugin.dll");
+#endif
+}
+
+void ut_BubbleUtils::test_setButtonStyleForAction()
+{
+    HbPushButton button;
+    BubbleButtonStyleMock style;
+    button.setStyle(&style);
+    HbAction action;
+
+    action.setSoftKeyRole(QAction::NoSoftKey);
+    BubbleUtils::setButtonStyleForAction(button,action);
+    QVERIFY(style.color()==BubbleButtonStyle::Default);
+
+    action.setSoftKeyRole(QAction::PositiveSoftKey);
+    BubbleUtils::setButtonStyleForAction(button,action);
+    QVERIFY(style.color()==BubbleButtonStyle::Green);
+
+    action.setSoftKeyRole(QAction::NegativeSoftKey);
+    BubbleUtils::setButtonStyleForAction(button,action);
+    QVERIFY(style.color()==BubbleButtonStyle::Red);
+}
+
+BUBBLE_TEST_MAIN(ut_BubbleUtils)
+#include "ut_bubbleutils.moc"