mmshplugins/mmcctranscoder/tsrc/ut_transcoder/src/ut_mcctranscoderimpl.cpp
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
equal deleted inserted replaced
2:b31261fd4e04 15:ccd8e69b5392
     1 /*
       
     2 * Copyright (c) 2008 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:  Unit test
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 //  INTERNAL INCLUDES
       
    21 #include "ut_mcctranscoderimpl.h"
       
    22 #include "transcoderimpl.h"
       
    23 
       
    24 
       
    25 //  SYSTEM INCLUDES
       
    26 #include <digia/eunit/eunitmacros.h>
       
    27 
       
    28 static TInt error;
       
    29 
       
    30 _LIT( KTestMccTranscodeFile, "C:\\data\\videos\\big.3gp" );
       
    31 _LIT( KTestMccTranscodedFile, "C:\\data\\videos\\normal.3gp" );
       
    32 _LIT8( KTestMccTranscodedVideoMimeType, "H264" );
       
    33 _LIT8( KTestMccTranscodedAudioMimeType, "AAC" );
       
    34 
       
    35 #define TC_MEMORY_LEAVE_CHECKING_ON
       
    36 
       
    37 #ifdef TC_MEMORY_LEAVE_CHECKING_ON
       
    38 #define TC_CHECK_MEMORY_LEAVE( conditions ) \
       
    39 if ( !(conditions) )\
       
    40     {\
       
    41     User::Leave( KErrNoMemory );\
       
    42     }
       
    43 
       
    44 #else
       
    45 #define TC_CHECK_MEMORY_LEAVE( conditions ) \
       
    46     EUNIT_ASSERT( conditions )
       
    47 #endif
       
    48 
       
    49 #ifdef TC_MEMORY_LEAVE_CHECKING_ON
       
    50 #define TC_CHECK_MEMORY_LEAVE_NEG( conditions ) \
       
    51 if ( conditions )\
       
    52     {\
       
    53     User::Leave( KErrNoMemory );\
       
    54     }
       
    55 
       
    56 #else
       
    57 #define TC_CHECK_MEMORY_LEAVE_NEG( conditions )
       
    58 #endif
       
    59 
       
    60 
       
    61 void CDeltaTimer::RunL()
       
    62     {
       
    63     }
       
    64 
       
    65 TInt CFileMan::Copy(const TDesC& /*anOld*/,const TDesC& /*aNew*/,TUint /*aSwitches*/)
       
    66     {
       
    67     return error;
       
    68     }
       
    69 
       
    70 
       
    71 // -----------------------------------------------------------------------------
       
    72 //
       
    73 // -----------------------------------------------------------------------------
       
    74 //
       
    75 UT_CMccTranscoderImpl* UT_CMccTranscoderImpl::NewL()
       
    76     {
       
    77     UT_CMccTranscoderImpl* self = UT_CMccTranscoderImpl::NewLC();
       
    78     CleanupStack::Pop( self );
       
    79     return self;
       
    80     }
       
    81 
       
    82 
       
    83 // -----------------------------------------------------------------------------
       
    84 //
       
    85 // -----------------------------------------------------------------------------
       
    86 //
       
    87 UT_CMccTranscoderImpl* UT_CMccTranscoderImpl::NewLC()
       
    88     {
       
    89     UT_CMccTranscoderImpl* self = new( ELeave ) UT_CMccTranscoderImpl();
       
    90     CleanupStack::PushL( self );
       
    91     self->ConstructL();
       
    92     return self;
       
    93     }
       
    94 
       
    95 
       
    96 // -----------------------------------------------------------------------------
       
    97 //
       
    98 // -----------------------------------------------------------------------------
       
    99 //
       
   100 UT_CMccTranscoderImpl::~UT_CMccTranscoderImpl()
       
   101     {
       
   102     }
       
   103 
       
   104 
       
   105 // -----------------------------------------------------------------------------
       
   106 // Default constructor
       
   107 // -----------------------------------------------------------------------------
       
   108 //
       
   109 UT_CMccTranscoderImpl::UT_CMccTranscoderImpl()
       
   110     {
       
   111     // NOP
       
   112     }
       
   113 
       
   114 
       
   115 // -----------------------------------------------------------------------------
       
   116 // Second phase construct
       
   117 // -----------------------------------------------------------------------------
       
   118 //
       
   119 void UT_CMccTranscoderImpl::ConstructL()
       
   120     {
       
   121     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
       
   122     // It generates the test case table.
       
   123     CEUnitTestSuiteClass::ConstructL();
       
   124     }
       
   125     
       
   126 
       
   127 // -----------------------------------------------------------------------------
       
   128 //
       
   129 // -----------------------------------------------------------------------------
       
   130 //
       
   131 void UT_CMccTranscoderImpl::SetupL()
       
   132     {
       
   133     RFs fs;
       
   134     CleanupClosePushL( fs );
       
   135     iMovie = CVedMovie::NewL( &fs );
       
   136     CleanupStack::PopAndDestroy();//fs
       
   137     
       
   138     iMccTranscoder = CMccTranscoderImpl::NewL();
       
   139 
       
   140     iData.iSourceFile = KTestMccTranscodeFile();
       
   141     iData.iDesFile = KTestMccTranscodedFile();
       
   142     iData.iQuality = CVedMovie::EQualityAutomatic;
       
   143     iData.iVideoCodec.iMimeType = KTestMccTranscodedVideoMimeType();
       
   144     iData.iAudioCodec.iMimeType = KTestMccTranscodedAudioMimeType();
       
   145     iMccTranscoder->RegisterEventObserver( *this );
       
   146     
       
   147     Reset();
       
   148     
       
   149     }
       
   150 
       
   151 // -----------------------------------------------------------------------------
       
   152 //
       
   153 // -----------------------------------------------------------------------------
       
   154 //
       
   155 void UT_CMccTranscoderImpl::Setup2L()
       
   156     {
       
   157     RFs fs;
       
   158     CleanupClosePushL( fs );
       
   159     iMovie = CVedMovie::NewL( &fs );
       
   160     CleanupStack::PopAndDestroy();//fs
       
   161     
       
   162     iMccTranscoder = CMccTranscoderImpl::NewL();
       
   163 
       
   164     iData.iSourceFile = KTestMccTranscodeFile();
       
   165     iData.iDesFile = KTestMccTranscodedFile();
       
   166     iData.iQuality = CVedMovie::EQualityMMSInteroperability;
       
   167     iData.iVideoCodec.iMimeType = KNullDesC8;
       
   168     iData.iAudioCodec.iMimeType = KNullDesC8; 
       
   169     iMccTranscoder->RegisterEventObserver( *this );
       
   170     
       
   171     Reset();
       
   172     
       
   173     }
       
   174     
       
   175 // -----------------------------------------------------------------------------
       
   176 //
       
   177 // -----------------------------------------------------------------------------
       
   178 //
       
   179 void UT_CMccTranscoderImpl::Teardown()
       
   180     {
       
   181     delete iMccTranscoder;
       
   182     delete iMovie;
       
   183 
       
   184     }
       
   185 
       
   186 
       
   187 void UT_CMccTranscoderImpl::MccTranscoderEventReceived( TMccEvent& aEvent )
       
   188     {
       
   189     iMccEvent = aEvent;
       
   190     }
       
   191 
       
   192 
       
   193 void UT_CMccTranscoderImpl::Reset( TInt aError )
       
   194     {
       
   195     iMccEvent = TMccEvent();
       
   196     error = aError;
       
   197     
       
   198     }
       
   199 
       
   200 // TEST CASES
       
   201 
       
   202 // -----------------------------------------------------------------------------
       
   203 //
       
   204 // -----------------------------------------------------------------------------
       
   205 //
       
   206 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_RegisterEventObserverL()
       
   207     {
       
   208     EUNIT_ASSERT( iMccTranscoder->iEventObserver );
       
   209     iMccTranscoder->RegisterEventObserver( *this );
       
   210     EUNIT_ASSERT( iMccTranscoder->iEventObserver == this);
       
   211     iMccTranscoder->iEventObserver = NULL;
       
   212     iMccTranscoder->RegisterEventObserver( *this );
       
   213     EUNIT_ASSERT( iMccTranscoder->iEventObserver == this);
       
   214     
       
   215     }
       
   216 
       
   217 
       
   218 
       
   219 // -----------------------------------------------------------------------------
       
   220 //
       
   221 // -----------------------------------------------------------------------------
       
   222 //
       
   223 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_UnregisterEventObserverL()
       
   224     {
       
   225     EUNIT_ASSERT( iMccTranscoder->iEventObserver );
       
   226     iMccTranscoder->UnregisterEventObserver();
       
   227     EUNIT_ASSERT( !iMccTranscoder->iEventObserver );
       
   228     
       
   229     }
       
   230 
       
   231 
       
   232 // -----------------------------------------------------------------------------
       
   233 //
       
   234 // -----------------------------------------------------------------------------
       
   235 //
       
   236 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_TranscodeFileLL()
       
   237     {
       
   238     EUNIT_ASSERT( iMccTranscoder->FindSession( 1 ) == KErrNotFound );
       
   239     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   240     
       
   241     TMccTranscodeFileMsgBuffer data( iData );
       
   242     TUint32 sessionId1 = 0;
       
   243     iMccTranscoder->TranscodeFileL( sessionId1, data );
       
   244     EUNIT_ASSERT( sessionId1 != 0 );
       
   245     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   246     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   247     TUint32 sessionId2 = 0;
       
   248     iMccTranscoder->TranscodeFileL( sessionId2, data );
       
   249     EUNIT_ASSERT( sessionId2 != 0 );
       
   250     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 2 );
       
   251     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   252     EUNIT_ASSERT( sessionId2 != sessionId1 );
       
   253     
       
   254     EUNIT_ASSERT( iMccTranscoder->FindSession( sessionId1 ) == 0 );
       
   255     EUNIT_ASSERT( iMccTranscoder->FindSession( sessionId2 ) == 1 );
       
   256     
       
   257     }
       
   258 
       
   259 // -----------------------------------------------------------------------------
       
   260 //
       
   261 // -----------------------------------------------------------------------------
       
   262 //
       
   263 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_CancelTranscodeFileLL()
       
   264     {
       
   265     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   266     TMccTranscodeFileMsgBuffer data( iData );
       
   267     TUint32 sessionId = 0;
       
   268 
       
   269     EUNIT_ASSERT_LEAVE( iMccTranscoder->CancelTranscodeFileL( sessionId ) );
       
   270     
       
   271     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   272     iMccTranscoder->CancelTranscodeFileL( sessionId );
       
   273     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeCancelled );
       
   274     
       
   275     }
       
   276 
       
   277 // -----------------------------------------------------------------------------
       
   278 //
       
   279 // -----------------------------------------------------------------------------
       
   280 //
       
   281 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyVideoClipAddedL()
       
   282     {
       
   283     // Quality change is not needed after clip has been added
       
   284     //
       
   285     
       
   286     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   287 
       
   288     TMccTranscodeFileMsgBuffer data( iData );
       
   289     
       
   290     iMccTranscoder->NotifyVideoClipAdded( *iMovie, 0 );
       
   291     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   292     TUint32 sessionId = 0;
       
   293     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   294     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   295     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   296     
       
   297     iMccTranscoder->NotifyVideoClipAdded( iMccTranscoder->iSessionArray[0]->Movie(), 0 );
       
   298     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   299     EUNIT_ASSERT_EQUALS( iMccTranscoder->iSessionArray[0]->Movie().iCurrentCallback, 
       
   300                          CVedMovie::ENotifyMovieOutputParametersChanged );
       
   301     
       
   302     }
       
   303 
       
   304 // -----------------------------------------------------------------------------
       
   305 //
       
   306 // -----------------------------------------------------------------------------
       
   307 //
       
   308 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyVideoClipAdded2L()
       
   309     {
       
   310     // Quality change is done once clip is added
       
   311     //
       
   312     
       
   313     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   314 
       
   315     TMccTranscodeFileMsgBuffer data( iData );
       
   316     
       
   317     iMccTranscoder->NotifyVideoClipAdded( *iMovie, 0 );
       
   318     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   319     TUint32 sessionId = 0;
       
   320     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   321     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   322     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   323     
       
   324     iMccTranscoder->NotifyVideoClipAdded( iMccTranscoder->iSessionArray[0]->Movie(), 0 );
       
   325     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   326     EUNIT_ASSERT_EQUALS( iMccTranscoder->iSessionArray[0]->Movie().iCurrentCallback, 
       
   327                          CVedMovie::ENotifyMovieQualityChanged );
       
   328     
       
   329     }
       
   330     
       
   331 // -----------------------------------------------------------------------------
       
   332 //
       
   333 // -----------------------------------------------------------------------------
       
   334 //
       
   335 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyVideoClipAddingFailedL()
       
   336     {
       
   337     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   338     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   339     TMccTranscodeFileMsgBuffer data( iData );
       
   340 
       
   341     iMccTranscoder->NotifyVideoClipAddingFailed( *iMovie, KErrArgument );
       
   342     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   343     
       
   344     TUint32 sessionId = 0;
       
   345     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   346     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   347     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   348 
       
   349     iMccTranscoder->NotifyVideoClipAddingFailed( iMccTranscoder->iSessionArray[0]->Movie(), KErrArgument );
       
   350     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeCompleted );
       
   351     EUNIT_ASSERT( iMccEvent.iErrorCode != KErrNone );
       
   352     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   353     
       
   354     }
       
   355 
       
   356 
       
   357 // -----------------------------------------------------------------------------
       
   358 //
       
   359 // -----------------------------------------------------------------------------
       
   360 //
       
   361 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyVideoClipRemovedL()
       
   362     {
       
   363     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   364     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   365     TMccTranscodeFileMsgBuffer data( iData );
       
   366 
       
   367     iMccTranscoder->NotifyVideoClipRemoved( *iMovie, 0 );
       
   368     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   369     
       
   370     TUint32 sessionId = 0;
       
   371     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   372     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   373     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   374 
       
   375     iMccTranscoder->NotifyVideoClipRemoved( iMccTranscoder->iSessionArray[0]->Movie(), 0 );
       
   376     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   377     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   378     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   379     
       
   380     }
       
   381 
       
   382 
       
   383 // -----------------------------------------------------------------------------
       
   384 //
       
   385 // -----------------------------------------------------------------------------
       
   386 //
       
   387 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyMovieQualityChangedL()
       
   388     {
       
   389     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   390     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   391     TMccTranscodeFileMsgBuffer data( iData );
       
   392 
       
   393     iMccTranscoder->NotifyMovieQualityChanged( *iMovie );
       
   394     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   395     
       
   396     TUint32 sessionId = 0;
       
   397     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   398     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   399     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   400 
       
   401     iMccTranscoder->NotifyMovieQualityChanged( iMccTranscoder->iSessionArray[0]->Movie() );
       
   402     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   403     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   404     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   405 
       
   406     /* error in SetOutputParametersL
       
   407      * 
       
   408     Reset();
       
   409     iMccTranscoder->NotifyMovieQualityChanged( iMccTranscoder->iSessionArray[0]->Movie() );
       
   410     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeCompleted );
       
   411     EUNIT_ASSERT( iMccEvent.iErrorCode != KErrNone );
       
   412     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   413     */
       
   414 
       
   415     }
       
   416 
       
   417 
       
   418 // -----------------------------------------------------------------------------
       
   419 //
       
   420 // -----------------------------------------------------------------------------
       
   421 //
       
   422 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyMovieProcessingStartedLL()
       
   423     {
       
   424     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   425     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   426     TMccTranscodeFileMsgBuffer data( iData );
       
   427 
       
   428     iMccTranscoder->NotifyMovieProcessingStartedL( *iMovie );
       
   429     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   430 
       
   431     TUint32 sessionId = 0;
       
   432     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   433     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   434     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   435     
       
   436     iMccTranscoder->NotifyMovieProcessingStartedL( iMccTranscoder->iSessionArray[0]->Movie() );
       
   437     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeInProgress );
       
   438     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   439 
       
   440     
       
   441     }
       
   442 
       
   443 
       
   444 // -----------------------------------------------------------------------------
       
   445 //
       
   446 // -----------------------------------------------------------------------------
       
   447 //
       
   448 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyMovieOutputParametersChangedL()
       
   449     {
       
   450     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   451     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   452     TMccTranscodeFileMsgBuffer data( iData );
       
   453 
       
   454     iMccTranscoder->NotifyMovieOutputParametersChanged( *iMovie );
       
   455     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   456     
       
   457     TUint32 sessionId = 0;
       
   458     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   459     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   460     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   461 
       
   462     iMccTranscoder->NotifyMovieOutputParametersChanged( iMccTranscoder->iSessionArray[0]->Movie() );
       
   463     TC_CHECK_MEMORY_LEAVE( iMccEvent.iEventType == KMccEventNone );
       
   464     
       
   465     //processL fails
       
   466     Reset( KErrNotFound );
       
   467     iMccTranscoder->NotifyMovieOutputParametersChanged( iMccTranscoder->iSessionArray[0]->Movie() );
       
   468     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeCompleted );
       
   469     EUNIT_ASSERT( iMccEvent.iErrorCode != KErrNone );
       
   470 
       
   471     
       
   472 
       
   473     }
       
   474 
       
   475 // -----------------------------------------------------------------------------
       
   476 //
       
   477 // -----------------------------------------------------------------------------
       
   478 //
       
   479 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyMovieProcessingProgressedL()                                                                                                                                                                                                                                                                                    
       
   480     {
       
   481     TInt testData1 = 5;
       
   482     TInt testData2 = 10;
       
   483     
       
   484     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   485     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   486     TMccTranscodeFileMsgBuffer data( iData );
       
   487 
       
   488     iMccTranscoder->NotifyMovieProcessingProgressed( *iMovie, 0 );
       
   489     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   490 
       
   491     TUint32 sessionId = 0;
       
   492     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   493     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   494     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   495 
       
   496     // Progress is notified only at 10%, 20% etc.
       
   497     iMccTranscoder->NotifyMovieProcessingProgressed( iMccTranscoder->iSessionArray[0]->Movie(), testData1 );
       
   498     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   499     
       
   500     iMccTranscoder->NotifyMovieProcessingProgressed( iMccTranscoder->iSessionArray[0]->Movie(), testData2 );
       
   501     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeInProgress );
       
   502     EUNIT_ASSERT( iMccEvent.iEventNumData == testData2 );
       
   503     
       
   504     
       
   505     }
       
   506 
       
   507 
       
   508 // -----------------------------------------------------------------------------
       
   509 //
       
   510 // -----------------------------------------------------------------------------
       
   511 //
       
   512 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_NotifyMovieProcessingCompletedL() 
       
   513     {
       
   514     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   515     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrNone );
       
   516     TMccTranscodeFileMsgBuffer data( iData );
       
   517 
       
   518     iMccTranscoder->NotifyMovieProcessingCompleted( *iMovie, 0 );
       
   519     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   520 
       
   521     TUint32 sessionId = 0;
       
   522     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   523     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   524     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   525 
       
   526     iMccTranscoder->NotifyMovieProcessingCompleted( iMccTranscoder->iSessionArray[0]->Movie(), KErrArgument );
       
   527     EUNIT_ASSERT( iMccEvent.iEventType == KMccTranscodeCompleted );
       
   528     EUNIT_ASSERT( iMccEvent.iErrorCode == KErrArgument );
       
   529     EUNIT_ASSERT( iMccEvent.iEventNumData == 100 );
       
   530     
       
   531     }
       
   532 
       
   533 
       
   534 // -----------------------------------------------------------------------------
       
   535 //
       
   536 // -----------------------------------------------------------------------------
       
   537 //
       
   538 void UT_CMccTranscoderImpl::UT_CMccTranscoderImpl_AsyncTimerExpiredL()
       
   539     {
       
   540 
       
   541     iMccTranscoder->AsyncTimerExpired( NULL );
       
   542     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 0 );
       
   543     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   544 
       
   545     iMccTranscoder->AsyncTimerExpired( iMccTranscoder );
       
   546     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 0 );
       
   547     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   548 
       
   549     TMccTranscodeFileMsgBuffer data( iData );
       
   550     TUint32 sessionId = 0;
       
   551     iMccTranscoder->TranscodeFileL( sessionId, data );
       
   552     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   553     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   554 
       
   555     iMccTranscoder->AsyncTimerExpired( iMccTranscoder );
       
   556     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 1 );
       
   557     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   558     
       
   559     iMccTranscoder->RemoveSession( 0 );
       
   560     iMccTranscoder->AsyncTimerExpired( iMccTranscoder );
       
   561     EUNIT_ASSERT( iMccTranscoder->iSessionArray.Count() == 0 );
       
   562     EUNIT_ASSERT( iMccEvent.iEventType == KMccEventNone );
       
   563     
       
   564 
       
   565     }
       
   566 
       
   567    
       
   568 
       
   569 
       
   570 //  TEST TABLE
       
   571 
       
   572 EUNIT_BEGIN_TEST_TABLE(
       
   573     UT_CMccTranscoderImpl,
       
   574     "UT_CMccTranscoderImpl",
       
   575     "UNIT" )
       
   576 
       
   577 EUNIT_TEST(
       
   578     "RegisterEventObserver - test",
       
   579     "CMccTranscoderImpl",
       
   580     "RegisterEventObserver",
       
   581     "FUNCTIONALITY",
       
   582     SetupL, UT_CMccTranscoderImpl_RegisterEventObserverL, Teardown)
       
   583 
       
   584 EUNIT_TEST(
       
   585     "UnregisterEventObserver - test",
       
   586     "CMccTranscoderImpl",
       
   587     "UnregisterEventObserver",
       
   588     "FUNCTIONALITY",
       
   589     SetupL, UT_CMccTranscoderImpl_UnregisterEventObserverL, Teardown)
       
   590 
       
   591 EUNIT_TEST(
       
   592     "TranscodeFileL - test",
       
   593     "CMccTranscoderImpl",
       
   594     "TranscodeFileL",
       
   595     "FUNCTIONALITY",
       
   596     SetupL, UT_CMccTranscoderImpl_TranscodeFileLL, Teardown)
       
   597 
       
   598 EUNIT_TEST(
       
   599     "CancelTranscodeFileL - test",
       
   600     "CMccTranscoderImpl",
       
   601     "CancelTranscodeFileL",
       
   602     "FUNCTIONALITY",
       
   603     SetupL, UT_CMccTranscoderImpl_CancelTranscodeFileLL, Teardown)
       
   604 
       
   605 EUNIT_TEST(
       
   606     "NotifyVideoClipAdded - test",
       
   607     "CMccTranscoderImpl",
       
   608     "NotifyVideoClipAdded",
       
   609     "FUNCTIONALITY",
       
   610     SetupL, UT_CMccTranscoderImpl_NotifyVideoClipAddedL, Teardown)
       
   611 
       
   612 EUNIT_TEST(
       
   613     "NotifyVideoClipAdded 2 - test",
       
   614     "CMccTranscoderImpl",
       
   615     "NotifyVideoClipAdded 2",
       
   616     "FUNCTIONALITY",
       
   617     Setup2L, UT_CMccTranscoderImpl_NotifyVideoClipAdded2L, Teardown)
       
   618 
       
   619 EUNIT_TEST(
       
   620     "NotifyVideoClipAddingFailed - test",
       
   621     "CMccTranscoderImpl",
       
   622     "NotifyVideoClipAddingFailed",
       
   623     "FUNCTIONALITY",
       
   624     SetupL, UT_CMccTranscoderImpl_NotifyVideoClipAddingFailedL, Teardown)
       
   625 
       
   626 EUNIT_TEST(
       
   627     "NotifyVideoClipRemoved - test",
       
   628     "CMccTranscoderImpl",
       
   629     "NotifyVideoClipRemoved",
       
   630     "FUNCTIONALITY",
       
   631     SetupL, UT_CMccTranscoderImpl_NotifyVideoClipRemovedL, Teardown)
       
   632 
       
   633 EUNIT_TEST(
       
   634     "NotifyMovieQualityChanged - test",
       
   635     "CMccTranscoderImpl",
       
   636     "NotifyMovieQualityChanged",
       
   637     "FUNCTIONALITY",
       
   638     SetupL, UT_CMccTranscoderImpl_NotifyMovieQualityChangedL, Teardown)
       
   639 
       
   640 EUNIT_TEST(
       
   641     "NotifyMovieOutputParametersChanged - test",
       
   642     "CMccTranscoderImpl",
       
   643     "NotifyMovieOutputParametersChanged",
       
   644     "FUNCTIONALITY",
       
   645     SetupL, UT_CMccTranscoderImpl_NotifyMovieOutputParametersChangedL, Teardown)
       
   646 
       
   647 
       
   648 EUNIT_TEST(
       
   649     "NotifyMovieProcessingStartedL - test",
       
   650     "CMccTranscoderImpl",
       
   651     "NotifyMovieProcessingStartedL",
       
   652     "FUNCTIONALITY",
       
   653     SetupL, UT_CMccTranscoderImpl_NotifyMovieProcessingStartedLL, Teardown)
       
   654 
       
   655 EUNIT_TEST(
       
   656     "NotifyMovieProcessingProgressed - test",
       
   657     "CMccTranscoderImpl",
       
   658     "NotifyMovieProcessingProgressed",
       
   659     "FUNCTIONALITY",
       
   660     SetupL, UT_CMccTranscoderImpl_NotifyMovieProcessingProgressedL, Teardown)
       
   661 
       
   662 EUNIT_TEST(
       
   663     "NotifyMovieProcessingCompleted - test",
       
   664     "CMccTranscoderImpl",
       
   665     "NotifyMovieProcessingCompleted",
       
   666     "FUNCTIONALITY",
       
   667     SetupL, UT_CMccTranscoderImpl_NotifyMovieProcessingCompletedL, Teardown)
       
   668 
       
   669 EUNIT_TEST(
       
   670     "AsyncTimerExpired - test",
       
   671     "CMccTranscoderImpl",
       
   672     "AsyncTimerExpired",
       
   673     "FUNCTIONALITY",
       
   674     SetupL, UT_CMccTranscoderImpl_AsyncTimerExpiredL, Teardown)
       
   675 
       
   676 
       
   677 EUNIT_END_TEST_TABLE
       
   678 
       
   679 //  END OF FILE
       
   680 
       
   681