phoneuis/bubblemanager2/tsrc/unit/mt_bubblemanager2/mt_bubblemanager2.cpp
branchRCL_3
changeset 61 41a7f70b3818
equal deleted inserted replaced
58:40a3f856b14d 61:41a7f70b3818
       
     1 /*!
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QtGui>
       
    19 #include <QtTest/QtTest>
       
    20 
       
    21 #include <hbapplication.h>
       
    22 #include <hbmainwindow.h>
       
    23 #include <hbaction.h>
       
    24 #include <hbtoolbar.h>
       
    25 #include <hbview.h>
       
    26 
       
    27 #include "bubbletest.h"
       
    28 #include "bubblemanager2.h"
       
    29 
       
    30 const int WAIT_TIME = 200;
       
    31 
       
    32 class mt_BubbleManager2 : public QObject
       
    33 {
       
    34     Q_OBJECT
       
    35 
       
    36 private slots:
       
    37     void initTestCase();
       
    38     void cleanupTestCase();
       
    39 
       
    40     void testBasicMtCall();
       
    41     void testBasicMoCall();
       
    42     void testWaitingCall();
       
    43     void testConferenceCall();
       
    44     void testEmergencyCall();
       
    45 
       
    46 private:
       
    47     void mouseClickWidget(const QString& name);
       
    48     void mouseClickWidgetAction(const QString& name, HbAction* action);
       
    49     QGraphicsWidget* getWidgetByName(const QString& name);
       
    50 
       
    51 private:
       
    52     HbMainWindow*  mainWindow;
       
    53     BubbleManager* bubbleManager; // widget under test
       
    54     HbAction*      toolbarAction;
       
    55     HbView*        view; // not owned
       
    56 };
       
    57 
       
    58 void mt_BubbleManager2::initTestCase()
       
    59 {
       
    60     mainWindow = new HbMainWindow;
       
    61 
       
    62     bubbleManager = new BubbleManager();
       
    63 
       
    64     view = mainWindow->addView( bubbleManager );
       
    65 
       
    66     HbToolBar *toolBar = new HbToolBar();
       
    67     toolbarAction = new HbAction(this);
       
    68     toolBar->addAction( toolbarAction );
       
    69     toolBar->addAction( toolbarAction );
       
    70     //toolBar->setOrientation(mainWindow->orientation());
       
    71     mainWindow->currentView()->setToolBar(toolBar);
       
    72 
       
    73     mainWindow->show();
       
    74 }
       
    75 
       
    76 void mt_BubbleManager2::cleanupTestCase()
       
    77 {
       
    78     delete mainWindow;
       
    79     delete toolbarAction;
       
    80 }
       
    81 
       
    82 void mt_BubbleManager2::testBasicMtCall()
       
    83 {
       
    84     view->setTitle( "Basic MT call" );
       
    85     bubbleManager->startChanges();
       
    86     int bubbleId = bubbleManager->createCallHeader();
       
    87     QVERIFY( bubbleId == 0 );
       
    88     bubbleManager->setState( bubbleId, BubbleManager::Incoming );
       
    89     bubbleManager->setCli( bubbleId, "John Doe", Qt::ElideRight );
       
    90     bubbleManager->setSecondaryCli( bubbleId, "0407284096" );
       
    91     bubbleManager->setNumberType( bubbleId, BubbleManager::Mobile );
       
    92     bubbleManager->setCallFlags( bubbleId, BubbleManager::Diverted );
       
    93     bubbleManager->setCallFlag( bubbleId, BubbleManager::NoCiphering, true );
       
    94     bubbleManager->setLabel( bubbleId,"calling");
       
    95     bubbleManager->setCallObjectFromTheme(bubbleId);
       
    96     HbAction action1("Answer", this);
       
    97     action1.setSoftKeyRole(QAction::PositiveSoftKey);
       
    98     bubbleManager->addAction( bubbleId, &action1 );
       
    99     HbAction action2("Reject", this);
       
   100     action2.setSoftKeyRole(QAction::NegativeSoftKey);
       
   101     bubbleManager->addAction( bubbleId, &action2 );
       
   102     bubbleManager->endChanges();
       
   103 
       
   104     QTest::qWait( WAIT_TIME );
       
   105     mouseClickWidgetAction("eb:leftButton",&action1);
       
   106     mouseClickWidgetAction("eb:rightButton",&action2);
       
   107     QTest::qWait( WAIT_TIME );
       
   108 
       
   109     bubbleManager->startChanges();
       
   110     bubbleManager->setState( bubbleId, BubbleManager::Active );
       
   111     bubbleManager->setLabel( bubbleId,"");
       
   112     bubbleManager->setCallTime( bubbleId, "00:00" );
       
   113     bubbleManager->setCallFlag( bubbleId, BubbleManager::NoCiphering, false );
       
   114     bubbleManager->clearActions(bubbleId);
       
   115     HbAction action3("Hold", this);
       
   116     bubbleManager->addAction( bubbleId, &action3 );
       
   117     HbAction action4("End call", this);
       
   118     action4.setSoftKeyRole(QAction::NegativeSoftKey);
       
   119     bubbleManager->addAction( bubbleId, &action4 );
       
   120     bubbleManager->endChanges();
       
   121 
       
   122     QTest::qWait( WAIT_TIME );
       
   123     bubbleManager->updateCallTime( bubbleId, "00:01" );
       
   124     bubbleManager->updateCLI(bubbleId, "John Doe", Qt::ElideRight);
       
   125     QTest::qWait( WAIT_TIME );
       
   126     bubbleManager->updateCallTime( bubbleId, "00:02" );
       
   127     mouseClickWidgetAction("eb:leftButton",&action3);
       
   128     mouseClickWidgetAction("eb:rightButton",&action4);
       
   129     QTest::qWait( WAIT_TIME );
       
   130 
       
   131     bubbleManager->startChanges();
       
   132     bubbleManager->setState( bubbleId, BubbleManager::OnHold );
       
   133     bubbleManager->setLabel( bubbleId,"on hold");
       
   134     bubbleManager->endChanges();
       
   135     QTest::qWait( WAIT_TIME );
       
   136     
       
   137     bubbleManager->startChanges();
       
   138     bubbleManager->setState( bubbleId, BubbleManager::Disconnected );
       
   139     bubbleManager->setLabel( bubbleId,"disconnected");
       
   140     bubbleManager->endChanges();
       
   141 
       
   142     QTest::qWait( WAIT_TIME );
       
   143     bubbleManager->startChanges();
       
   144     bubbleManager->removeCallHeader( bubbleId );
       
   145     bubbleManager->endChanges();
       
   146     QTest::qWait( WAIT_TIME );
       
   147 }
       
   148 
       
   149 void mt_BubbleManager2::testBasicMoCall()
       
   150 {
       
   151     view->setTitle( "Basic M0 call" );
       
   152     bubbleManager->startChanges();
       
   153     int bubbleId = bubbleManager->createCallHeader();
       
   154     QVERIFY( bubbleId == 0 );
       
   155     bubbleManager->setState( bubbleId, BubbleManager::Outgoing );
       
   156     bubbleManager->setCli( bubbleId, "Mary Poppins", Qt::ElideRight );
       
   157     bubbleManager->setSecondaryCli( bubbleId, "0507284096" );
       
   158     bubbleManager->setNumberType( bubbleId, BubbleManager::Mobile );
       
   159     bubbleManager->setLabel( bubbleId,"Calling");
       
   160     bubbleManager->setCallFlag( bubbleId, BubbleManager::NoCiphering, true );
       
   161     bubbleManager->setCallObjectFromTheme(bubbleId);
       
   162     HbAction action1("End call", this);
       
   163     action1.setSoftKeyRole(QAction::NegativeSoftKey);
       
   164     bubbleManager->clearActions(bubbleId);
       
   165     bubbleManager->addAction( bubbleId, &action1 );
       
   166     bubbleManager->endChanges();
       
   167 
       
   168     QTest::qWait( WAIT_TIME );
       
   169     mouseClickWidgetAction("eb:centerButton", &action1 );
       
   170     QTest::qWait( WAIT_TIME );
       
   171 
       
   172     bubbleManager->startChanges();
       
   173     bubbleManager->setState( bubbleId, BubbleManager::Alerting );
       
   174     bubbleManager->endChanges();
       
   175     QTest::qWait( WAIT_TIME );
       
   176     
       
   177     bubbleManager->startChanges();
       
   178     bubbleManager->setState( bubbleId, BubbleManager::Active );
       
   179     bubbleManager->setLabel( bubbleId,"");
       
   180     bubbleManager->setCallTime( bubbleId, "00:00" );
       
   181     bubbleManager->setCallFlag( bubbleId, BubbleManager::NoCiphering, false);
       
   182     bubbleManager->clearActions(bubbleId);
       
   183     HbAction action2("Hold", this);
       
   184     bubbleManager->addAction( bubbleId, &action2 );
       
   185     HbAction action3("End call", this);
       
   186     action3.setSoftKeyRole(QAction::NegativeSoftKey);
       
   187     bubbleManager->addAction( bubbleId, &action3 );
       
   188     bubbleManager->endChanges();
       
   189 
       
   190     QTest::qWait( WAIT_TIME );
       
   191     bubbleManager->updateCallTime( bubbleId, "00:01" );
       
   192     mouseClickWidgetAction("eb:leftButton",&action2);
       
   193     mouseClickWidgetAction("eb:rightButton",&action3);
       
   194     QTest::qWait( WAIT_TIME );
       
   195 
       
   196     bubbleManager->setPhoneMuted(true);
       
   197     QTest::qWait( WAIT_TIME );
       
   198     bubbleManager->setPhoneMuted(false);
       
   199 
       
   200     bubbleManager->startChanges();
       
   201     bubbleManager->setState( bubbleId, BubbleManager::Disconnected );
       
   202     bubbleManager->setLabel( bubbleId,"disconnected");
       
   203     bubbleManager->endChanges();
       
   204 
       
   205     QTest::qWait( WAIT_TIME );
       
   206     bubbleManager->startChanges();
       
   207     bubbleManager->removeCallHeader( bubbleId );
       
   208     bubbleManager->endChanges();
       
   209     QTest::qWait( WAIT_TIME );
       
   210 }
       
   211 
       
   212 void mt_BubbleManager2::testWaitingCall()
       
   213 {
       
   214     view->setTitle( "Waiting call" );
       
   215     bubbleManager->startChanges();
       
   216     int bubbleId1 = bubbleManager->createCallHeader();
       
   217     QVERIFY( bubbleId1 == 0 );
       
   218     bubbleManager->setState( bubbleId1, BubbleManager::Active );
       
   219     bubbleManager->setCli( bubbleId1, "Mary Poppins", Qt::ElideRight );
       
   220     bubbleManager->setSecondaryCli( bubbleId1, "0507284096" );
       
   221     bubbleManager->setCallObjectFromTheme(bubbleId1);
       
   222     bubbleManager->setCallTime( bubbleId1, "00:00" );
       
   223     bubbleManager->clearActions(bubbleId1);
       
   224     HbAction action1("Hold", this);
       
   225     bubbleManager->addAction( bubbleId1, &action1 );
       
   226     HbAction action2("End call", this);
       
   227     action2.setSoftKeyRole(QAction::NegativeSoftKey);
       
   228     bubbleManager->addAction( bubbleId1, &action2 );
       
   229     bubbleManager->endChanges();
       
   230 
       
   231     QTest::qWait( WAIT_TIME );
       
   232 
       
   233     // waiting call
       
   234     bubbleManager->startChanges();
       
   235     int bubbleId2 = bubbleManager->createCallHeader();
       
   236     QVERIFY( bubbleId2 == 1 );
       
   237     bubbleManager->setState( bubbleId2, BubbleManager::Waiting );
       
   238     bubbleManager->setCli( bubbleId2, "John Doe", Qt::ElideRight );
       
   239     bubbleManager->setLabel( bubbleId2,"Waiting");
       
   240     bubbleManager->setSecondaryCli( bubbleId2, "0501234567" );
       
   241     bubbleManager->setCallObjectFromTheme(bubbleId2);
       
   242     bubbleManager->clearActions(bubbleId2);
       
   243     HbAction action3("Answer", this);
       
   244     action3.setSoftKeyRole(QAction::PositiveSoftKey);
       
   245     bubbleManager->addAction( bubbleId2, &action3 );
       
   246     HbAction action4("Reject", this);
       
   247     action4.setSoftKeyRole(QAction::NegativeSoftKey);
       
   248     bubbleManager->addAction( bubbleId2, &action4 );
       
   249     bubbleManager->endChanges();
       
   250 
       
   251     QTest::qWait( WAIT_TIME );
       
   252     mouseClickWidgetAction("eb:leftButton",&action3);
       
   253     mouseClickWidgetAction("eb:rightButton",&action4);
       
   254     bubbleManager->updateCallTime(bubbleId1,"00:01");
       
   255 
       
   256     // two calls
       
   257     bubbleManager->startChanges();
       
   258     bubbleManager->setState( bubbleId1, BubbleManager::OnHold );
       
   259     bubbleManager->setLabel( bubbleId1,"On hold");
       
   260     bubbleManager->setState( bubbleId2, BubbleManager::Active );
       
   261     bubbleManager->setLabel( bubbleId2,"");
       
   262     bubbleManager->clearActions(bubbleId2);
       
   263     bubbleManager->addAction( bubbleId2, &action1 );
       
   264     bubbleManager->addAction( bubbleId2, &action2 );
       
   265     HbAction action5("Swap", this);
       
   266     bubbleManager->setExpandAction( bubbleId1, &action5 );
       
   267     bubbleManager->setExpandAction( bubbleId2, &action5 );
       
   268     bubbleManager->endChanges();
       
   269 
       
   270     int expanded = bubbleManager->expandedBubble();
       
   271     QVERIFY( expanded == bubbleId2 );
       
   272 
       
   273     QTest::qWait( WAIT_TIME );
       
   274     mouseClickWidgetAction("collapsedBubble",&action5);
       
   275     expanded = bubbleManager->expandedBubble();
       
   276     QVERIFY( expanded == bubbleId1 );
       
   277 
       
   278     QTest::qWait( WAIT_TIME );
       
   279     bubbleManager->setBubbleSelectionDisabled(true);
       
   280     mouseClickWidget("collapsedBubble");
       
   281     expanded = bubbleManager->expandedBubble();
       
   282     QVERIFY( expanded == bubbleId1 );
       
   283     bubbleManager->setBubbleSelectionDisabled(false);
       
   284 
       
   285     // waiting call (third call)
       
   286     bubbleManager->startChanges();
       
   287     int bubbleId3 = bubbleManager->createCallHeader();
       
   288     QVERIFY( bubbleId3 == 2 );
       
   289     bubbleManager->setState( bubbleId3, BubbleManager::Waiting );
       
   290     bubbleManager->setCli( bubbleId3, "Mary Poppins", Qt::ElideRight );
       
   291     bubbleManager->setLabel( bubbleId3,"Waiting");
       
   292     bubbleManager->setSecondaryCli( bubbleId3, "0501234567" );
       
   293     bubbleManager->setCallObjectFromTheme(bubbleId3);
       
   294     bubbleManager->clearActions(bubbleId3);
       
   295     HbAction action6("Replace", this);
       
   296     bubbleManager->addAction( bubbleId3, &action6 );
       
   297     bubbleManager->endChanges();
       
   298 
       
   299     QTest::qWait( WAIT_TIME );
       
   300     expanded = bubbleManager->expandedBubble();
       
   301     QVERIFY( expanded == bubbleId3 );
       
   302 
       
   303     // click top most bubble - bubble2
       
   304     mouseClickWidgetAction("collapsedBubble2",&action5);
       
   305     expanded = bubbleManager->expandedBubble();
       
   306     QVERIFY( expanded == bubbleId2 );
       
   307     QTest::qWait( WAIT_TIME );
       
   308 
       
   309     bubbleManager->startChanges();
       
   310     bubbleManager->removeCallHeader( bubbleId3 );
       
   311     bubbleManager->endChanges();
       
   312 
       
   313     QTest::qWait( WAIT_TIME );
       
   314     bubbleManager->startChanges();
       
   315     bubbleManager->setState( bubbleId2, BubbleManager::Disconnected );
       
   316     bubbleManager->setLabel( bubbleId2,"disconnected");
       
   317     bubbleManager->endChanges();
       
   318 
       
   319     QTest::qWait( WAIT_TIME );
       
   320     bubbleManager->startChanges();
       
   321     bubbleManager->removeCallHeader( bubbleId1 );
       
   322     bubbleManager->removeCallHeader( bubbleId2 );
       
   323     bubbleManager->endChanges();
       
   324 }
       
   325 
       
   326 void mt_BubbleManager2::testConferenceCall()
       
   327 {
       
   328     view->setTitle( "Test conference" );
       
   329     bubbleManager->startChanges();
       
   330     // held call
       
   331     int bubbleId1 = bubbleManager->createCallHeader();
       
   332     bubbleManager->setState( bubbleId1, BubbleManager::OnHold );
       
   333     bubbleManager->setCli( bubbleId1, "Mary Poppins", Qt::ElideRight );
       
   334     bubbleManager->setSecondaryCli( bubbleId1, "0507284096" );
       
   335     bubbleManager->setCallObjectFromTheme(bubbleId1);
       
   336     bubbleManager->setLabel( bubbleId1,"On hold");
       
   337     bubbleManager->clearActions(bubbleId1);
       
   338     HbAction action1("Activate", this);
       
   339     bubbleManager->addAction( bubbleId1, &action1 );
       
   340     HbAction action2("End call", this);
       
   341     action2.setSoftKeyRole(QAction::NegativeSoftKey);
       
   342     bubbleManager->addAction( bubbleId1, &action2 );
       
   343     // active call
       
   344     int bubbleId2 = bubbleManager->createCallHeader();
       
   345     bubbleManager->setState( bubbleId2, BubbleManager::Waiting );
       
   346     bubbleManager->setCli( bubbleId2, "John Doe", Qt::ElideRight );
       
   347     bubbleManager->setSecondaryCli( bubbleId2, "0501234567" );
       
   348     bubbleManager->setCallObjectFromTheme(bubbleId2);
       
   349     bubbleManager->clearActions(bubbleId2);
       
   350     HbAction action3("Hold", this);
       
   351     bubbleManager->addAction( bubbleId2, &action3 );
       
   352     HbAction action4("End call", this);
       
   353     action4.setSoftKeyRole(QAction::NegativeSoftKey);
       
   354     bubbleManager->addAction( bubbleId2, &action4 );
       
   355     bubbleManager->endChanges();
       
   356     QTest::qWait( WAIT_TIME );
       
   357 
       
   358     bubbleManager->startChanges();
       
   359     int bubbleIdC = bubbleManager->createConference(bubbleId1,bubbleId2);
       
   360     bubbleManager->setCli(bubbleIdC,"Conference call",Qt::ElideRight);
       
   361     bubbleManager->setExpandedConferenceCallHeader(true);
       
   362     bubbleManager->setState(bubbleIdC,BubbleManager::Active);
       
   363     bubbleManager->setState(bubbleId1,BubbleManager::Active);
       
   364     bubbleManager->setState(bubbleId2,BubbleManager::Active);
       
   365     bubbleManager->setCallTime(bubbleIdC,"00:00");
       
   366     HbAction action5("End conference");
       
   367     action5.setSoftKeyRole(QAction::NegativeSoftKey);
       
   368     bubbleManager->addAction(bubbleIdC,&action5);
       
   369     bubbleManager->clearParticipantListActions();
       
   370     HbAction action6("Private");
       
   371     bubbleManager->addParticipantListAction(&action6);
       
   372     HbAction action7("Drop");
       
   373     bubbleManager->addParticipantListAction(&action7);
       
   374     bubbleManager->endChanges();
       
   375     QTest::qWait( WAIT_TIME );
       
   376     bubbleManager->updateCallTime(bubbleIdC,"00:01");
       
   377     mouseClickWidgetAction("eb:centerButton",&action5);
       
   378     QVERIFY(bubbleManager->conferenceRowCount()==2);
       
   379     QVERIFY(bubbleManager->expandedBubble()==bubbleIdC);
       
   380     QTest::qWait( WAIT_TIME );
       
   381 
       
   382     // add call to conference
       
   383     bubbleManager->startChanges();
       
   384     int bubbleId3 = bubbleManager->createCallHeader();
       
   385     bubbleManager->setState( bubbleId3, BubbleManager::Active );
       
   386     bubbleManager->setCli( bubbleId3, "123457", Qt::ElideLeft );
       
   387     bubbleManager->setCallObjectFromTheme(bubbleId3);
       
   388     bubbleManager->clearActions(bubbleId3);
       
   389     HbAction action8("Hold", this);
       
   390     bubbleManager->addAction( bubbleId3, &action8 );
       
   391     HbAction action9("End call", this);
       
   392     action9.setSoftKeyRole(QAction::NegativeSoftKey);
       
   393     bubbleManager->addAction( bubbleId3, &action9 );
       
   394     bubbleManager->setExpandedConferenceCallHeader(false);
       
   395     bubbleManager->setState(bubbleIdC,BubbleManager::OnHold);
       
   396     bubbleManager->setLabel(bubbleIdC,"On hold",Qt::ElideRight);
       
   397     bubbleManager->endChanges();
       
   398     QTest::qWait( WAIT_TIME );
       
   399     bubbleManager->startChanges();
       
   400     bubbleManager->setExpandedConferenceCallHeader(true);
       
   401     bubbleManager->addRowToConference(bubbleId3);
       
   402     bubbleManager->setState(bubbleIdC,BubbleManager::Active);
       
   403     // to test two button layout
       
   404     bubbleManager->clearActions(bubbleIdC);
       
   405     bubbleManager->addAction(bubbleIdC,&action8);
       
   406     bubbleManager->addAction(bubbleIdC,&action5);
       
   407     bubbleManager->endChanges();
       
   408     Q_ASSERT(bubbleManager->conferenceRowCount()==3);
       
   409     QTest::qWait( WAIT_TIME );
       
   410     mouseClickWidgetAction("eb:leftButton",&action8);
       
   411     mouseClickWidgetAction("eb:rightButton",&action5);
       
   412 
       
   413     // click conference list
       
   414     QTest::mouseClick(mainWindow->viewport(),Qt::LeftButton,0,QPoint(100,100));
       
   415     QTest::qWait( 2*WAIT_TIME );
       
   416 
       
   417     // hold/unhold conference
       
   418     bubbleManager->startChanges();
       
   419     bubbleManager->setState( bubbleIdC, BubbleManager::OnHold );
       
   420     bubbleManager->setState( bubbleId1, BubbleManager::OnHold );
       
   421     bubbleManager->setState( bubbleId2, BubbleManager::OnHold );
       
   422     bubbleManager->setState( bubbleId3, BubbleManager::OnHold );
       
   423     bubbleManager->endChanges();
       
   424     QTest::qWait( 2*WAIT_TIME );
       
   425     bubbleManager->startChanges();
       
   426     bubbleManager->setState( bubbleIdC, BubbleManager::Active );
       
   427     bubbleManager->setState( bubbleId1, BubbleManager::Active );
       
   428     bubbleManager->setState( bubbleId2, BubbleManager::Active );
       
   429     bubbleManager->setState( bubbleId3, BubbleManager::Active );
       
   430     bubbleManager->endChanges();
       
   431 
       
   432     // remove call from conference
       
   433     bubbleManager->startChanges();
       
   434     bubbleManager->removeRowFromConference(bubbleId3);
       
   435     bubbleManager->removeCallHeader(bubbleId3);
       
   436     bubbleManager->endChanges();
       
   437     Q_ASSERT(bubbleManager->conferenceRowCount()==2);
       
   438     QTest::qWait( WAIT_TIME );
       
   439 
       
   440     // to be implemented API methods
       
   441     bubbleManager->startChanges();
       
   442     bubbleManager->setSelectionInConference(0);
       
   443     bubbleManager->setSelectionIdInConference(bubbleId1);
       
   444     bubbleManager->selectionInConference();
       
   445     bubbleManager->selectionIdInConference();
       
   446     bubbleManager->moveHighlightOneUpInConference();
       
   447     bubbleManager->moveHighlightOneDownInConference();
       
   448     bubbleManager->setParticipantListCli(bubbleId1,
       
   449         BubbleManagerIF::ParticipantListCliText);
       
   450     bubbleManager->endChanges();
       
   451 
       
   452     bubbleManager->startChanges();
       
   453     bubbleManager->removeConference();
       
   454     bubbleManager->endChanges();
       
   455     QTest::qWait( WAIT_TIME );
       
   456 
       
   457     bubbleManager->startChanges();
       
   458     bubbleManager->removeCallHeader(bubbleId1);
       
   459     bubbleManager->removeCallHeader(bubbleId2);
       
   460     bubbleManager->endChanges();
       
   461 }
       
   462 
       
   463 void mt_BubbleManager2::testEmergencyCall()
       
   464 {
       
   465     view->setTitle( "Emergency call" );
       
   466     bubbleManager->startChanges();
       
   467     int bubbleId = bubbleManager->createCallHeader();
       
   468     QVERIFY( bubbleId == 0 );
       
   469     bubbleManager->setState( bubbleId, BubbleManager::Outgoing );
       
   470     bubbleManager->setCli( bubbleId, "emergency call", Qt::ElideRight );
       
   471     bubbleManager->setNumberType( bubbleId, BubbleManager::Mobile );
       
   472     bubbleManager->setLabel( bubbleId,"Attempting");
       
   473     HbAction action1("End call", this);
       
   474     action1.setSoftKeyRole(QAction::NegativeSoftKey);
       
   475     bubbleManager->clearActions(bubbleId);
       
   476     bubbleManager->addAction( bubbleId, &action1 );
       
   477     bubbleManager->endChanges();
       
   478 
       
   479     QTest::qWait( WAIT_TIME );
       
   480     mouseClickWidgetAction("eb:centerButton",&action1);
       
   481     QTest::qWait( WAIT_TIME );
       
   482 
       
   483     bubbleManager->startChanges();
       
   484     bubbleManager->setCli( bubbleId, "Emergency call", Qt::ElideRight );
       
   485     bubbleManager->setState( bubbleId, BubbleManager::Alerting );
       
   486     bubbleManager->endChanges();
       
   487     QTest::qWait( WAIT_TIME );
       
   488 
       
   489     bubbleManager->startChanges();
       
   490     bubbleManager->setState( bubbleId, BubbleManager::Active );
       
   491     bubbleManager->setLabel( bubbleId,"");
       
   492     bubbleManager->setCallTime( bubbleId, "00:00" );
       
   493     bubbleManager->endChanges();
       
   494     QTest::qWait( WAIT_TIME );
       
   495 
       
   496     bubbleManager->startChanges();
       
   497     bubbleManager->setState( bubbleId, BubbleManager::Disconnected );
       
   498     bubbleManager->setLabel( bubbleId,"disconnected");
       
   499     bubbleManager->endChanges();
       
   500 
       
   501     QTest::qWait( WAIT_TIME );
       
   502     bubbleManager->startChanges();
       
   503     bubbleManager->removeCallHeader( bubbleId );
       
   504     bubbleManager->endChanges();
       
   505     QTest::qWait( WAIT_TIME );
       
   506 }
       
   507 
       
   508 void mt_BubbleManager2::mouseClickWidget(
       
   509     const QString& name )
       
   510 {
       
   511     QGraphicsWidget* widget = getWidgetByName(name);
       
   512 
       
   513     if ( widget ) {
       
   514         QPointF widgetPos = widget->scenePos() +
       
   515                             widget->rect().center();
       
   516 
       
   517         QPoint windowPos = mainWindow->mapFromScene( widgetPos );
       
   518 
       
   519         QTest::mouseClick( mainWindow->viewport(), Qt::LeftButton, 0, windowPos );
       
   520         QTest::qWait( WAIT_TIME );
       
   521     } else {
       
   522         QFAIL( "Widget cannot be accessed!" );
       
   523     }
       
   524 }
       
   525 
       
   526 void mt_BubbleManager2::mouseClickWidgetAction(
       
   527     const QString& name,
       
   528     HbAction* action )
       
   529 {
       
   530     QSignalSpy spy( action, SIGNAL( triggered() ) );
       
   531 
       
   532     QGraphicsWidget* widget = getWidgetByName(name);
       
   533 
       
   534     if ( widget ) {
       
   535         QPointF widgetPos = widget->scenePos() +
       
   536                             widget->rect().center();
       
   537 
       
   538         QPoint windowPos = mainWindow->mapFromScene( widgetPos );
       
   539 
       
   540         QTest::mouseClick( mainWindow->viewport(), Qt::LeftButton, 0, windowPos );
       
   541         QTest::qWait( WAIT_TIME );
       
   542         QVERIFY( spy.count() == 1 );
       
   543     } else {
       
   544         QFAIL( "Widget cannot be accessed!" );
       
   545     }
       
   546 }
       
   547 
       
   548 QGraphicsWidget* mt_BubbleManager2::getWidgetByName(const QString& name)
       
   549 {
       
   550     Q_ASSERT(mainWindow!=0);
       
   551 
       
   552     QGraphicsWidget* widget = 0;
       
   553 
       
   554     QList<QGraphicsItem*> items = mainWindow->scene()->items();
       
   555     foreach (QGraphicsItem* item, items) {
       
   556         if (item->isWidget()) {
       
   557             QGraphicsWidget *w = static_cast<QGraphicsWidget*>(item);
       
   558             if (w->objectName()==name) {
       
   559                 widget = w;
       
   560             }
       
   561         }
       
   562     }
       
   563 
       
   564     return widget;
       
   565 }
       
   566 
       
   567 BUBBLE_TEST_MAIN(mt_BubbleManager2)
       
   568 #include "mt_bubblemanager2.moc"
       
   569