diff -r 000000000000 -r 96612d01cf9f videofeeds/server/tsrc/VCXScheduledDownloadTest/src/VCXScheduledDownloadTester.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/server/tsrc/VCXScheduledDownloadTest/src/VCXScheduledDownloadTester.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,430 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* +*/ + + +// INCLUDES +#include "VCXScheduledDownloadTester.h" +#include "VCXTestMyVideosCollectionClient.h" +#include "VCXTestLog.h" + +#include +#include + +// CONSTANTS + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CVCXScheduledDownloadTester::NewL +// ----------------------------------------------------------------------------- +// +CVCXScheduledDownloadTester* CVCXScheduledDownloadTester::NewL( CVCXTestStifScriptBaseExt* aStifScriptBase ) + { + VCXLOGLO1(">>>CVCXScheduledDownloadTester::NewL"); + CVCXScheduledDownloadTester* self = new (ELeave) CVCXScheduledDownloadTester( aStifScriptBase ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::~CVCXScheduledDownloadTester"); + + delete iMyVideosCollectionClient; + iMyVideosCollectionClient = NULL; + + delete iMessageWait; + iMessageWait = NULL; + + delete iSchedulerClient; + iSchedulerClient = NULL; + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::ConstructL"); + iMessageWait = CVCXTestMessageWait::NewL( this ); + + iMyVideosCollectionClient = CVCXTestMyVideosCollectionClient::NewL( this ); + + // Wait for video list to open. + iMessageWait->WaitForMessageL( EVCXTestVideoListRefreshed, 30, ETrue ); + + iSchedulerClient = CCseSchedulerApi::NewL(); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::RefreshL"); + + iMyVideosCollectionClient->RefreshCollectionL(); + iMessageWait->AddMessage( EVCXTestVideoListRefreshed ); + iMessageWait->WaitForAllL( 60, ETrue ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::RemoveAllMediasL"); + + iMyVideosCollectionClient->EnsureMediaFilesAreNotInUseL(); + + TBool retries = 3; + TInt err( KErrNone ); + TBool removalFailed( EFalse ); + + TInt videoCount = iMyVideosCollectionClient->VideoCount(); + TInt downloadCount = iMyVideosCollectionClient->DownloadCount(); + + VCXLOGLO2("CVCXScheduledDownloadTester:: videoCount: %d", videoCount ); + VCXLOGLO2("CVCXScheduledDownloadTester:: downloadCount: %d", downloadCount ); + + do + { + TInt successCount = 0; + + for( TInt i = 0; i < videoCount; i++ ) + { + TRAP( err, RemoveVideoL( 0 ) ); + if( err != KErrNone ) + { + VCXLOGLO2("CVCXScheduledDownloadTester:: removing of video left with %d", err ); + removalFailed = ETrue; + } + else + { + successCount++; + } + } + + videoCount -= successCount; + successCount = 0; + + if( err == KErrNone ) + { + for( TInt i = 0; i < downloadCount; i++ ) + { + TRAP( err, CancelDownloadL( 0 ) ); + if( err != KErrNone ) + { + VCXLOGLO2("CVCXScheduledDownloadTester:: cancel download left with %d", err ); + removalFailed = ETrue; + } + else + { + successCount++; + } + } + } + + downloadCount -= successCount; + + // If something failed, wait minute before retry. + if( removalFailed ) + { + User::After( 60 * 1000000 ); + } + } + while( --retries > 0 && removalFailed ); + + User::LeaveIfError( err ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::RemoveVideoL"); + + iMyVideosCollectionClient->RemoveVideoL( aIndex ); + iMessageWait->AddMessage( EVCXTestVideoVideoDeleted ); + iMessageWait->AddMessage( EVCXTestVideoListRefreshed ); + iMessageWait->WaitForAllL( 60, ETrue ); + + iMyVideosCollectionClient->RefreshCollectionL(); + iMessageWait->AddMessage( EVCXTestVideoListRefreshed ); + iMessageWait->WaitForAllL( 60, ETrue ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::DownloadL"); + + iMessageWait->Reset(); + iMyVideosCollectionClient->DownloadL( aUrl, aIapId, aUserName, aPassword ); + iMessageWait->AddMessage( EVCXTestVideoDownloadStarted ); + iMessageWait->AddMessage( EVCXTestVideoDownloadCompleted ); + iMessageWait->WaitForAllL( 4*60, ETrue ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::CancelDownloadL"); + + iMessageWait->Reset(); + iMyVideosCollectionClient->CancelDownloadL( aIndex ); + + iMessageWait->AddMessage( EVCXTestVideoVideoDeleted ); + iMessageWait->WaitForAllL( 60, ETrue ); + + iMyVideosCollectionClient->RefreshCollectionL(); + iMessageWait->AddMessage( EVCXTestVideoListRefreshed ); + iMessageWait->WaitForAllL( 60, ETrue ); + + VCXLOGLO1("<< aEvents ) + { + VCXLOGLO1(">>>CVCXScheduledDownloadTester::WaitForVideoEventsL"); + + iMessageWait->Reset(); + for( TInt i = 0; i < aEvents.Count(); i++ ) + { + VCXLOGLO2("CVCXScheduledDownloadTester:: message: %d", aEvents[i]); + iMessageWait->AddMessage( aEvents[i] ); + } + iMessageWait->WaitForAllL( aTimeoutSeconds, ETrue ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::CoolDown"); + + iMessageWait->CoolDownL( 30 ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::VideoCount"); + TInt count = iMyVideosCollectionClient->VideoCount(); + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::DownloadCount"); + TInt count = iMyVideosCollectionClient->DownloadCount(); + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::RemoveAllSchedulesL"); + + TTimeIntervalYears years( 2 ); + + TTime start; + start.HomeTime(); + start -= years; + + TTime end; + end.HomeTime(); + end += years; + + RPointerArray programs; + + iSchedulerClient->GetSchedulesByTime( start, end, programs ); + CleanupClosePushL( programs ); + + for( TInt i = 0; i < programs.Count(); i++ ) + { + User::LeaveIfError( iSchedulerClient->RemoveSchedule( programs[i]->DbIdentifier() ) ); + } + + CleanupStack::PopAndDestroy( &programs ); + + VCXLOGLO1("<<>>CVCXScheduledDownloadTester::VideoEventL"); + + iMessageWait->ReceiveMessage( aEvent, aError ); + + switch( aEvent ) + { + case EVCXTestVideoGeneral: + { + VCXLOGLO1("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoGeneral =----->"); + } + break; + + case EVCXTestVideoListRefreshed: + { + VCXLOGLO1("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoListRefreshed =----->"); + } + break; + + case EVCXTestVideoVideoAdded: + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoVideoAdded. Id: %d =----->", aParam1); + } + break; + + case EVCXTestVideoVideoDeleted: + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoVideoDeleted. Id: %d =----->", aParam1); + } + break; + + case EVCXTestVideoDownloadStarted: + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoDownloadStarted. Id: %d =----->", aParam1); + } + break; + + case EVCXTestVideoDownloadPaused: + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoDownloadPaused. Id: %d =----->", aParam1); + } + break; + + case EVCXTestVideoDownloadFailed: + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoDownloadFailed. Id: %d =----->", aParam1); + } + break; + + case EVCXTestVideoDownloadCompleted: + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoDownloadCompleted. Id: %d =----->", aParam1); + } + break; + + case EVCXTestVideoDownloadProgressed: + { + VCXLOGLO3("CVCXScheduledDownloadTester::VideoEventL: EVCXTestVideoDownloadProgressed. Id: %d, progress: %d =----->", aParam1, aParam2); + } + break; + + default: + break; + } + + if( aError != KErrNone ) + { + VCXLOGLO2("CVCXScheduledDownloadTester::VideoEventL: aError: %d =----->", aError); + iError = aError; + } + + VCXLOGLO1("<<Signal( aError ); + } + }