--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/syncmlfw/ds/dsutils/ProfileUtil/testprofileutil/src/testprofileutilBlocks.cpp Thu Dec 17 09:07:52 2009 +0200
@@ -0,0 +1,774 @@
+/*
+* 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 "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 <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include "testprofileutil.h"
+//SyncML headers
+#include <SyncMLDef.h>
+#include <SyncMLClient.h>
+#include <SyncMLClientDS.h>
+#include <SyncMLClientDM.h>
+#include <SyncMLTransportProperties.h>
+#include <commdb.h>
+#include "nsmlconstants.h"
+
+#include "NsmlProfileUtil.h"
+
+
+
+
+// EXTERNAL DATA STRUCTURES
+//extern ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+const TInt TPropertyIntenetAccessPoint = 0;
+const TSmlServerAlertedAction KDSProfileSAN = ESmlConfirmSync;
+const TSmlProtocolVersion KDSProfileProtocol = ESmlVersion1_1_2;
+const TInt KDSProfileCreatorId = 20;
+const TInt KTaskCreatorId = 270495197;
+const TSmlSyncType KTaskSyncType = ESmlSlowSync;
+const TBool KTaskEnabled = ETrue;
+
+const TInt KBufSize32 = 32;
+
+//for Intelli Sync server details
+_LIT (KDSRemoteProfileDisplayName, "Intellisync");
+_LIT8(KDSProfileUserName, "nokia6" );
+_LIT8(KDSProfilePassword, "ashwini" );
+_LIT8(KDSProfileServerId, "None" );
+_LIT8(KDSProfileServerURL, "http://82.77.123.84/services/syncml:80" );
+_LIT8(KDSAccessPoint, "Sonera GPRS" );
+_LIT(KTaskServerDataSource, "./Contact/Unfiled" );
+_LIT(KTaskClientContactDataSource,"./C:Contacts.cdb");
+_LIT(KTaskDisplayName, "Contacts" );
+
+_LIT( KNetMon,"\\netmon.exe" );
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ctestprofileutil::Delete
+// Delete here all resources allocated and opened from test methods.
+// Called from destructor.
+// -----------------------------------------------------------------------------
+//
+void Ctestprofileutil::Delete()
+ {
+ iProfiles.Close();
+
+ }
+
+// -----------------------------------------------------------------------------
+// Ctestprofileutil::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::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( "OpenSyncSession",Ctestprofileutil::OpenSyncSessionL ),
+ ENTRY( "CreateDSProfile",Ctestprofileutil::CreateDSProfileL ),
+ ENTRY( "SetDSRemoteProfileData",Ctestprofileutil::SetRemoteDSProfileDataL),
+ ENTRY( "UpdateDSProfile",Ctestprofileutil::UpdateDSProfileL ),
+ ENTRY( "CloseSyncSession",Ctestprofileutil::CloseSyncSession ),
+ ENTRY( "OpenDSProfileById",Ctestprofileutil::OpenDSProfileByIdL ),
+ ENTRY( "CreateConnection",Ctestprofileutil::CreateConnectionL ),
+ ENTRY( "UpdateConnection",Ctestprofileutil::UpdateConnectionL ),
+ ENTRY( "OpenConnection",Ctestprofileutil::OpenConnectionL ),
+ ENTRY( "CreateTask",Ctestprofileutil::CreateTaskL),
+ ENTRY( "SetTaskData",Ctestprofileutil::SetTaskDataL ),
+ ENTRY( "UpdateTask",Ctestprofileutil::UpdateTaskL ),
+ ENTRY( "CloseTask",Ctestprofileutil::CloseTask ),
+ ENTRY( "CloseDSProfile",Ctestprofileutil::CloseDSProfile ),
+ ENTRY( "CloseConnection",Ctestprofileutil::CloseConnection ),
+ ENTRY( "WriteAndReadCenrepKeys",Ctestprofileutil::ReadAndWriteCenrepKeysL),
+ ENTRY( "ProfileUtilCheck",Ctestprofileutil::ReadSettingsDBL),
+ ENTRY( "GoingtoOffline",Ctestprofileutil::OffLineL),
+ ENTRY( "GoingtoGeneral",Ctestprofileutil::GeneralL),
+ ENTRY( "StartSync",Ctestprofileutil::SyncL),
+ ENTRY( "LaunchAutoRestart",Ctestprofileutil::LaunchAutoRestartL),
+ ENTRY( "CallDelay",Ctestprofileutil::CallDelay),
+ ENTRY( "Example", Ctestprofileutil::ExampleL ),
+ //ADD NEW ENTRY HERE
+ // [test cases entries] - Do not remove
+
+ };
+
+ const TInt count = sizeof( KFunctions ) /
+ sizeof( TStifFunctionInfo );
+
+ return RunInternalL( KFunctions, count, aItem );
+
+ }
+
+// -----------------------------------------------------------------------------
+// Ctestprofileutil::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::ExampleL( CStifItemParser& aItem )
+ {
+
+ // Print to UI
+ _LIT( Ktestprofileutil, "testprofileutil" );
+ _LIT( KExample, "In Example" );
+ TestModuleIf().Printf( 0, Ktestprofileutil, KExample );
+ // Print to log file
+ iLog->Log( KExample );
+
+ TInt i = 0;
+ TPtrC string;
+ _LIT( KParam, "Param[%i]: %S" );
+ while ( aItem.GetNextString ( string ) == KErrNone )
+ {
+ TestModuleIf().Printf( i, Ktestprofileutil,
+ KParam, i, &string );
+ i++;
+ }
+
+ return KErrNone;
+
+ }
+//------------------------------------------------------------------------------
+//Ctestprofileutil::OpenSyncSessionL
+//opens the syncml session
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::OpenSyncSessionL( CStifItemParser& /*aItem*/ )
+ {
+ iSyncSession.OpenL();
+ iSyncSession.ShareAuto(); // share automatically with other threads (notifiers)
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::UpdateDSProfileL
+//updates the ds profile with new values
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::UpdateDSProfileL( CStifItemParser& /*aItem*/ )
+ {
+ iDSProfile.UpdateL();
+ iProfileId = iDSProfile.Identifier();
+ return KErrNone;
+ }
+//------------------------------------------------------------------------------
+//CClientAPIAdvanced::CreateDSProfileL
+//creates the Ds profile
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::CreateDSProfileL( CStifItemParser& aItem )
+ {
+ TInt protocol = 0;
+ aItem.GetNextInt( protocol );
+
+ iDSProfile.CreateL( iSyncSession );
+ iDSProfile.SetProtocolVersionL((TSmlProtocolVersion) protocol );
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//CClientAPIAdvanced::CreateDSProfileL
+//sets the values for the remote ds profile
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::SetRemoteDSProfileDataL( CStifItemParser& aItem )
+ {
+ TInt nextId=0;
+ aItem.GetNextInt(nextId);
+ if(nextId==2)
+ {
+ iDSProfile.SetCreatorId( KDSProfileCreatorId);
+ iDSProfile.SetDisplayNameL( KDSRemoteProfileDisplayName);
+ iDSProfile.SetUserNameL( KDSProfileUserName);
+ iDSProfile.SetPasswordL( KDSProfilePassword);
+ iDSProfile.SetServerIdL( KDSProfileServerId);
+ iDSProfile.SetSanUserInteractionL( KDSProfileSAN );
+ iDSProfile.SetProtocolVersionL( KDSProfileProtocol );
+ }
+
+
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::ListProfilesL
+//list all the profiles and stores the profil-id in profiles list
+//-------------------------------------------------------------------------------
+//
+void Ctestprofileutil::ListProfilesL( TSmlUsageType type )
+ {
+ TRAPD( err, iSyncSession.ListProfilesL( iProfiles, type ) );
+ if ( err == KErrNotSupported ) // ds sync not supported, use dummy values
+ {
+ iProfiles.Append( 1 );
+ }
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::OpenDSProfileByIdL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::OpenDSProfileByIdL( CStifItemParser& aItem )
+ {
+ TInt id = -2;
+ aItem.GetNextInt( id );
+ ListProfilesL( ESmlDataSync );
+ if ( id == -2 )
+ {
+ iDSProfile.OpenL( iSyncSession, iProfileId, ESmlOpenReadWrite );
+ }
+ else if (id==-1)
+ {
+ TSmlProfileId profileId;
+ TInt i;
+ for (i=0;i<iProfiles.Count() ;++i)
+ {
+
+ profileId=OpenDSProfileByNameL(iProfiles[i]);
+ if(profileId!=KErrNone)
+ {
+ iDSProfile.OpenL( iSyncSession, profileId, ESmlOpenReadWrite );
+ break;
+ }
+
+
+ }
+
+ }
+ else
+ {
+ iDSProfile.OpenL( iSyncSession, id, ESmlOpenReadWrite );
+ }
+
+ return KErrNone;
+ }
+
+
+//------------------------------------------------------------------------------
+//converts the string
+//-------------------------------------------------------------------------------
+//
+
+ HBufC* StrConversion(const TDesC& aDefaultText)
+{
+ return aDefaultText.AllocLC();
+}
+
+
+//------------------------------------------------------------------------------
+//copies the string
+//-------------------------------------------------------------------------------
+//
+void StrCopy(TDes8& aTarget, const TDesC& aSource)
+ {
+ TInt len = aTarget.MaxLength();
+ if(len < aSource.Length())
+ {
+ aTarget.Copy(aSource.Left(len));
+ return;
+ }
+ aTarget.Copy(aSource);
+ }
+
+
+void StrCopy(TDes& aTarget, const TDesC& aSource)
+ {
+ TInt len = aTarget.MaxLength();
+ if(len < aSource.Length())
+ {
+ aTarget.Copy(aSource.Left(len));
+ return;
+ }
+ aTarget.Copy(aSource);
+ }
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::OpenDSProfileByNameL
+//opens the profile based on the id
+//-------------------------------------------------------------------------------
+//
+TSmlProfileId Ctestprofileutil::OpenDSProfileByNameL( TSmlProfileId aProfileId/*,TDesC& aProfilename */)
+ {
+ RSyncMLDataSyncProfile prof;
+ prof.OpenL( iSyncSession, aProfileId, ESmlOpenReadWrite );
+ HBufC* hBuf=StrConversion(prof.DisplayName());
+ TPtrC ptr=hBuf->Des();
+ if(ptr.Compare(KDSRemoteProfileDisplayName) == 0 )
+ {
+ prof.Close();
+ CleanupStack::PopAndDestroy(hBuf);
+ return(aProfileId);
+ }
+ prof.Close();
+ CleanupStack::PopAndDestroy(hBuf);
+ return KErrNone;
+ }
+
+
+
+//------------------------------------------------------------------------------
+//gets the Id corresponding to the Access point passed
+//-------------------------------------------------------------------------------
+//
+
+TInt AccessPointIdL(TDesC8& aBuf)
+{
+ CCommsDatabase *database = CCommsDatabase::NewL();
+ TUint32 aId ;
+ TInt retVal;
+ CleanupStack::PushL(database);
+ CCommsDbTableView* checkView;
+ checkView = database->OpenViewMatchingTextLC(TPtrC(IAP),TPtrC(COMMDB_NAME), aBuf);
+ TInt error = checkView->GotoFirstRecord();
+ if (error == KErrNone)
+ {
+ //Get the IAP ID
+ checkView->ReadUintL(TPtrC(COMMDB_ID), aId);
+ retVal = aId;
+ }
+
+ CleanupStack::PopAndDestroy(2);
+ return retVal;
+}
+//------------------------------------------------------------------------------
+//gets the connection property name
+//-------------------------------------------------------------------------------
+//
+void GetConnectionPropertyNameL(RSyncMLSession &aSyncsession,TDes8& aText, TInt aPropertyPos)
+ {
+ //
+ // at the moment RSyncMLTransport is only needed for internet connection settings
+ //
+ RSyncMLTransport transport;
+ transport.OpenL(aSyncsession, KUidNSmlMediumTypeInternet.iUid); // no ICP call
+ CleanupClosePushL(transport);
+
+ const CSyncMLTransportPropertiesArray& arr = transport.Properties();
+
+ //__ASSERT_DEBUG(arr.Count()>aPropertyPos, TUtil::Panic(KErrGeneral));
+
+ const TSyncMLTransportPropertyInfo& info = arr.At(aPropertyPos);
+ aText = info.iName;
+
+ CleanupStack::PopAndDestroy(&transport);
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::UsageType
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TSmlUsageType Ctestprofileutil::UsageType( CStifItemParser& aItem )
+ {
+ TInt type = -1;
+ aItem.GetNextInt( type );
+
+ switch ( type )
+ {
+ case 0:
+ return ESmlDataSync;
+ break;
+ case 1:
+ return ESmlDevMan;
+ break;
+ default:
+ User::Leave( KErrArgument );
+ break;
+ }
+
+ return ESmlDataSync;
+ }
+
+
+
+
+//------------------------------------------------------------------------------
+//CClientAPIAdvanced::SetConnectionProfileL
+//
+//-------------------------------------------------------------------------------
+//
+void Ctestprofileutil::SetConnectionProfileL( CStifItemParser& aItem )
+ {
+ TSmlUsageType type = UsageType( aItem );
+ if ( type == ESmlDataSync )
+ iConnectionProfile = &iDSProfile;
+ else
+ User::Leave( KErrArgument );
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::OpenConnectionL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+
+TInt Ctestprofileutil::OpenConnectionL( CStifItemParser& aItem )
+ {
+
+/// TInt type=-1;
+// aItem.GetNextInt(type);
+ SetConnectionProfileL(aItem);
+
+ RArray<TSmlTransportId> conns;
+ iConnectionProfile->ListConnectionsL( conns );
+ CleanupClosePushL( conns );
+
+ iConnectionId = conns[0];
+ iConnection.OpenL( *iConnectionProfile, iConnectionId );
+
+
+ CleanupStack::PopAndDestroy(); // conns
+
+ return KErrNone;
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::CreateConnectionL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+
+TInt Ctestprofileutil::CreateConnectionL( CStifItemParser& aItem )
+ {
+ TInt id = 0;
+ TInt aIapId=0;
+ aItem.GetNextInt( id );
+ iConnectionId = id;
+
+ iConnection.CreateL( *iConnectionProfile, id );
+ iConnection.SetServerURIL(KDSProfileServerURL);
+
+
+ /* TBuf<KBufSize32> buf;
+ TBuf8<KBufSize32> key;
+ TBuf8<KBufSize32> value;
+ TBuf8<KBufSize32> value2;
+ TBuf8<KBufSize32> value3;
+ _LIT(KDollar,"$");
+ TBuf<10> trial;
+ trial.Copy(_L(" "));
+
+ TPtrC string;
+ aItem.GetNextString ( string );
+ TInt pos=string.Find(KDollar);
+ StrCopy(value2,string);
+ StrCopy(value3,trial);
+ value2.Replace(pos,1,value3);
+ //get the id corresponding to the access point
+ //if the accesspoint has to be hardcoded in the code
+ // TBuf<10> test;
+ // test.Copy(_L("AccessPointName"));
+ // aItem.GetNextString(test);
+ // aIapId=AccessPointIdL(string);
+ aIapId=AccessPointIdL(value2);
+
+ buf.Num(aIapId);
+ StrCopy(value, buf);
+ GetConnectionPropertyNameL(iSyncSession,key, TPropertyIntenetAccessPoint);
+ iConnection.SetPropertyL(key, value);*/
+
+
+ return KErrNone;
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::CreateTaskL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::CreateTaskL( CStifItemParser& aItem )
+ {
+ TInt dataProvider = 0;
+ aItem.GetNextInt( dataProvider );
+
+ if ( dataProvider == 0 ) // not given as parameter, get from session
+ {
+ RArray<TSmlDataProviderId> adapters;
+ CleanupClosePushL( adapters );
+ iSyncSession.ListDataProvidersL( adapters );
+ dataProvider = adapters[0];
+ CleanupStack::PopAndDestroy(); // adapters
+ }
+
+ iDataProviderId = dataProvider;
+
+ iTask.CreateL( iDSProfile, dataProvider, KTaskServerDataSource, KTaskClientContactDataSource );
+
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//CClientAPIAdvanced::UpdateTaskL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::UpdateTaskL( CStifItemParser& /*aItem*/ )
+ {
+ iTask.UpdateL();
+ iTaskId = iTask.Identifier();
+ return KErrNone;
+ }
+//------------------------------------------------------------------------------
+//Ctestprofileutil::UpdateConnectionL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::UpdateConnectionL( CStifItemParser& /*aItem*/ )
+ {
+ iConnection.UpdateL();
+ return KErrNone;
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::SetTaskDataL
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::SetTaskDataL( CStifItemParser& /*aItem*/ )
+ {
+ iTask.SetCreatorId( KTaskCreatorId );
+ iTask.SetEnabledL( KTaskEnabled );
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::CloseTask
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::CloseTask( CStifItemParser& /*aItem*/ )
+ {
+ iTask.Close();
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::Closes Connection
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::CloseConnection( CStifItemParser& /*aItem*/ )
+ {
+ iConnection.Close();
+ return KErrNone;
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::CloseDSProfile
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::CloseDSProfile( CStifItemParser& /*aItem*/ )
+ {
+ iDSProfile.Close();
+ return KErrNone;
+ }
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::CloseSyncSession
+//opens the connection
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::CloseSyncSession( CStifItemParser& /*aItem*/ )
+ {
+ iSyncSession.Close();
+ return KErrNone;
+ }
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::ReadSettingsDBL
+//Reads the profile settings from the DB
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::ReadSettingsDBL( CStifItemParser& /*aItem*/ )
+{
+
+ CNsmlProfileUtil* profileUtil = CNsmlProfileUtil::NewLC();
+ profileUtil->InternalizeFromSettingsDBL(iProfileId);
+ profileUtil->ExternalizeToCenrepL();
+
+ CNsmlProfileUtil* profileUtil1 = CNsmlProfileUtil::NewLC();
+ profileUtil1->InternalizeFromCenrepL();
+
+ CNsmlProfileUtil* profileUtil2 = CNsmlProfileUtil::NewL();
+ profileUtil2->InternalizeFromSettingsDBL(profileUtil1->ProfileId());
+ TInt chk=profileUtil2->IsSame(*profileUtil1);
+
+ if(!chk)
+ User::Leave(KErrCorrupt);
+
+ CleanupStack::PopAndDestroy(profileUtil1);
+ CleanupStack::PopAndDestroy(profileUtil);
+
+
+ return KErrNone;
+}
+
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::ReadAndWriteCenrepKeysL
+//Read and writes the cenrep key value
+//-------------------------------------------------------------------------------
+//
+TInt Ctestprofileutil::ReadAndWriteCenrepKeysL( CStifItemParser& /*aItem*/ )
+{
+ CNsmlProfileUtil* profileUtil = CNsmlProfileUtil::NewLC();
+ TBool chk;
+ profileUtil->WriteInterruptFlagL(-1);
+ profileUtil->IsValidResumeL(chk);
+ if(chk)
+ {
+ //try setting to otherthan -1
+ profileUtil->WriteInterruptFlagL(1);
+ profileUtil->IsValidResumeL(chk);
+ if(chk)
+ User::Leave(KErrCorrupt);
+ }
+ else
+ User::Leave(KErrCorrupt);
+
+ TInt accesspoint;
+ profileUtil->WriteAccessPointIdL(5);
+ profileUtil->AccessPointIdL(accesspoint);
+ if(accesspoint!=5)
+ User::Leave(KErrCorrupt);
+
+ CleanupStack::PopAndDestroy(profileUtil);
+
+ return KErrNone;
+
+}
+//------------------------------------------------------------------------------
+//Ctestprofileutil::ReadAndWriteCenrepKeysL
+//Phone goes to OffLine mode
+//-------------------------------------------------------------------------------
+//
+
+
+TInt Ctestprofileutil::OffLineL( CStifItemParser& /*aItem*/ )
+{
+ iProfileEngine = CreateProfileEngineExtendedL();
+ iProfileEngine->SetActiveProfileL( 5);
+ iProfileEngine->Release();
+
+
+ return KErrNone;
+
+}
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::ReadAndWriteCenrepKeysL
+//Phone goes to General mode
+//-------------------------------------------------------------------------------
+//
+
+
+TInt Ctestprofileutil::GeneralL( CStifItemParser& /*aItem*/ )
+{
+ iProfileEngine = CreateProfileEngineExtendedL();
+ iProfileEngine->SetActiveProfileL(0);
+ iProfileEngine->Release();
+
+
+ return KErrNone;
+
+}
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::ReadAndWriteCenrepKeysL
+//Read and writes the cenrep key value
+//-------------------------------------------------------------------------------
+//
+
+
+TInt Ctestprofileutil::SyncL( CStifItemParser& aItem )
+{
+ TInt param = 0;
+ aItem.GetNextInt( param );
+
+ CSync *sync = CSync::NewL(param);
+
+ CActiveScheduler::Start();
+
+ return KErrNone;
+
+}
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::LaunchAutoRestartL
+//Launches the Auto-restart
+//-------------------------------------------------------------------------------
+//
+
+TInt Ctestprofileutil::LaunchAutoRestartL( CStifItemParser& aItem )
+{
+
+ RProcess rp;
+ TInt err = rp.Create(KNetMon,KNullDesC);
+ User::LeaveIfError(err);
+ rp.Resume();
+
+ return KErrNone;
+}
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+
+//------------------------------------------------------------------------------
+//Ctestprofileutil::LaunchAutoRestartL
+//Launches the Auto-restart
+//-------------------------------------------------------------------------------
+//
+
+TInt Ctestprofileutil::CallDelay( CStifItemParser& aItem )
+{
+
+ User::After(1000);
+ return KErrNone;
+
+}
+// [End of File] - Do not remove