mmsharing/mmshengine/tsrc/ut_engine/src/ut_musengtelephoneutils.cpp
branchRCL_3
changeset 33 bc78a40cd63c
parent 32 73a1feb507fb
child 38 ac48f0cc9f9c
equal deleted inserted replaced
32:73a1feb507fb 33:bc78a40cd63c
    25 #include "musengtelephoneutils.h"
    25 #include "musengtelephoneutils.h"
    26 
    26 
    27 //  SYSTEM INCLUDES
    27 //  SYSTEM INCLUDES
    28 #include <digia/eunit/eunitmacros.h>
    28 #include <digia/eunit/eunitmacros.h>
    29 #include <centralrepository.h>
    29 #include <centralrepository.h>
    30 #include <e32property.h>
    30 
    31 
    31 
    32 
    32 
    33 
    33 
    34 // -----------------------------------------------------------------------------
    34 // -----------------------------------------------------------------------------
    35 //
    35 //
    93 // -----------------------------------------------------------------------------
    93 // -----------------------------------------------------------------------------
    94 //
    94 //
    95 void UT_CMusEngTelephoneUtils::SetupL()
    95 void UT_CMusEngTelephoneUtils::SetupL()
    96     {
    96     {
    97     iObserver = new( ELeave ) CMusEngObserverStub;
    97     iObserver = new( ELeave ) CMusEngObserverStub;
    98     iTelephoneUtils = CMusEngTelephoneUtils::NewL( *iObserver );
    98     iTelephoneUtils = CMusEngTelephoneUtils::NewL();
    99     }
    99     }
       
   100 
   100 
   101 
   101 // -----------------------------------------------------------------------------
   102 // -----------------------------------------------------------------------------
   102 //
   103 //
   103 // -----------------------------------------------------------------------------
   104 // -----------------------------------------------------------------------------
   104 //
   105 //
   105 void UT_CMusEngTelephoneUtils::Teardown()
   106 void UT_CMusEngTelephoneUtils::Teardown()
   106     {
   107     {
       
   108     delete iObserver;
   107     delete iTelephoneUtils;
   109     delete iTelephoneUtils;
   108     iTelephoneUtils = NULL;
   110     }
   109     delete iObserver;
   111 
   110     iObserver = NULL;
   112 
   111     PropertyHelper::Close();
   113 
   112     }
   114 // TEST CASES
   113 
   115 
   114 
   116 
   115 // TEST CASES  
   117 
       
   118     
   116 
   119 
   117 // -----------------------------------------------------------------------------
   120 // -----------------------------------------------------------------------------
   118 //
   121 //
   119 // -----------------------------------------------------------------------------
   122 // -----------------------------------------------------------------------------
   120 //
   123 //
   150                   CTelephonyAudioRouting::EWiredAudioAccessory;
   153                   CTelephonyAudioRouting::EWiredAudioAccessory;
   151     EUNIT_ASSERT( !iTelephoneUtils->AudioRoutingCanBeChanged() );
   154     EUNIT_ASSERT( !iTelephoneUtils->AudioRoutingCanBeChanged() );
   152     
   155     
   153     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   156     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   154                   CTelephonyAudioRouting::EBTAudioAccessory;
   157                   CTelephonyAudioRouting::EBTAudioAccessory;
       
   158     EUNIT_ASSERT( iTelephoneUtils->AudioRoutingCanBeChanged() );
       
   159     
       
   160     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   161                   CTelephonyAudioRouting::ETTY;
   155     EUNIT_ASSERT( !iTelephoneUtils->AudioRoutingCanBeChanged() );
   162     EUNIT_ASSERT( !iTelephoneUtils->AudioRoutingCanBeChanged() );
       
   163             
       
   164     }
       
   165     
       
   166 
       
   167 // -----------------------------------------------------------------------------
       
   168 //
       
   169 // -----------------------------------------------------------------------------
       
   170 //	   
       
   171 void UT_CMusEngTelephoneUtils::UT_IsAudioRoutingHeadsetL()
       
   172     {
       
   173     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   174                   CTelephonyAudioRouting::EBTAudioAccessory;
       
   175     EUNIT_ASSERT( iTelephoneUtils->IsAudioRoutingHeadset());
       
   176     
       
   177     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   178                   CTelephonyAudioRouting::ENotActive;
       
   179     EUNIT_ASSERT( !iTelephoneUtils->IsAudioRoutingHeadset() );
       
   180        
       
   181     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   182                   CTelephonyAudioRouting::ENone;
       
   183     EUNIT_ASSERT( !iTelephoneUtils->IsAudioRoutingHeadset() );
       
   184     
       
   185     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   186                   CTelephonyAudioRouting::EHandset;
       
   187     EUNIT_ASSERT( !iTelephoneUtils->IsAudioRoutingHeadset() );
       
   188     
       
   189     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   190                   CTelephonyAudioRouting::ELoudspeaker;
       
   191     EUNIT_ASSERT( !iTelephoneUtils->IsAudioRoutingHeadset() );
       
   192     
       
   193     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   194                   CTelephonyAudioRouting::EWiredAudioAccessory;
       
   195     EUNIT_ASSERT( iTelephoneUtils->IsAudioRoutingHeadset() );
   156     
   196     
   157     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   197     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   158                   CTelephonyAudioRouting::ETTY;
   198                   CTelephonyAudioRouting::ETTY;
   159     EUNIT_ASSERT( !iTelephoneUtils->AudioRoutingCanBeChanged() );         
   199     EUNIT_ASSERT( !iTelephoneUtils->IsAudioRoutingHeadset() );
   160     }
   200             
   161 
   201     }
       
   202 
       
   203 void UT_CMusEngTelephoneUtils::UT_IsAudioRoutingLoudSpeakerL()
       
   204 	{
       
   205 	iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   206 	              CTelephonyAudioRouting::ELoudspeaker;
       
   207 	iTelephoneUtils->iAudioOutputAtStartup = 
       
   208 			      CTelephonyAudioRouting::ELoudspeaker;
       
   209 	EUNIT_ASSERT( !iTelephoneUtils->IsAudioRoutingLoudSpeaker());
       
   210 	
       
   211 	iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   212 				  CTelephonyAudioRouting::ELoudspeaker;
       
   213 	iTelephoneUtils->iAudioOutputAtStartup = 
       
   214 			      CTelephonyAudioRouting::EHandset;
       
   215 	EUNIT_ASSERT( iTelephoneUtils->IsAudioRoutingLoudSpeaker() );
       
   216 	
       
   217 	iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   218 				  CTelephonyAudioRouting::ELoudspeaker;
       
   219     iTelephoneUtils->iAudioOutputAtStartup = 
       
   220     		      CTelephonyAudioRouting::EBTAudioAccessory;
       
   221     EUNIT_ASSERT( iTelephoneUtils->IsAudioRoutingLoudSpeaker() );
       
   222 		
       
   223     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
       
   224                   CTelephonyAudioRouting::ELoudspeaker;
       
   225     iTelephoneUtils->iAudioOutputAtStartup = 
       
   226     		      CTelephonyAudioRouting::EWiredAudioAccessory;
       
   227     EUNIT_ASSERT( iTelephoneUtils->IsAudioRoutingLoudSpeaker() );
       
   228 	}
   162 // -----------------------------------------------------------------------------
   229 // -----------------------------------------------------------------------------
   163 //
   230 //
   164 // -----------------------------------------------------------------------------
   231 // -----------------------------------------------------------------------------
   165 //
   232 //
   166 void UT_CMusEngTelephoneUtils::UT_LoudspeakerLL()
   233 void UT_CMusEngTelephoneUtils::UT_LoudspeakerLL()
   168     // Precondition of test
   235     // Precondition of test
   169     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   236     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   170                   CTelephonyAudioRouting::EHandset;
   237                   CTelephonyAudioRouting::EHandset;
   171     
   238     
   172     // Set loudspeaker on, succeeds
   239     // Set loudspeaker on, succeeds
   173     iTelephoneUtils->LoudspeakerL( ETrue );
   240     iTelephoneUtils->LoudspeakerL( ETrue, ETrue );
   174     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   241     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   175                   CTelephonyAudioRouting::ELoudspeaker );
   242                   CTelephonyAudioRouting::ELoudspeaker );
   176     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iShowNoteMode ==
   243     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iShowNoteMode ==
   177                   EFalse );
   244                   EFalse );
       
   245     EUNIT_ASSERT( iTelephoneUtils->iShowDialog == ETrue );
   178     
   246     
   179     // Change conditions
   247     // Change conditions
   180     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   248     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   181                   CTelephonyAudioRouting::EWiredAudioAccessory;              
   249                   CTelephonyAudioRouting::EWiredAudioAccessory;              
   182     
   250     
   183     // Try to set loudspeaker on, fails because current set is not handset
   251     // Try to set loudspeaker on, fails because current set is not handset
   184     iTelephoneUtils->LoudspeakerL( ETrue );
   252     iTelephoneUtils->LoudspeakerL( ETrue, ETrue );
   185     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   253     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   186                   CTelephonyAudioRouting::EWiredAudioAccessory );  
   254                   CTelephonyAudioRouting::EWiredAudioAccessory );  
   187     
   255     
   188     // Change conditions
   256     // Change conditions
   189     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   257     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   190                   CTelephonyAudioRouting::ELoudspeaker;           
   258                   CTelephonyAudioRouting::ELoudspeaker;           
   191     iTelephoneUtils->iAudioOutputAtStartup =
   259     iTelephoneUtils->iAudioOutputAtStartup =
   192                   CTelephonyAudioRouting::ELoudspeaker;  
   260                   CTelephonyAudioRouting::ELoudspeaker;  
   193                               
   261                               
   194     // Try to set loudspeaker off, goes to handset
   262     // Try to set loudspeaker off, goes to handset
   195     iTelephoneUtils->LoudspeakerL( EFalse );   
   263     iTelephoneUtils->LoudspeakerL( EFalse, ETrue );   
   196     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   264     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   197                   CTelephonyAudioRouting::EHandset );  
   265                   CTelephonyAudioRouting::EHandset );  
   198     
   266     
   199     // Change conditions
   267     // Change conditions
   200     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   268     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   201                   CTelephonyAudioRouting::ELoudspeaker;           
   269                   CTelephonyAudioRouting::ELoudspeaker;           
   202     iTelephoneUtils->iAudioOutputAtStartup =
   270     iTelephoneUtils->iAudioOutputAtStartup =
   203                   CTelephonyAudioRouting::EWiredAudioAccessory; 
   271                   CTelephonyAudioRouting::EWiredAudioAccessory; 
   204     
   272     
   205     // Try to set loudspeaker off, goes to wired
   273     // Try to set loudspeaker off, goes to wired
   206     iTelephoneUtils->LoudspeakerL( EFalse );   
   274     iTelephoneUtils->LoudspeakerL( EFalse, ETrue );   
   207     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   275     EUNIT_ASSERT( iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput ==
   208                   CTelephonyAudioRouting::EWiredAudioAccessory ); 
   276                   CTelephonyAudioRouting::EWiredAudioAccessory ); 
   209     }
   277     }
   210 
   278 
       
   279 
   211 // -----------------------------------------------------------------------------
   280 // -----------------------------------------------------------------------------
   212 //
   281 //
   213 // -----------------------------------------------------------------------------
   282 // -----------------------------------------------------------------------------
   214 //
   283 //
   215 void UT_CMusEngTelephoneUtils::UT_IsLoudSpeakerEnabledL()
   284 void UT_CMusEngTelephoneUtils::UT_IsLoudSpeakerEnabledL()
   221     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   290     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput =
   222                                         CTelephonyAudioRouting::EHandset;
   291                                         CTelephonyAudioRouting::EHandset;
   223     EUNIT_ASSERT( !iTelephoneUtils->IsLoudSpeakerEnabled() );
   292     EUNIT_ASSERT( !iTelephoneUtils->IsLoudSpeakerEnabled() );
   224     }
   293     }
   225 
   294 
       
   295 
   226 // -----------------------------------------------------------------------------
   296 // -----------------------------------------------------------------------------
   227 //
   297 //
   228 // -----------------------------------------------------------------------------
   298 // -----------------------------------------------------------------------------
   229 //
   299 //
   230 void UT_CMusEngTelephoneUtils::UT_GetVolumeLL()
   300 void UT_CMusEngTelephoneUtils::UT_GetVolumeLL()
   238                                         CTelephonyAudioRouting::ELoudspeaker;
   308                                         CTelephonyAudioRouting::ELoudspeaker;
   239     iTelephoneUtils->iRepository->Set( KTelIncallLoudspeakerVolume, 8 );
   309     iTelephoneUtils->iRepository->Set( KTelIncallLoudspeakerVolume, 8 );
   240     
   310     
   241     volume = iTelephoneUtils->GetVolumeL();
   311     volume = iTelephoneUtils->GetVolumeL();
   242     EUNIT_ASSERT( volume == 8 );
   312     EUNIT_ASSERT( volume == 8 );
   243     }
   313     
       
   314     }
       
   315 
   244 
   316 
   245 // -----------------------------------------------------------------------------
   317 // -----------------------------------------------------------------------------
   246 //
   318 //
   247 // -----------------------------------------------------------------------------
   319 // -----------------------------------------------------------------------------
   248 //
   320 //
   289     
   361     
   290     iTelephoneUtils->iRepository->Get( KTelIncallLoudspeakerVolume, 
   362     iTelephoneUtils->iRepository->Get( KTelIncallLoudspeakerVolume, 
   291                                        loudSpeakerVolume );
   363                                        loudSpeakerVolume );
   292     EUNIT_ASSERT( loudSpeakerVolume == 10 );
   364     EUNIT_ASSERT( loudSpeakerVolume == 10 );
   293     }
   365     }
       
   366 
   294 
   367 
   295 // -----------------------------------------------------------------------------
   368 // -----------------------------------------------------------------------------
   296 //
   369 //
   297 // -----------------------------------------------------------------------------
   370 // -----------------------------------------------------------------------------
   298 //
   371 //
   302     // call it to avoid coverage loss.
   375     // call it to avoid coverage loss.
   303     iTelephoneUtils->AvailableOutputsChanged(  
   376     iTelephoneUtils->AvailableOutputsChanged(  
   304                             *iTelephoneUtils->iTelephonyAudioRouting );
   377                             *iTelephoneUtils->iTelephonyAudioRouting );
   305     }
   378     }
   306 
   379 
       
   380 
   307 // -----------------------------------------------------------------------------
   381 // -----------------------------------------------------------------------------
   308 //
   382 //
   309 // -----------------------------------------------------------------------------
   383 // -----------------------------------------------------------------------------
   310 //
   384 //
   311 void UT_CMusEngTelephoneUtils::UT_OutputChangedL()
   385 void UT_CMusEngTelephoneUtils::UT_OutputChangedL()
   312     {
   386     {
   313     // Loudspeaker
       
   314     iTelephoneUtils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   387     iTelephoneUtils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   315     
   388     
   316     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput = 
   389     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput = 
   317         CTelephonyAudioRouting::ELoudspeaker;
   390                                         CTelephonyAudioRouting::ELoudspeaker;
       
   391     iTelephoneUtils->iRepository->Set( KTelIncallLoudspeakerVolume, 8 );
       
   392     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   393     EUNIT_ASSERT( iObserver->iVolume == 0 );
   318     
   394     
   319     iTelephoneUtils->OutputChanged( *iTelephoneUtils->iTelephonyAudioRouting );
   395     iTelephoneUtils->OutputChanged( *iTelephoneUtils->iTelephonyAudioRouting );
   320                                                                 
   396                                                                 
   321     EUNIT_ASSERT_EQUALS( iTelephoneUtils->iAudioOutputAtStartup, 
   397     EUNIT_ASSERT_EQUALS( iTelephoneUtils->iAudioOutputAtStartup, 
   322                          CTelephonyAudioRouting::ELoudspeaker )
   398                          CTelephonyAudioRouting::ELoudspeaker )
   323     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled )
   399     
   324     
   400     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 8 )
   325     // Handset   
   401     EUNIT_ASSERT( iObserver->iVolume == 0 );
       
   402     // Test observer
       
   403     
       
   404     iTelephoneUtils->SetAudioRoutingObserver( iObserver );
       
   405     iTelephoneUtils->SetVolumeChangeObserver(iObserver);
       
   406     
   326     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput = 
   407     iTelephoneUtils->iTelephonyAudioRouting->iCurrentOutput = 
   327         CTelephonyAudioRouting::EHandset;
   408                                         CTelephonyAudioRouting::EHandset;
   328     
   409     
   329     iTelephoneUtils->OutputChanged( *iTelephoneUtils->iTelephonyAudioRouting );
   410     iTelephoneUtils->OutputChanged( *iTelephoneUtils->iTelephonyAudioRouting );
   330                                                                 
   411     
       
   412     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   413     EUNIT_ASSERT( iObserver->iVolume == 4 );                                                               
   331     EUNIT_ASSERT_EQUALS( iTelephoneUtils->iAudioOutputAtStartup,
   414     EUNIT_ASSERT_EQUALS( iTelephoneUtils->iAudioOutputAtStartup,
   332                          CTelephonyAudioRouting::EHandset )
   415                          CTelephonyAudioRouting::EHandset )
   333     
   416     
   334     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled )
   417     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled )
   335     }
   418     }
   336 
   419 
       
   420 
   337 // -----------------------------------------------------------------------------
   421 // -----------------------------------------------------------------------------
   338 //
   422 //
   339 // -----------------------------------------------------------------------------
   423 // -----------------------------------------------------------------------------
   340 //
   424 //
   341 void UT_CMusEngTelephoneUtils::UT_SetOutputCompleteL()
   425 void UT_CMusEngTelephoneUtils::UT_SetOutputCompleteL()
   342     {
   426     {
       
   427     iTelephoneUtils->SetAudioRoutingObserver( iObserver );
       
   428     iTelephoneUtils->SetVolumeChangeObserver(iObserver);
       
   429     EUNIT_ASSERT( iObserver->iVolume == 0 );
       
   430     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   431 
   343     // Setoutput fails
   432     // Setoutput fails
   344     iTelephoneUtils->SetOutputComplete( 
   433     iTelephoneUtils->SetOutputComplete( 
   345                             *iTelephoneUtils->iTelephonyAudioRouting,
   434                             *iTelephoneUtils->iTelephonyAudioRouting,
   346                             KErrGeneral );                         
   435                             KErrGeneral );
       
   436                             
   347     EUNIT_ASSERT( !iObserver->iAudioRoutingChangedCalled )
   437     EUNIT_ASSERT( !iObserver->iAudioRoutingChangedCalled )
   348     iObserver->Reset();
   438     EUNIT_ASSERT( iObserver->iVolume == 0 );
   349     
   439     
   350     // Setoutput ok
   440     // Setoutput succesful and note is shown by audiorouting api
       
   441     // There's already next pending setoutput for which we are going to
       
   442     // show note -> that cannot be forgotten
       
   443     iTelephoneUtils->iRepository->Set( KTelIncallEarVolume, 5 );
       
   444     iTelephoneUtils->iShowDialog = ETrue;
       
   445     iTelephoneUtils->iTelephonyAudioRouting->SetShowNote( ETrue );
   351     iTelephoneUtils->SetOutputComplete( 
   446     iTelephoneUtils->SetOutputComplete( 
   352                             *iTelephoneUtils->iTelephonyAudioRouting,
   447                             *iTelephoneUtils->iTelephonyAudioRouting,
   353                             KErrNone );
   448                             KErrNone );
   354     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled )
   449     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled == ETrue )
   355     }
   450     EUNIT_ASSERT( iObserver->iShowNote == EFalse )
       
   451     EUNIT_ASSERT( iTelephoneUtils->iShowDialog == ETrue )
       
   452     EUNIT_ASSERT( iObserver->iVolume == 5 );
       
   453     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 5 )
       
   454     
       
   455     iObserver->Reset();
       
   456     
       
   457     // Setoutput succesful and note is shown by us
       
   458     iTelephoneUtils->iTelephonyAudioRouting->SetShowNote( EFalse );
       
   459     iTelephoneUtils->SetOutputComplete( 
       
   460                             *iTelephoneUtils->iTelephonyAudioRouting,
       
   461                             KErrNone );
       
   462     EUNIT_ASSERT( iObserver->iAudioRoutingChangedCalled == ETrue )
       
   463     EUNIT_ASSERT( iObserver->iShowNote == ETrue )
       
   464     EUNIT_ASSERT( iTelephoneUtils->iShowDialog == EFalse )
       
   465     }
       
   466 
   356 
   467 
   357 // -----------------------------------------------------------------------------
   468 // -----------------------------------------------------------------------------
   358 //
   469 //
   359 // -----------------------------------------------------------------------------
   470 // -----------------------------------------------------------------------------
   360 //
   471 //
   363     EUNIT_ASSERT( iTelephoneUtils->ValidateVolume( 0 ) == 0 );
   474     EUNIT_ASSERT( iTelephoneUtils->ValidateVolume( 0 ) == 0 );
   364     EUNIT_ASSERT( iTelephoneUtils->ValidateVolume( 11 ) == 10 );
   475     EUNIT_ASSERT( iTelephoneUtils->ValidateVolume( 11 ) == 10 );
   365     EUNIT_ASSERT( iTelephoneUtils->ValidateVolume( 5 ) == 5 );
   476     EUNIT_ASSERT( iTelephoneUtils->ValidateVolume( 5 ) == 5 );
   366     }
   477     }
   367 
   478 
       
   479 
   368 // -----------------------------------------------------------------------------
   480 // -----------------------------------------------------------------------------
   369 // We cannot assert anything after destruction. All we can do is to make
   481 // We cannot assert anything after destruction. All we can do is to make
   370 // such condition before destruction that coverage will be achieved.
   482 // such condition before destruction that coverage will be achieved.
   371 // -----------------------------------------------------------------------------
   483 // -----------------------------------------------------------------------------
   372 //
   484 //
   373 void UT_CMusEngTelephoneUtils::UT_DestructorL()
   485 void UT_CMusEngTelephoneUtils::UT_DestructorL()
   374     {
   486     {
   375     // Simulate that 2nd phase construction has not succeeded
   487     // Simulate that 2nd phase construction has not succeeded
   376     CMusEngTelephoneUtils* utils = CMusEngTelephoneUtils::NewL( *iObserver );
   488     CMusEngTelephoneUtils* utils = CMusEngTelephoneUtils::NewL();
   377     CleanupStack::PushL( utils );
   489     CleanupStack::PushL( utils );
   378     delete utils->iTelephonyAudioRouting;
   490     delete utils->iTelephonyAudioRouting;
   379     utils->iTelephonyAudioRouting = NULL;
   491     utils->iTelephonyAudioRouting = NULL;
   380     CleanupStack::PopAndDestroy( utils );
   492     CleanupStack::PopAndDestroy( utils );
   381     
   493     
   382     // Simulate that current audio output mode is same as original
   494     // Simulate that current audio output mode is same as original
   383     utils = CMusEngTelephoneUtils::NewL( *iObserver );
   495     utils = CMusEngTelephoneUtils::NewL();
   384     CleanupStack::PushL( utils );
   496     CleanupStack::PushL( utils );
   385     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   497     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   386     utils->iTelephonyAudioRouting->iCurrentOutput = 
   498     utils->iTelephonyAudioRouting->iCurrentOutput = 
   387                                             CTelephonyAudioRouting::EHandset;
   499                                         CTelephonyAudioRouting::EHandset;
       
   500     CTelephonyAudioRouting::iPreviousOutput = 
       
   501                                         CTelephonyAudioRouting::ELoudspeaker;
   388     CleanupStack::PopAndDestroy( utils );
   502     CleanupStack::PopAndDestroy( utils );
       
   503     EUNIT_ASSERT( CTelephonyAudioRouting::iPreviousOutput == 
       
   504                   CTelephonyAudioRouting::ELoudspeaker )
   389     
   505     
   390     // Simulate that current audio output mode is not the same as original,
   506     // Simulate that current audio output mode is not the same as original,
   391     // Setting fails
   507     // Setting fails
   392     utils = CMusEngTelephoneUtils::NewL( *iObserver );
   508     utils = CMusEngTelephoneUtils::NewL();
   393     CleanupStack::PushL( utils );
   509     CleanupStack::PushL( utils );
   394     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   510     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   395     utils->iTelephonyAudioRouting->iCurrentOutput = 
   511     utils->iTelephonyAudioRouting->iCurrentOutput = 
   396                                     CTelephonyAudioRouting::ELoudspeaker;
   512                                     CTelephonyAudioRouting::ELoudspeaker;
       
   513     CTelephonyAudioRouting::iPreviousOutput = 
       
   514                                     CTelephonyAudioRouting::EHandset;
   397     utils->iTelephonyAudioRouting->iForceFailWithCode = KErrGeneral;
   515     utils->iTelephonyAudioRouting->iForceFailWithCode = KErrGeneral;
   398     CleanupStack::PopAndDestroy( utils );
   516     CleanupStack::PopAndDestroy( utils );
       
   517     EUNIT_ASSERT( CTelephonyAudioRouting::iPreviousOutput == 
       
   518                   CTelephonyAudioRouting::EHandset )
       
   519     EUNIT_ASSERT( CTelephonyAudioRouting::iCurrentOutput == 
       
   520                   CTelephonyAudioRouting::ELoudspeaker )
   399     
   521     
   400     // Simulate that current audio output mode is not the same as original,
   522     // Simulate that current audio output mode is not the same as original,
   401     // Setting succeeds
   523     // Setting succeeds
   402     utils = CMusEngTelephoneUtils::NewL( *iObserver );
   524     utils = CMusEngTelephoneUtils::NewL();
   403     CleanupStack::PushL( utils );
   525     CleanupStack::PushL( utils );
   404     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   526     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   405     utils->iTelephonyAudioRouting->iCurrentOutput = 
   527     utils->iTelephonyAudioRouting->iCurrentOutput = 
   406                                     CTelephonyAudioRouting::ELoudspeaker;
   528                                     CTelephonyAudioRouting::ELoudspeaker;
       
   529     CTelephonyAudioRouting::iPreviousOutput = 
       
   530                                     CTelephonyAudioRouting::EHandset;
   407     CleanupStack::PopAndDestroy( utils );
   531     CleanupStack::PopAndDestroy( utils );
   408     
   532     EUNIT_ASSERT( CTelephonyAudioRouting::iPreviousOutput == 
       
   533                   CTelephonyAudioRouting::ELoudspeaker )
       
   534     EUNIT_ASSERT( CTelephonyAudioRouting::iCurrentOutput == 
       
   535                   CTelephonyAudioRouting::EHandset )
       
   536     
       
   537     // Simulate that current audio output mode is not the same as original,
       
   538     // Setting not done due to special case handling (ENotActive)
       
   539     utils = CMusEngTelephoneUtils::NewL();
       
   540     CleanupStack::PushL( utils );
       
   541     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
       
   542     utils->iTelephonyAudioRouting->iCurrentOutput = 
       
   543                                     CTelephonyAudioRouting::ENotActive;
       
   544     CTelephonyAudioRouting::iPreviousOutput = 
       
   545                                     CTelephonyAudioRouting::ELoudspeaker;
       
   546     CleanupStack::PopAndDestroy( utils );
       
   547     EUNIT_ASSERT( CTelephonyAudioRouting::iPreviousOutput == 
       
   548                   CTelephonyAudioRouting::ELoudspeaker )
       
   549     EUNIT_ASSERT( CTelephonyAudioRouting::iCurrentOutput == 
       
   550                   CTelephonyAudioRouting::ENotActive )                  
       
   551                   
   409     // Simulate that current audio output mode is not the same as original,
   552     // Simulate that current audio output mode is not the same as original,
   410     // Setting does not succeed as observer does not allow changes anymore
   553     // Setting does not succeed as observer does not allow changes anymore
   411     utils = CMusEngTelephoneUtils::NewL( *iObserver );
   554     utils = CMusEngTelephoneUtils::NewL();
       
   555     iObserver->iAudioRouteChangeAllowed = EFalse;
       
   556     utils->SetAudioRoutingObserver( iObserver );
   412     CleanupStack::PushL( utils );
   557     CleanupStack::PushL( utils );
   413     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   558     utils->iAudioOutputAtStartup = CTelephonyAudioRouting::EHandset;
   414     utils->iTelephonyAudioRouting->iCurrentOutput = 
   559     utils->iTelephonyAudioRouting->iCurrentOutput = 
   415                                     CTelephonyAudioRouting::ELoudspeaker;
   560                                     CTelephonyAudioRouting::ELoudspeaker;
       
   561     CTelephonyAudioRouting::iPreviousOutput = 
       
   562                                     CTelephonyAudioRouting::EHandset;
   416     CleanupStack::PopAndDestroy( utils );
   563     CleanupStack::PopAndDestroy( utils );
   417     // Cannot really assert anything
   564     EUNIT_ASSERT( CTelephonyAudioRouting::iPreviousOutput == 
       
   565                   CTelephonyAudioRouting::EHandset )
       
   566     EUNIT_ASSERT( CTelephonyAudioRouting::iCurrentOutput == 
       
   567                   CTelephonyAudioRouting::ELoudspeaker )
       
   568     }
       
   569 
       
   570 // -----------------------------------------------------------------------------
       
   571 //
       
   572 // -----------------------------------------------------------------------------
       
   573 //
       
   574 void UT_CMusEngTelephoneUtils::UT_UpdateCurrentVolumeL()
       
   575     {    
       
   576     //Volume changed, no observer
       
   577     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   578     iTelephoneUtils->iRepository->Set( KTelIncallEarVolume, 5 );
       
   579     iTelephoneUtils->UpdateCurrentVolume(EFalse);
       
   580     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 5 )
       
   581     EUNIT_ASSERT( iObserver->iVolume == 0 );
       
   582 
       
   583     //Volume changed, observer set
       
   584     iTelephoneUtils->SetVolumeChangeObserver(iObserver);
       
   585     iTelephoneUtils->iRepository->Set( KTelIncallEarVolume, 6 );
       
   586     iTelephoneUtils->UpdateCurrentVolume(EFalse);
       
   587     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 6 )
       
   588     EUNIT_ASSERT( iObserver->iVolume == 6 );
       
   589 
       
   590     //Volume didn't change, observer not notified
       
   591     iObserver->iVolume = 0;
       
   592     iTelephoneUtils->UpdateCurrentVolume(EFalse);
       
   593     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 6 )
       
   594     EUNIT_ASSERT( iObserver->iVolume == 0 );    
       
   595     }
       
   596 
       
   597 // -----------------------------------------------------------------------------
       
   598 //
       
   599 // -----------------------------------------------------------------------------
       
   600 //
       
   601 void UT_CMusEngTelephoneUtils::UT_HandleNotifyGenericL()
       
   602     {
       
   603     //Loudspeakers volume changed, no observer
       
   604     iTelephoneUtils->iRepository->Set( KTelIncallLoudspeakerVolume, 8 );
       
   605     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   606     iTelephoneUtils->HandleNotifyGeneric(KTelIncallLoudspeakerVolume);    
       
   607     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 8 )
       
   608     EUNIT_ASSERT( iObserver->iVolume == 0 );
       
   609     
       
   610     //Ear volume changed, observer set => observer notified
       
   611     iTelephoneUtils->SetVolumeChangeObserver(iObserver);
       
   612     iTelephoneUtils->HandleNotifyGeneric(KTelIncallEarVolume);    
       
   613     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   614     EUNIT_ASSERT( iObserver->iVolume == 4 );
       
   615     
       
   616     //Volume hasn't changed => observer not notifies
       
   617     iObserver->iVolume = 0;
       
   618     iTelephoneUtils->HandleNotifyGeneric(KTelIncallEarVolume);    
       
   619     EUNIT_ASSERT( iTelephoneUtils->iCurrentVolume == 4 )
       
   620     EUNIT_ASSERT( iObserver->iVolume == 0 );
   418     }
   621     }
   419 
   622 
   420 
   623 
   421 //  TEST TABLE
   624 //  TEST TABLE
   422 
   625 
   438     "AudioRoutingCanBeChanged",
   641     "AudioRoutingCanBeChanged",
   439     "FUNCTIONALITY",
   642     "FUNCTIONALITY",
   440     SetupL, UT_AudioRoutingCanBeChangedL, Teardown)
   643     SetupL, UT_AudioRoutingCanBeChangedL, Teardown)
   441 
   644 
   442 EUNIT_TEST(
   645 EUNIT_TEST(
       
   646     "IsAudioRoutingHeadset - test ",
       
   647     "CMusEngTelephoneUtils",
       
   648     "IsAudioRoutingHeadset",
       
   649     "FUNCTIONALITY",
       
   650     SetupL, UT_IsAudioRoutingHeadsetL, Teardown)
       
   651     
       
   652 EUNIT_TEST(
       
   653     "IsAudioRoutingLoudSpeaker - test ",
       
   654     "CMusEngTelephoneUtils",
       
   655     "IsAudioRoutingLoudSpeaker",
       
   656     "FUNCTIONALITY",
       
   657     SetupL, UT_IsAudioRoutingLoudSpeakerL, Teardown)    
       
   658     
       
   659 EUNIT_TEST(
   443     "LoudspeakerL - test ",
   660     "LoudspeakerL - test ",
   444     "CMusEngTelephoneUtils",
   661     "CMusEngTelephoneUtils",
   445     "LoudspeakerL",
   662     "LoudspeakerL",
   446     "FUNCTIONALITY",
   663     "FUNCTIONALITY",
   447     SetupL, UT_LoudspeakerLL, Teardown)
   664     SetupL, UT_LoudspeakerLL, Teardown)
   500     "CMusEngTelephoneUtils",
   717     "CMusEngTelephoneUtils",
   501     "Destructor",
   718     "Destructor",
   502     "FUNCTIONALITY",
   719     "FUNCTIONALITY",
   503     SetupL, UT_DestructorL, Teardown)
   720     SetupL, UT_DestructorL, Teardown)
   504 
   721 
   505      
   722 EUNIT_TEST(
       
   723     "UpdateCurrentVolume - test ",
       
   724     "UpdateCurrentVolume",
       
   725     "Destructor",
       
   726     "FUNCTIONALITY",
       
   727     SetupL, UT_UpdateCurrentVolumeL, Teardown)
       
   728     
       
   729 EUNIT_TEST(
       
   730     "HandleNotifyGeneric - test ",
       
   731     "CMusEngTelephoneUtils",
       
   732     "HandleNotifyGeneric",
       
   733     "FUNCTIONALITY",
       
   734     SetupL, UT_HandleNotifyGenericL, Teardown)
       
   735 
   506     
   736     
   507 EUNIT_END_TEST_TABLE
   737 EUNIT_END_TEST_TABLE
   508 
   738 
   509 //  END OF FILE
   739 //  END OF FILE
   510 
   740