diff -r 000000000000 -r f0cf47e981f9 mmshplugins/mmcctranscoder/tsrc/ut_transcoder/src/ut_mcctranscodersessioninfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmshplugins/mmcctranscoder/tsrc/ut_transcoder/src/ut_mcctranscodersessioninfo.cpp Thu Dec 17 08:44:37 2009 +0200 @@ -0,0 +1,532 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Unit test +* +*/ + + + +// INTERNAL INCLUDES +#include "ut_mcctranscodersessioninfo.h" +#include "transcodersessioninfo.h" +#include + + +// SYSTEM INCLUDES +#include + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMccTranscoderSessionInfo* UT_CMccTranscoderSessionInfo::NewL() + { + UT_CMccTranscoderSessionInfo* self = UT_CMccTranscoderSessionInfo::NewLC(); + CleanupStack::Pop( self ); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMccTranscoderSessionInfo* UT_CMccTranscoderSessionInfo::NewLC() + { + UT_CMccTranscoderSessionInfo* self = new( ELeave ) UT_CMccTranscoderSessionInfo(); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +UT_CMccTranscoderSessionInfo::~UT_CMccTranscoderSessionInfo() + { + } + + +// ----------------------------------------------------------------------------- +// Default constructor +// ----------------------------------------------------------------------------- +// +UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo() + { + // NOP + } + + +// ----------------------------------------------------------------------------- +// Second phase construct +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::SetupL() + { + RFs fs; + CleanupClosePushL( fs ); + iMovie = CVedMovie::NewL( &fs ); + CleanupStack::PopAndDestroy();//fs + iSession = CMccTranscoderSessionInfo::NewLC(); + CleanupStack::Pop(); + + CMccTranscoderAudioCodec* acodec = CMccTranscoderAudioCodec::NewL(); + iSession->SetAudioCodec( acodec ); + CMccTranscoderVideoCodec* vcodec = CMccTranscoderVideoCodec::NewL(); + iSession->SetVideoCodec( vcodec ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::Teardown() + { + delete iSession; + delete iMovie; + + } + + + +// TEST CASES + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_SetQualityL() + { + + EUNIT_ASSERT( !iSession->iQuality ); + + iSession->SetQuality( CVedMovie::EQualityAutomatic ); + EUNIT_ASSERT( iSession->Quality() == CVedMovie::EQualityAutomatic ); + + iSession->SetQuality( CVedMovie::EQualityMMSInteroperability ); + EUNIT_ASSERT( iSession->Quality() == CVedMovie::EQualityMMSInteroperability ); + + iSession->SetQuality( CVedMovie::EQualityResolutionCIF ); + EUNIT_ASSERT( iSession->Quality() == CVedMovie::EQualityResolutionCIF ); + + iSession->SetQuality( CVedMovie::EQualityLast ); + EUNIT_ASSERT( iSession->Quality() == CVedMovie::EQualityLast ); + + iSession->SetQuality( 589 ); + EUNIT_ASSERT( iSession->Quality() == CVedMovie::EQualityLast ); + + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_CreateMovieLL() + { + + EUNIT_ASSERT( !iSession->iMovie ); + + iSession->CreateMovieL(); + EUNIT_ASSERT( &iSession->Movie() ); + + iSession->CreateMovieL(); + EUNIT_ASSERT( &iSession->Movie() ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_SetDesFileLL() + { + + _LIT( KTestFile, "C:\\testfile.3gp"); + + EUNIT_ASSERT( iSession->iDesFile.Length() == 0 ); + EUNIT_ASSERT_LEAVE( iSession->SetDesFileL( KNullDesC ) ); + + EUNIT_ASSERT( iSession->iDesFile.Length() == 0 ); + iSession->SetDesFileL( KTestFile ); + EUNIT_ASSERT( iSession->DesFile() == KTestFile() ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_SetVideoCodecL() + { + EUNIT_ASSERT( iSession->iVideoCodec ); + + CMccTranscoderVideoCodec* codec = CMccTranscoderVideoCodec::NewL(); + iSession->SetVideoCodec( codec ); + EUNIT_ASSERT( &iSession->VideoCodec() == codec ); + + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_SetAudioCodecL() + { + EUNIT_ASSERT( iSession->iAudioCodec ); + + CMccTranscoderAudioCodec* codec = CMccTranscoderAudioCodec::NewL(); + iSession->SetAudioCodec( codec ); + EUNIT_ASSERT( &iSession->AudioCodec() == codec ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_SetVideoTypeL() + { + + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeUnrecognized ); + + iSession->SetVideoType( KAVCSdpName, 0 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeAVCBaselineProfile ); + + iSession->SetVideoType( KH263SdpName, 0 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeH263Profile0Level10 ); + + iSession->SetVideoType( KH2631998SdpName, 0 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeH263Profile0Level10 ); + + iSession->SetVideoType( KH2632000SdpName, 0 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeH263Profile0Level10 ); + + iSession->SetVideoType( KH2632000SdpName, 64001 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeH263Profile0Level45 ); + + iSession->SetVideoType( KH2632000SdpName, 64001 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeH263Profile0Level45 ); + + iSession->VideoCodec().SetVideoType( EVedVideoTypeUnrecognized ); + iSession->SetVideoType( KH2632000SdpName, 128001 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeUnrecognized ); + + + iSession->SetVideoType( KNullDesC8, 64001 ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeUnrecognized ); + + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_SetAudioTypeL() + { + + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeUnrecognized ); + + iSession->SetAudioType( KAACSdpName ); + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeAAC_LC ); + + iSession->SetAudioType( KAMRSdpName ); + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeAMR ); + + iSession->SetAudioType( KNullDesC8 ); + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeUnrecognized ); + + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_CheckVideoCodecLL() + { + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeUnrecognized ); + + TMccTranscoderCodecInfo info; + iSession->CheckVideoCodecL( info ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeUnrecognized ); + + info.iMimeType = KAVCSdpName(); + iSession->CheckVideoCodecL( info ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeAVCBaselineProfile ); + + delete iSession->iVideoCodec; + iSession->iVideoCodec = NULL; + iSession->CheckVideoCodecL( info ); + EUNIT_ASSERT( iSession->VideoCodec().VideoType() == EVedVideoTypeAVCBaselineProfile ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_CheckAudioCodecLL() + { + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeUnrecognized ); + + TMccTranscoderCodecInfo info; + iSession->CheckAudioCodecL( info ); + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeUnrecognized ); + + info.iMimeType = KAACSdpName(); + iSession->CheckAudioCodecL( info ); + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeAAC_LC ); + + delete iSession->iAudioCodec; + iSession->iAudioCodec = NULL; + iSession->CheckAudioCodecL( info ); + EUNIT_ASSERT( iSession->AudioCodec().AudioType() == EVedAudioTypeAAC_LC ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_GetPutputParametersL() + { + iSession->SetVideoType( KAVCSdpName, 0 ); + iSession->SetAudioType( KAACSdpName ); + + TVedOutputParameters params; + + iSession->GetPutputParameters( params ); + EUNIT_ASSERT( params.iVideoType == EVedVideoTypeAVCBaselineProfile ); + EUNIT_ASSERT( params.iAudioType == EVedAudioTypeAAC_LC ); + + + // Video codec present, but no audio codec + iSession->CreateMovieL(); + delete iSession->iAudioCodec; + iSession->iAudioCodec = NULL; + + // Strange compatibility hack needed when using avc without audio + iSession->iMovie->iAudioType = EVedAudioTypeNoAudio; + params.iAudioBitrate = 0; + iSession->GetPutputParameters( params ); + EUNIT_ASSERT( params.iVideoType == EVedVideoTypeAVCBaselineProfile ); + EUNIT_ASSERT( params.iAudioType == EVedAudioTypeNoAudio ); + EUNIT_ASSERT( params.iAudioBitrate == 16000 ); + + // No hack needed for H263 codec without audio + iSession->iVideoCodec->SetVideoType( EVedVideoTypeH263Profile0Level10 ); + params.iAudioBitrate = 0; + iSession->GetPutputParameters( params ); + EUNIT_ASSERT( params.iVideoType == EVedVideoTypeH263Profile0Level10 ); + EUNIT_ASSERT( params.iAudioType == EVedAudioTypeNoAudio ); + EUNIT_ASSERT( params.iAudioBitrate == 0 ); + + // Either of codecs are present + iSession->iMovie->iAudioType = EVedAudioTypeAMR; + delete iSession->iVideoCodec; + iSession->iVideoCodec = NULL; + + iSession->GetPutputParameters( params ); + EUNIT_ASSERT( params.iSyncIntervalInPicture == 0 ); + + delete iSession->iMovie; + iSession->iMovie = NULL; + + iSession->GetPutputParameters( params ); + EUNIT_ASSERT( params.iSyncIntervalInPicture == 0 ); + + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_ProgressedL() + { + EUNIT_ASSERT( !iSession->iAudioNotPresent ); + + EUNIT_ASSERT( iSession->Progressed( 20 ) == 20 ); + iSession->iAudioNotPresent = ETrue; + EUNIT_ASSERT( iSession->Progressed( 50 ) == 50 * 2 ); + EUNIT_ASSERT( iSession->Progressed( 49 ) == 49 * 2 ); + EUNIT_ASSERT( iSession->Progressed( 75 ) == 75 ); + + } + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_ClipAddedL() + { + EUNIT_ASSERT( !iSession->iAudioNotPresent ); + iSession->ClipAdded(); + EUNIT_ASSERT( !iSession->iAudioNotPresent ); + + iSession->CreateMovieL(); + iSession->ClipAdded(); + + } + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +void UT_CMccTranscoderSessionInfo::UT_CMccTranscoderSessionInfo_QualityChangeNeededL() + { + iSession->SetQuality( CVedMovie::EQualityMMSInteroperability ); + EUNIT_ASSERT( !iSession->QualityChangeNeeded() ); + + iSession->SetVideoCodec( NULL ); + EUNIT_ASSERT( iSession->QualityChangeNeeded() ); + + + iSession->SetQuality( CVedMovie::EQualityAutomatic ); + EUNIT_ASSERT( !iSession->QualityChangeNeeded() ); + } + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMccTranscoderSessionInfo, + "UT_CMccTranscoderSessionInfo", + "UNIT" ) + +EUNIT_TEST( + "SetQuality - test", + "CMccTranscoderSessionInfo", + "SetQuality", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_SetQualityL, Teardown) + +EUNIT_TEST( + "CreateMovieL - test", + "CMccTranscoderSessionInfo", + "CreateMovieL", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_CreateMovieLL, Teardown) + +EUNIT_TEST( + "SetDesFileL - test", + "CMccTranscoderSessionInfo", + "SetDesFileL", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_SetDesFileLL, Teardown) + +EUNIT_TEST( + "SetVideoCodec - test", + "CMccTranscoderSessionInfo", + "SetVideoCodec", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_SetVideoCodecL, Teardown) + +EUNIT_TEST( + "SetAudioCodec - test", + "CMccTranscoderSessionInfo", + "SetAudioCodec", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_SetAudioCodecL, Teardown) + +EUNIT_TEST( + "SetVideoType - test", + "CMccTranscoderSessionInfo", + "SetVideoType", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_SetVideoTypeL, Teardown) + +EUNIT_TEST( + "SetAudioType - test", + "CMccTranscoderSessionInfo", + "SetAudioType", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_SetAudioTypeL, Teardown) + +EUNIT_TEST( + "CheckVideoCodecL - test", + "CMccTranscoderSessionInfo", + "CheckVideoCodecL", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_CheckVideoCodecLL, Teardown) + +EUNIT_TEST( + "CheckAudioCodecL - test", + "CMccTranscoderSessionInfo", + "CheckAudioCodecL", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_CheckAudioCodecLL, Teardown) + +EUNIT_TEST( + "GetPutputParameters - test", + "CMccTranscoderSessionInfo", + "GetPutputParameters", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_GetPutputParametersL, Teardown) + +EUNIT_TEST( + "Progressed - test", + "CMccTranscoderSessionInfo", + "Progressed", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_ProgressedL, Teardown) + +EUNIT_TEST( + "ClipAdded - test", + "CMccTranscoderSessionInfo", + "ClipAdded", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_ClipAddedL, Teardown) + +EUNIT_TEST( + "QualityChangeNeeded - test", + "CMccTranscoderSessionInfo", + "QualityChangeNeeded", + "FUNCTIONALITY", + SetupL, UT_CMccTranscoderSessionInfo_QualityChangeNeededL, Teardown) + + +EUNIT_END_TEST_TABLE + +// END OF FILE + +