diff -r 000000000000 -r 96612d01cf9f videofeeds/server/tsrc/VCXVodContentApiTest/VCXTestEcgFileObserver/src/IptvTestEcgFileObserverBlocks.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/server/tsrc/VCXVodContentApiTest/VCXTestEcgFileObserver/src/IptvTestEcgFileObserverBlocks.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,595 @@ +/* +* Copyright (c) 2002 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: ?Description* +*/ + + + + +// [INCLUDE FILES] - do not remove +#include +#include +#include +#include "IptvTestEcgFileObserver.h" + +// INCLUDE FILES +#include +#include +#include + +#include "VCXTestLog.h" +#include "TestUtilConnection.h" +#include "TestUtilConnectionWaiter.h" +#include "IptvTestDownloadManager.h" +#include "VCXTestCommon.h" +#include "CIptvTestMobilecrashWatcher.h" +#include +#include +#include "VCXTestCommon.h" +#include "CIptvTestUtilities.h" + +class CIptvTestUtilities; + +// CONSTANTS + +_LIT( KDateTimeString, "%D%M%Y%/0%1%/1%2%/2%3%/3 %-B%:0%H%:1%T%:2%S%.%*C2%:3%-B" ); +_LIT( KServicePathFormat, "C:\\data\\videocenter\\ecg\\%d\\tbn\\" ); + +/* 5 videos; thumbnails: all; touch TN file: all */ +_LIT( KIptvTestUrlUpdateAll, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op30=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op31=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op32=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op33=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op34=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text" ); + +/* 5 videos; thumbnails: all; touch TN file: none */ +_LIT( KIptvTestUrl1, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text" ); + +/* 5 videos; thumbnails: all; touch TN file: 0, 2, 4 */ +_LIT( KIptvTestUrl2, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op30=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op32=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op34=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text" ); + +/* 5 videos; touch feed TN; thumbnails: all; touch TN file: none */ +_LIT( KIptvTestUrl3, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&opx=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text" ); + +/* 4 videos; touch feed TN; thumbnails: all */ +_LIT( KIptvTestUrl4, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text" ); + +/* Videos 0-3, same thumbnails in 0,1 and 2,3 */ +_LIT( KIptvTestUrl5, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op30=on&op71=n95_1.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op31=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op32=on&op73=n95_3.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op33=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text" ); + +/* 3 videos; thumbnails: 1, 2; touch TN file: 1, 2 */ +_LIT( KIptvTestUrl6, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op30=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op31=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text&XIIT=1" ); + +/* 3 videos; thumbnails: 1, 3; touch TN file: 1, 2 */ +_LIT( KIptvTestUrl7, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op30=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op31=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text&XIIT=1" ); + +/* Videos 1,2,4,5, thumbnails in all, not touched */ +_LIT( KIptvTestUrl8, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text&XIIT=1"); + +/* Videos 1, 2, thumbnails, 2nd touched */ +_LIT( KIptvTestUrl9, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op31=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text&XIIT=1"); + +/* All videos, thumbnails, last one touched */ +_LIT( KIptvTestUrl10, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op25=on&op15=on&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op26=on&op16=on&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op27=on&op17=on&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&op28=on&op18=on&op38=on&hiddenfield=Secret+Text"); + +/* All videos, thumbnails, first one touched */ +_LIT( KIptvTestUrl11, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op30=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op24=on&op14=on&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op25=on&op15=on&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op26=on&op16=on&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op27=on&op17=on&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&op28=on&op18=on&hiddenfield=Secret+Text"); + +/* Videos 0-3, thumbnails */ +_LIT( KIptvTestUrl12, "http://193.65.182.78/cgi-bin/nokia_tntest_engine.cgi?op0=on&op70=n95_1.png&op80=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op90=N95&op20=on&op10=on&op71=n95_2.png&op81=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op91=N95&op21=on&op11=on&op72=n95_3.png&op82=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op92=N95&op22=on&op12=on&op73=n93.png&op83=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op93=N9x+and+N80&op23=on&op13=on&op74=n80.png&op84=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op94=N9x+and+N80&op75=n91.png&op85=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op95=N9x+and+N80&op76=n76.png&op86=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op96=N7x&op77=n70.png&op87=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op97=N7x&op78=n72.png&op88=Fri%2C+26+May+2015+14%3A35%3A26+GMT&op98=N7x&hiddenfield=Secret+Text"); + +// MODULE DATA STRUCTURES + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CIptvTestEcgFileObserver::Delete +// Delete here all resources allocated and opened from test methods. +// Called from destructor. +// ----------------------------------------------------------------------------- +// +void CIptvTestEcgFileObserver::Delete() + { + if(iDownloadManager) + { + delete iDownloadManager; + iDownloadManager = NULL; + } + iFs.Close(); + } + +// ----------------------------------------------------------------------------- +// CIptvTestEcgFileObserver::RunMethodL +// Run specified method. Contains also table of test mothods and their names. +// ----------------------------------------------------------------------------- +// +TInt CIptvTestEcgFileObserver::RunMethodL( + CStifItemParser& aItem ) + { + + static TStifFunctionInfo const KFunctions[] = + { + // Copy this line for every implemented function. + // First string is the function name used in TestScripter script file. + // Second is the actual implementation member function. + ENTRY( "SetObservedServicePath", CIptvTestEcgFileObserver::SetObservedServicePathL ), + ENTRY( "Download", CIptvTestEcgFileObserver::DownloadL ), + ENTRY( "AddObservedFilename", CIptvTestEcgFileObserver::AddObservedFilenameL ), + ENTRY( "GetFileDate", CIptvTestEcgFileObserver::GetFileDateL ), + ENTRY( "CheckFileDate", CIptvTestEcgFileObserver::CheckFileDateL ), + ENTRY( "CheckFileState", CIptvTestEcgFileObserver::CheckFileState ), + ENTRY( "SyncTimeWithServer", CIptvTestEcgFileObserver::SyncTimeWithServerL ), + //ADD NEW ENTRY HERE + // [test cases entries] - Do not remove + + }; + + const TInt count = sizeof( KFunctions ) / + sizeof( TStifFunctionInfo ); + + return RunInternalL( KFunctions, count, aItem ); + + } + +// ----------------------------------------------------------------------------- +// CIptvTestEcgFileObserver::DownloadL +// ----------------------------------------------------------------------------- +// +TInt CIptvTestEcgFileObserver::DownloadL( CStifItemParser& aItem ) + { + VCXLOGLO1(">>>CIptvTestEcgFileObserver::DownloadL"); + // Print to UI + _LIT( KIptvTestUtilModule, "CIptvTestEcgFileObserver" ); + _LIT( KWhere, "In DownloadL" ); + TestModuleIf().Printf( 0, KIptvTestUtilModule, KWhere ); + // Print to log file + iLog->Log( KWhere ); + + TInt err = KErrNone; + + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + + TPtrC pAddress, pOutFile, pUserName, pPassword, pIapName; + + if( aItem.GetNextString ( pAddress ) != KErrNone ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::DownloadL: Could not read parameter address!"); + return KErrGeneral; + } + + HBufC* heapBuffer = HBufC::NewL(4000); + TPtr ptr( heapBuffer->Des() ); + + if( ParseAddress( pAddress ) ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::DownloadL: Using hard coded address."); + } + ptr.Copy( pAddress ); + + if( aItem.GetNextString ( pOutFile ) != KErrNone ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::DownloadL: Could not read parameter outputfile!"); + return KErrGeneral; + } + + if( aItem.GetNextString ( pUserName ) != KErrNone ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::DownloadL: no user name specified!"); + } + + if( aItem.GetNextString ( pPassword ) != KErrNone ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::DownloadL: no password specified!"); + } + + if( aItem.GetNextString ( pIapName ) != KErrNone ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::DownloadL: no iap specified!"); + } + + VCXLOGLO2("Address: %S", &pAddress); + VCXLOGLO2("OutFile: %S", &pOutFile); + VCXLOGLO2("name: %S", &pUserName); + VCXLOGLO2("Password: %S", &pPassword); + VCXLOGLO2("Iap: %S", &pIapName); + + if(iDownloadManager) + { + delete iDownloadManager; + iDownloadManager = NULL; + } + + if(!iDownloadManager) + { + iDownloadManager = CIptvTestDownloadManager::NewL(this); + } + + TUint32 iapId(0); + + CVCXTestCommon* vcxCommon; + vcxCommon = CVCXTestCommon::NewL(); + vcxCommon->GetIapIdL( pIapName, iapId ); + delete vcxCommon; + + err = iDownloadManager->DownloadL(ptr, pOutFile, pUserName, pPassword, iapId); + if(err != KErrNone) + { + VCXLOGLO2("iDownloadManager returned: %d", err); + } + + VCXLOGLO1("<<>>CIptvTestEcgFileObserver::SetObservedFilenameL"); + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + + TInt error( 0 ); + TPtrC serviceName; + error = aItem.GetNextString( serviceName ); + if( error != KErrNone ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::SetObservedFilenameL -- No service given!"); + VCXLOGLO1("<<GetServiceIdByNameL( serviceName, serviceId ); + delete util; + + iObservedServicePath = HBufC::NewL(1024); + iObservedServicePath->Des().Format( KServicePathFormat(), serviceId ); + VCXLOGLO2("CIptvTestEcgFileObserver::SetObservedServicePathL -- path: %S", iObservedServicePath ); + + iObservedFiles.ResetAndDestroy(); + + VCXLOGLO1("<<>>CIptvTestUtilModule::AddObservedFilenameL"); + /* + // Print to UI + _LIT( KIptvTestEcgFileObserver, "IptvTestEcgFileObserver" ); + _LIT( KWhere, "In AddObservedFilenameL" ); + TestModuleIf().Printf( 0, KIptvTestEcgFileObserver, KWhere ); + // Print to log file + iLog->Log( KWhere ); + */ + + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + + TPtrC tempFileName; + while( aItem.GetNextString( tempFileName ) == KErrNone ) + { + HBufC* temp = HBufC::NewL( tempFileName.Length() + 1 + iObservedServicePath->Length() + 1); + CleanupStack::PushL(temp); + temp->Des().Append( *iObservedServicePath ); + temp->Des().Append( tempFileName ); + VCXLOGLO2("CIptvTestEcgFileObserver::SetObservedFilenameL -- adding: %S", temp ); + iObservedFiles.AppendL( temp ); + CleanupStack::Pop(temp); + } + VCXLOGLO1("<<>>CIptvTestEcgFileObserver::GetFileDateL"); + + iFileModifiedDates.Reset(); + + TInt err( 0 ); + TInt index( 0 ); + for( index = 0; index < iObservedFiles.Count() ; index++ ) + { + HBufC16* fileName = iObservedFiles[index]; + VCXLOGLO2("CIptvTestEcgFileObserver::GetFileDate -- fetching: %S", fileName); + + TBuf<256> timeString; + RFile file; + CleanupClosePushL(file); + TInt err = file.Open(iFs, *fileName, EFileRead); + TTime temp( 0 ); + if( err == KErrNone ) + { + file.Modified( temp ); + temp.FormatL(timeString, KDateTimeString); + file.Close(); + } + VCXLOGLO2("CIptvTestEcgFileObserver::GetFileDate -- date: %S", &timeString ); + CleanupStack::PopAndDestroy(); + iFileModifiedDates.Append( temp ); + } + VCXLOGLO2("<<>>CIptvTestEcgFileObserver::CheckFileDateL"); + + TInt err( 0 ); + + /* Check every observed file for modified date */ + TInt index( 0 ); + TBuf<256> timeSaved; + TBuf<256> timeCheck; + + for( index = 0; index < iObservedFiles.Count() ; index++ ) + { + TBool expectedValue( EFalse ); // Default is that dates are not modified + TInt temp; + if( aItem.GetNextInt( temp ) == KErrNone ) + { + expectedValue = static_cast( temp ); + } + + HBufC16* fileName = iObservedFiles[index]; + RFile file; + CleanupClosePushL(file); + err = file.Open( iFs, *fileName, EFileRead ); + + if( err == KErrNone ) + { + VCXLOGLO2("CIptvTestEcgFileObserver::CheckFileDate -- Getting modified date from %S", fileName ); + + TTime checkModified( 0 ); + User::LeaveIfError( file.Modified( checkModified ) ); + checkModified.FormatL(timeCheck, KDateTimeString); + + TTime savedModified( 0 ); + if( iFileModifiedDates.Count() > index ) + { + savedModified = iFileModifiedDates[index]; + savedModified.FormatL(timeSaved, KDateTimeString); + } + VCXLOGLO3("CIptvTestEcgFileObserver::CheckFileDate -- Saved date: %S, New date: %S", &timeSaved, &timeCheck ); + + // Set the modified value to true if the modified dates don't match + TBool modifiedValue = (checkModified != savedModified); + + VCXLOGLO3("CIptvTestEcgFileObserver::CheckFileDate -- expect: %d, modified: %d", expectedValue, modifiedValue ); + + // If the expected value doesn't match with the modified value, return error + if( expectedValue != modifiedValue ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::CheckFileDate -- value not expected!"); + err = KErrCorrupt; + } + } + else + { + if( err == KErrNotFound ) + { + err = KErrNone; // We don't care if the file doesn't exist, check is done by CheckFileState + } + else + { + VCXLOGLO2("IptvTestEcgFileObserver::CheckFileDate -- error opening file: %d", err ); + } + } + + CleanupStack::PopAndDestroy(&file); + } + + VCXLOGLO2("<<>>CIptvTestEcgFileObserver::CheckFileState"); + + TInt err( 0 ); + + TInt index( 0 ); + for( index = 0; index < iObservedFiles.Count() ; index++ ) + { + TInt temp = ETrue; + TBool checkStatus( temp ); // Default: checkStatus is ETrue + aItem.GetNextInt( temp ); + checkStatus = static_cast( temp ); + + HBufC16* fileName = iObservedFiles[index]; + + /* Get the state of the file (exists / not ) */ + TBool exists = BaflUtils::FileExists( iFs, *fileName ); + VCXLOGLO4("CIptvTestEcgFileObserver::CheckFileState -- Checking state of %S, real: %d, expected: %d", fileName, exists, checkStatus ); + + if( checkStatus != exists ) + { + VCXLOGLO1("CIptvTestEcgFileObserver::CheckFileState -- File state doesn't match the expected status!"); + err = KErrCorrupt; + break; + } + } + VCXLOGLO2("<<>>CIptvTestUtilModule::SyncTimeWithServerL"); + /* + // Print to UI + _LIT( KIptvTestEcgFileObserver, "IptvTestEcgFileObserver" ); + _LIT( KWhere, "In SyncTimeWithServerL" ); + TestModuleIf().Printf( 0, KIptvTestEcgFileObserver, KWhere ); + // Print to log file + iLog->Log( KWhere ); + */ + + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + TInt error; + RFile file; + + TPtrC tempFileName; + if( aItem.GetNextString( tempFileName ) ) + { + VCXLOGLO1( "CIptvTestEcgFileObserver::SyncTimeWithServerL -- No filename given!" ); + VCXLOGLO1( "<< textFromFile; + error = file.Open( iFs, tempFileName, EFileRead ); + VCXLOGLO2( "CIptvTestEcgFileObserver:: file open %d", error ); + + if( error == KErrNone ) + { + error = file.Read( textFromFile ); + VCXLOGLO2( "CIptvTestEcgFileObserver:: file read %d", error ); + file.Close(); + + + HBufC* monni = HBufC::NewL( textFromFile.Length() ); + monni->Des().Copy(textFromFile); + + VCXLOGLO2("CIptvTestEcgFileObserver::SyncTimeWithServerL -- String read: %S", monni ); + + TTime newTime( *monni ); + delete monni; + + TInt err = CVCXTestCommon::SetSystemTime( newTime ); + + VCXLOGLO2( "CIptvTestEcgFileObserver:: returning: %d", error ); + } + + VCXLOGLO1( "<<