--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/customization/tsrc/tarmcustomization/src/ThemesTestBlocks.cpp Thu Dec 17 08:40:12 2009 +0200
@@ -0,0 +1,1674 @@
+/*
+* 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: Implementation of customization components
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32svr.h>
+#include <StifItemParser.h>
+#include <Stiftestinterface.h>
+#include "ThemesTest.h"
+#include "TestDmCallback.h"
+#include "TestDmDDFObject.h"
+#include "FileCoderB64.h"
+#include "TestParams.h"
+#include "policyengineclient.h"
+//#include "TerminalControlClient.h"
+//#include "TerminalControl3rdPartyAPI.h"
+
+#include "nsmldmuri.h"
+//#include "rfsClient.h"
+
+#include <CentralRepository.h>
+//#include "DMUtilClient.h"
+
+#include "nsmlprivateapi.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CThemesTest::Delete
+// Delete here all resources allocated and opened from test methods.
+// Called from destructor.
+// -----------------------------------------------------------------------------
+//
+void CThemesTest::Delete()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::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( "Example", CThemesTest::ExampleL ),
+ ENTRY( "Seconda", CThemesTest::SecondaL ),
+ ENTRY( "Install", CThemesTest::InstallL ),
+
+ ENTRY( "LoadL", CThemesTest::LoadL ),
+ ENTRY( "AddDDFCheckL", CThemesTest::AddDDFCheckL ),
+
+ ENTRY( "DDFVersionL", CThemesTest::DDFVersionL ),
+ ENTRY( "DDFStructureL", CThemesTest::DDFStructureL ),
+
+ ENTRY( "UpdateLeafObjectL", CThemesTest::UpdateLeafObjectL ),
+ ENTRY( "UpdateLeafObjectStreamL", CThemesTest::UpdateLeafObjectStreamL ),
+ ENTRY( "DeleteObjectL", CThemesTest::DeleteObjectL ),
+ ENTRY( "FetchLeafObjectL", CThemesTest::FetchLeafObjectL ),
+ ENTRY( "FetchLeafObjectSizeL", CThemesTest::FetchLeafObjectSizeL ),
+ ENTRY( "ChildURIListL", CThemesTest::ChildURIListL ),
+
+ ENTRY( "AddNodeObjectL", CThemesTest::AddNodeObjectL ),
+ ENTRY( "ExecuteCommandL", CThemesTest::ExecuteCommandL ),
+ ENTRY( "ExecuteCommandStreamL", CThemesTest::ExecuteCommandStreamL ),
+ ENTRY( "CopyCommandL", CThemesTest::CopyCommandL ),
+ ENTRY( "StartAtomicL", CThemesTest::StartAtomicL ),
+ ENTRY( "CommitAtomicL", CThemesTest::CommitAtomicL ),
+ ENTRY( "RollbackAtomicL", CThemesTest::RollbackAtomicL ),
+ ENTRY( "StreamingSupportL", CThemesTest::StreamingSupportL ),
+ ENTRY( "StreamCommittedL", CThemesTest::StreamCommittedL ),
+ ENTRY( "CompleteOutstandingCmdsL", CThemesTest::CompleteOutstandingCmdsL ),
+ //all are related to TC module..So commented
+ /*ENTRY( "RRRun", CThemesTest::RRRunL ),
+ ENTRY( "CreateFile", CThemesTest::CreateFileL ),
+ ENTRY( "RFSCommand", CThemesTest::RFSCommandL ),
+ ENTRY( "LoadPolicy", CThemesTest::LoadPolicyL ),
+ ENTRY( "SetCertificate", CThemesTest::SetCertificateL ),
+ ENTRY( "ConnectToPolicyServer", CThemesTest::ConnectToPolicyServerL ),
+ ENTRY( "ConnectToDMUTIL", CThemesTest::ConnectToDMUTILL ),
+ ENTRY( "ThirdPartyCommand", CThemesTest::ThirdPartyCommandL), */
+ };
+
+ const TInt count = sizeof( KFunctions ) /
+ sizeof( TStifFunctionInfo );
+
+ return RunInternalL( KFunctions, count, aItem );
+
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ExampleL( CStifItemParser& aItem )
+ {
+
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("In Example") );
+ // Print to log file
+ iLog->Log(_L("In Example"));
+
+ TInt i = 0;
+ TPtrC string;
+ while ( aItem.GetNextString ( string ) == KErrNone )
+ {
+ TestModuleIf().Printf( i, _L("ThemesTest"),
+ _L("Param[%i]: %S"), i, &string );
+ i++;
+ }
+
+ return KErrNone;
+
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::SecondaL
+// Seconda test method function.
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::SecondaL( CStifItemParser& aItem )
+ {
+
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("In Seconda") );
+ // Print to log file
+ iLog->Log(_L("In Seconda"));
+
+ TInt i = 0;
+ TPtrC string;
+ while ( aItem.GetNextString ( string ) == KErrNone )
+ {
+ TestModuleIf().Printf( i, _L("ThemesTest"),
+ _L("Param[%i]: %S"), i, &string );
+ i++;
+ }
+
+
+ // Here it starts
+
+ const TUint KThemesAdapterImplUid = 0x0FDDEF05;
+
+ TUid iuid =
+ {
+ KThemesAdapterImplUid
+ };
+
+/* Cpmatest *cb = Cpmatest::NewL( iLog );
+ CleanupStack::PushL( cb ); // 1
+*/
+ //CSmlDmAdapter *adapter = CSmlDmAdapter::NewL( implInfo->ImplementationUid(), *this );
+// CSmlDmAdapter *adapter = CSmlDmAdapter::NewL( iuid, *this );
+ CTestDmCallback *callback = CTestDmCallback::NewL( iLog );
+ CleanupStack::PushL( callback );
+
+ CSmlDmAdapter *adapter = CSmlDmAdapter::NewL( iuid, *callback );
+ CleanupStack::PushL( adapter );
+
+ CBufBase* version = CBufFlat::NewL( 16 );
+ CleanupStack::PushL( version );
+
+ adapter->DDFVersionL( *version );
+ iLog->Log( _L("Version is")) ;
+ iLog->Log( version->Ptr(0) ) ;
+
+
+ CTestDmDDFObject* ddfRoot = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+ ddfRoot->SetNameL( _L8( "/" ) );
+
+ adapter->DDFStructureL( *ddfRoot );
+
+ ddfRoot->DumpL( _L8(""), EFalse );
+
+ ddfRoot->DumpL( _L8("") );
+
+ CleanupStack::PopAndDestroy( ddfRoot );
+ ddfRoot = 0;
+ CleanupStack::PopAndDestroy( version );
+ version = 0;
+
+ CleanupStack::PopAndDestroy( adapter );
+ adapter = 0;
+
+ CleanupStack::PopAndDestroy( callback );
+ callback = 0;
+
+
+/*
+MSmlDmDDFObject& CTestDmDDFObject::AddChildObjectGroupL()
+ {
+ iLog->Log( _L( "AddChildObjectGroupL, ''" ) );
+ CTestDmDDFObject* child = CTestDmDDFObject::NewLC( iLog ); //, KNullDesC );
+ child->SetAsObjectGroup();
+ iChildren.AppendL( child );
+ CleanupStack::Pop( child ); // Don't destroy
+ return *child;
+ }
+*/
+
+/*
+ HBufC8 *addnodename = HBufC8::NewLC( nodename.Length() + 1 + KPolicyNode().Length() ) ;
+ addnodename->Des().Copy( KPolicyNode );
+ addnodename->Des().Append( nodename ) ;
+ adapter->AddNodeObjectL( *addnodename, KNullDesC8, 2);
+ if ( iStatus == MSmlDmAdapter::EOk )
+ {
+
+ RFs fs ;
+ LEAVE_IF_ERROR( fs.Connect(), _L( "Could not connect fileserver: %d" ) );
+
+ CleanupClosePushL( fs );
+ RFile file ;
+ LEAVE_IF_ERROR( file.Open(fs,datafile,EFileRead), _L( "Could not open file: %d" ) );
+
+ CleanupClosePushL( file );
+ TInt dataSize ;
+ LEAVE_IF_ERROR( file.Size( dataSize ), _L( "Could not get file size: %d" ) );
+ HBufC8 *nodedata = HBufC8::NewLC ( dataSize );
+ TPtr8 nodedataptr( nodedata->Des() );
+ LEAVE_IF_ERROR( file.Read( nodedataptr ), _L( "Could not read file: %d" ) );
+ HBufC8 *datanode = HBufC8::NewLC( addnodename->Des().Length() + KDataLeafEnd().Length() );
+ datanode->Des().Copy( *addnodename );
+ datanode->Des().Append( KDataLeafEnd() );
+
+ adapter->UpdateLeafObjectL(*datanode, KNullDesC8(), nodedataptr, KPolicyMimeType(), 3);
+ if ( iStatus == MSmlDmAdapter::EOk )
+ {
+
+ }
+ else
+ {
+ iLog->Log( _L("Add Test Adding Policy data failed! %d" ), iStatus );
+ ret = KErrGeneral;
+ }
+
+ CleanupStack::PopAndDestroy( datanode );
+ CleanupStack::PopAndDestroy( nodedata );
+ CleanupStack::PopAndDestroy( ); // file
+ CleanupStack::PopAndDestroy( ); // fs
+ }
+ else
+ {
+ iLog->Log( _L("Add Test Adding Policy node! %d" ), iStatus );
+ ret = KErrGeneral ;
+ }
+
+ CleanupStack::PopAndDestroy( addnodename );
+ CleanupStack::PopAndDestroy( version );
+ CleanupStack::PopAndDestroy( adapter );
+// CleanupStack::PopAndDestroy( cb );
+*/
+
+
+ iLog->Log( _L("Seconda test complete with status %d" ), 0 ); //sf-ret );
+
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::InstallL
+// Install test method function.
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::InstallL( CStifItemParser& aItem )
+ {
+
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("In Install") );
+ // Print to log file
+ iLog->Log(_L("In Install"));
+
+ TInt i = 0;
+ TPtrC string;
+ while ( aItem.GetNextString ( string ) == KErrNone )
+ {
+ TestModuleIf().Printf( i, _L("ThemesTest"),
+ _L("Param[%i]: %S"), i, &string );
+ i++;
+ }
+
+
+
+// Command Leaf DataType Data
+// G = Get
+// E = Exec
+// R = Replace
+// /Customization/Themes
+// T = Text
+// F = File
+// "Text with spaces included"
+// FileName.Ext
+
+ // Here it starts
+
+ const TUint KThemesAdapterImplUid = 0x0FDDEF05;
+
+ TUid iuid =
+ {
+ KThemesAdapterImplUid
+ };
+
+/* Cpmatest *cb = Cpmatest::NewL( iLog );
+ CleanupStack::PushL( cb ); // 1
+*/
+ //CSmlDmAdapter *adapter = CSmlDmAdapter::NewL( implInfo->ImplementationUid(), *this );
+// CSmlDmAdapter *adapter = CSmlDmAdapter::NewL( iuid, *this );
+ CTestDmCallback *callback = CTestDmCallback::NewL( iLog );
+ CleanupStack::PushL( callback );
+
+ CSmlDmAdapter *adapter = CSmlDmAdapter::NewL( iuid, *callback );
+ CleanupStack::PushL( adapter );
+
+ CBufFlat* data = CBufFlat::NewL( 16 );
+ CleanupStack::PushL( data );
+
+ adapter->DDFVersionL( *data );
+ iLog->Log( _L("Version is")) ;
+ iLog->Log( data->Ptr(0) ) ;
+
+
+ CTestDmDDFObject* ddfRoot = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+ ddfRoot->SetNameL( _L8( "/" ) );
+
+ adapter->DDFStructureL( *ddfRoot );
+ ddfRoot->DumpL( _L8(""), EFalse );
+
+ CleanupStack::PopAndDestroy( ddfRoot );
+ ddfRoot = 0;
+
+// Read file to data buffer and execute DM Adapter command
+
+//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+ _LIT8( KThemeFilename, "c:\\jiihaa.sis" );
+
+//sf- CBufBase* object = CBufFlat::NewL( 1000 );
+//sf- CleanupStack::PushL( object );
+
+ TFileCoderB64 coder;
+ User::LeaveIfError( coder.EncodeL( KThemeFilename, *data ) );
+
+ /**
+ The function implements execute command. The information about the success
+ of the command should be returned by calling SetStatusL function of
+ MSmlDmCallback callback interface. This makes it possible to buffer the
+ commands.
+ However, all the status codes for buffered commands must be returned at
+ the latest when the CompleteOutstandingCmdsL() of adapter is called.
+ @param aURI URI of the command
+ @param aLUID LUID of the object (if the adapter have earlier
+ returned LUID to the DM Module).
+ @param aArgument Argument for the command
+ @param aType MIME type of the object
+ @param aStatusRef Reference to correct command, i.e. this reference
+ must be used when calling the SetStatusL of this
+ command.
+ @publishedPartner
+ @prototype
+ */
+// virtual void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID,
+// const TDesC8& aArgument, const TDesC8& aType,
+// TInt aStatusRef ) = 0;
+
+ adapter->ExecuteCommandL( _L8("/Customization/Themes/InstallTheme"),
+ _L8(""), //callback->FindLUID(aURI)
+ data->Ptr(0),
+ _L8("text"),
+ callback->GetNewStatusRefL() );
+
+//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+
+
+
+ CleanupStack::PopAndDestroy( data );
+ data = 0;
+
+ CleanupStack::PopAndDestroy( adapter );
+ adapter = 0;
+
+ CleanupStack::PopAndDestroy( callback );
+ callback = 0;
+
+
+
+
+ iLog->Log( _L("Install test complete with status %d" ), 0 ); //sf-ret );
+
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::LoadL
+// Load adapter to be tested.
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::LoadL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("LoadL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::LoadL()"));
+
+ TInt ret = KErrNone;
+ TUint uid = 0;
+
+ ret = aItem.GetNextInt( uid, EHex );
+
+//sf- if (ret != KErrNone)
+//sf- {
+//sf-// ret = KErrGeneral ;
+//sf- return ret;
+//sf- }
+
+ // Here it starts
+ if (ret == KErrNone)
+ {
+ TUid iuid =
+ {
+ uid
+ };
+
+ iLog->Log(_L("CThemesTest::LoadL() next: iCallback = CTestDmCallback::NewL( iLog );"));
+ iCallback = CTestDmCallback::NewL( iLog );
+
+ iLog->Log(_L("CThemesTest::LoadL() next: iAdapter = CSmlDmAdapter::NewL( iuid, *iCallback );"));
+ iAdapter = CSmlDmAdapter::NewL( iuid, *iCallback );
+
+ iLog->Log(_L("CThemesTest::LoadL() Adapter loaded OK."));
+ }
+ else
+ {
+ iLog->Log(_L("CThemesTest::LoadL() Invalid UID in test script, check LoadL parameter."));
+ }
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::AddDDFCheckL
+// Load adapter to be tested.
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::AddDDFCheckL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("AddDDFCheckL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::AddDDFCheckL()"));
+
+ TInt ret = KErrNone;
+
+ CDDFTestParams *ddfParams = CDDFTestParams::NewL( iLog, aItem );
+ AddDDFParamsL( ddfParams );
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::DDFVersionL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::DDFVersionL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("DDFVersionL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::DDFVersionL()"));
+
+// void DDFVersionL( CBufBase& aVersion );
+ TInt ret = KErrNone;
+
+ CTestParams *params = CTestParams::NewLC( iLog, aItem );
+
+/*
+URI=
+
+File=
+Text=
+
+IT= Input (text)
+IF= Input File (filename)
+OF= Output File
+
+ET= Expected result (text)
+EF= Expected file (filename)
+*/
+
+ CBufFlat *version = CBufFlat::NewL( 16 );
+ CleanupStack::PushL( version );
+ iAdapter->DDFVersionL( *version );
+
+ ret = params->CheckDataL( *version );
+
+ CleanupStack::PopAndDestroy( version );
+ CleanupStack::PopAndDestroy( params );
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::DDFStructureL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::DDFStructureL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("DDFStructureL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::DDFStructureL()"));
+
+ TInt ret = KErrNone;
+
+// void DDFStructureL( MSmlDmDDFObject& aDDF );
+ CTestDmDDFObject* ddfRoot = CTestDmDDFObject::NewLC( iLog ); //, aNodeName );
+ ddfRoot->SetNameL( _L8( "/" ) );
+
+ iAdapter->DDFStructureL( *ddfRoot );
+ ddfRoot->DumpL( _L8(""), EFalse );
+
+ ret = CheckDDFL( ddfRoot );
+
+ CleanupStack::PopAndDestroy( ddfRoot );
+ ddfRoot = 0;
+
+ return ret;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CThemesTest::UpdateLeafObjectL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::UpdateLeafObjectL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("UpdateLeafObjectL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::UpdateLeafObjectL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+ TPtrC8 object( params->Data() );
+ TPtrC8 type( params->DataType() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+// TInt resultsRef = iCallback->GetNewResultsRefL( );
+
+ params->SetStatusRef( statusRef);
+// params->SetResultsRef( resultsRef);
+
+ iAdapter->UpdateLeafObjectL( uri, *luid, object, type, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( luid );
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::UpdateLeafObjectStreamL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::UpdateLeafObjectStreamL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("UpdateLeafObjectStreamL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::UpdateLeafObjectStreamL()"));
+
+// void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, TInt aStatusRef );
+
+ TInt ret = KErrNotSupported;
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::DeleteObjectL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::DeleteObjectL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("DeleteObjectL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::DeleteObjectL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+
+// void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, TInt aStatusRef );
+ iAdapter->DeleteObjectL( uri, *luid, statusRef );
+
+ params->SetStatusRef( statusRef);
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( luid );
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::FetchLeafObjectL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::FetchLeafObjectL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("FetchLeafObjectL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::FetchLeafObjectL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+ TPtrC8 type( params->DataType() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+ TInt resultsRef = iCallback->GetNewResultsRefL( );
+
+ params->SetStatusRef( statusRef);
+ params->SetResultsRef( resultsRef);
+
+// void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef );
+ iAdapter->FetchLeafObjectL( uri, *luid, type, resultsRef, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( luid );
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::FetchLeafObjectSizeL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::FetchLeafObjectSizeL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("FetchLeafObjectSizeL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::FetchLeafObjectSizeL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+// TPtrC8 object( params->Data() );
+ TPtrC8 type( params->DataType() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+ TInt resultsRef = iCallback->GetNewResultsRefL( );
+
+ params->SetStatusRef( statusRef);
+ params->SetResultsRef( resultsRef);
+
+// void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef );
+ iAdapter->FetchLeafObjectSizeL( uri, *luid, type, resultsRef, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( luid );
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ChildURIListL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ChildURIListL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("ChildURIListL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::ChildURIListL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+//sf- TPtrC8 object( params->Data() );
+ TPtrC8 type( params->DataType() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+ TInt resultsRef = iCallback->GetNewResultsRefL( );
+
+ params->SetStatusRef( statusRef);
+ params->SetResultsRef( resultsRef);
+
+// CreatePreviousURISegmentList( );
+ CArrayFixFlat<TSmlDmMappingInfo>* uriSegmentList = new (ELeave) CArrayFixFlat<TSmlDmMappingInfo>( 10 );
+ CleanupStack::PushL( uriSegmentList );
+
+ TPtrC8 oldUriSegs = params->Data();
+ TInt i;
+ TInt count = 0;
+ if (oldUriSegs.Length() > 0)
+ {
+ count = NSmlDmURI::NumOfURISegs( oldUriSegs );;
+ }
+
+ for (i = 0 ; i < count ; i++)
+ {
+ TPtrC8 tmpSeg = NSmlDmURI::URISeg( oldUriSegs, i + 1 );
+// TBuf8< uri.Length() + 1 + KSmlMaxURISegLen > tmpUri;
+ TBuf8< 256 > tmpUri;
+ tmpUri = uri;
+ tmpUri.Append( _L8("/") );
+ tmpUri.Append( tmpSeg );
+ TPtrC8 tmpLuid = iCallback->GetLuidL( tmpUri );
+
+ TSmlDmMappingInfo t; // = { seg, tmpLuid };
+ t.iURISeg = tmpSeg;
+ t.iURISegLUID.Set( tmpLuid );
+
+ uriSegmentList->AppendL( t );
+ }
+
+// void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, TInt aResultsRef, TInt aStatusRef );
+ iAdapter->ChildURIListL( uri, *luid, *uriSegmentList, resultsRef, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( uriSegmentList );
+ CleanupStack::PopAndDestroy( luid );
+ return ret;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CThemesTest::AddNodeObjectL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::AddNodeObjectL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("AddNodeObjectL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::AddNodeObjectL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+ TPtrC8 parentUri = NSmlDmURI::ParentURI( uri );
+ TPtrC8 parentLuid = iCallback->GetLuidL( parentUri );
+
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+
+ params->SetStatusRef( statusRef);
+
+// void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, TInt aStatusRef );
+ iAdapter->AddNodeObjectL( uri, parentLuid, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ExecuteCommandL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ExecuteCommandL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("ExecuteCommandL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::ExecuteCommandL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+ TPtrC8 argument( params->Data() );
+ TPtrC8 type( params->DataType() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+
+ params->SetStatusRef( statusRef);
+
+// void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, const TDesC8& aType, TInt aStatusRef );
+ iAdapter->ExecuteCommandL( uri, *luid, argument, type, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( luid );
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ExecuteCommandStreamL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ExecuteCommandStreamL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("ExecuteCommandStreamL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::ExecuteCommandStreamL()"));
+
+// void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, TInt aStatusRef );
+
+ TInt ret = KErrNotSupported;
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::CopyCommandL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::CopyCommandL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("CopyCommandL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::CopyCommandL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 uri( params->Uri() );
+ TPtrC8 target( params->Data() );
+ TPtrC8 type( params->DataType() );
+ HBufC8* luid = iCallback->GetLuidAllocL( uri );
+ CleanupStack::PushL( luid );
+ TInt statusRef = iCallback->GetNewStatusRefL( );
+
+ params->SetStatusRef( statusRef );
+
+ TInt pos = target.Locate( ':' );
+ if (pos < 0)
+ {
+ pos = target.Length();
+ }
+ TPtrC8 targetUri = target.Left( pos );
+
+ if (pos < target.Length())
+ {
+ pos++;
+ }
+ TPtrC8 targetLuid = target.Right( target.Length() - pos );
+
+// void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, const TDesC8& aSourceURI, const TDesC8& aSourceLUID, const TDesC8& aType, TInt aStatusRef );
+ iAdapter->CopyCommandL( targetUri, targetLuid, uri, *luid, type, statusRef );
+
+ ret = params->CheckL( iCallback );
+
+ // Cleanup
+ CleanupStack::PopAndDestroy( luid );
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::StartAtomicL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::StartAtomicL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("StartAtomicL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::StartAtomicL()"));
+
+ TInt ret = KErrNone;
+//sf- CTestParams* params = CTestParams::NewL( iLog, aItem );
+//sf- AddParamsL( params );
+
+// void StartAtomicL();
+ iAdapter->StartAtomicL();
+
+ // Cleanup
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::CommitAtomicL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::CommitAtomicL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("CommitAtomicL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::CommitAtomicL()"));
+
+ TInt ret = KErrNone;
+//sf- CTestParams* params = CTestParams::NewL( iLog, aItem );
+//sf- AddParamsL( params );
+
+// void CommitAtomicL();
+ iAdapter->CommitAtomicL();
+
+ // Cleanup
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::RollbackAtomicL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::RollbackAtomicL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("RollbackAtomicL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::RollbackAtomicL()"));
+
+ TInt ret = KErrNone;
+//sf- CTestParams* params = CTestParams::NewL( iLog, aItem );
+//sf- AddParamsL( params );
+
+// void RollbackAtomicL();
+ iAdapter->RollbackAtomicL();
+
+ // Cleanup
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::StreamingSupportL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::StreamingSupportL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("StreamingSupportL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::StreamingSupportL()"));
+
+ TInt ret = KErrNone;
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TInt itemSize = 0;
+ TBool status = iAdapter->StreamingSupport( itemSize );
+
+ TBuf8<10> statusStr;
+ TBuf8<20> itemSizeStr;
+
+ statusStr.Format( _L8("%d"), status );
+ itemSizeStr.Format( _L8("%d"), itemSize );
+ ret = params->CheckStatusL( status );
+ ret = params->CheckDataL( itemSizeStr );
+
+ // Cleanup
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::StreamCommittedL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::StreamCommittedL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("StreamCommittedL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::StreamCommittedL()"));
+
+ TInt ret = KErrNone;
+//sf- CTestParams* params = CTestParams::NewL( iLog, aItem );
+//sf- AddParamsL( params );
+
+// void StreamCommittedL();
+ iAdapter->StreamCommittedL();
+
+ // Cleanup
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::CompleteOutstandingCmdsL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::CompleteOutstandingCmdsL( CStifItemParser& /*aItem*/ )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("CompleteOutstandingCmdsL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::CompleteOutstandingCmdsL()"));
+
+ TInt ret = KErrNone;
+//sf- CTestParams* params = CTestParams::NewL( iLog, aItem );
+//sf- AddParamsL( params );
+
+// void CompleteOutstandingCmdsL();
+ iAdapter->CompleteOutstandingCmdsL();
+
+ ret = CheckAllL( );
+
+ // Cleanup
+ return ret;
+ }
+#if 0
+// -----------------------------------------------------------------------------
+// CThemesTest::CreateFileL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::CreateFileL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("CreateFileL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::CreateFileL()"));
+
+ TInt ret = KErrNone;
+
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 filename( params->Data() );
+
+ RFs fs; fs.Connect();
+
+ TFileName fname; fname.Copy( filename );
+ RFile f; f.Replace(fs, fname, EFileShareExclusive|EFileWrite);
+ TPtrC8 dataType( params->DataType() );
+ if(dataType.Length() == 0)
+ {
+ f.Write(_L8("File created by ThemesTest"));
+ }
+ else
+ {
+ f.Write( dataType );
+ }
+ f.Close();
+
+ fs.Close();
+
+ ret = params->CheckL( iCallback );
+ //ret = CheckAllL( );
+
+ //CleanupStack::PopAndDestroy( params );
+
+ // Cleanup
+ return ret;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::RFSCommandL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::RFSCommandL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("RFSCommandL") );
+
+ // Print to log file
+ iLog->Log(_L("CThemesTest::RFSCommandL()"));
+
+ TInt status = KErrNone;
+
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 command( params->Data() );
+
+ RRfsClient client;
+
+ status = client.Connect();
+
+ if( KErrNone == status )
+ {
+ CleanupClosePushL( client );
+
+ HBufC* cmd = HBufC::NewLC( command.Length() );
+ if(cmd != 0)
+ {
+ TPtr ptr( cmd->Des() );
+ ptr.Copy( command );
+ status = client.RunScriptInDescriptor(ptr);
+ if(status >= 0) status = 0;
+ }
+ CleanupStack::PopAndDestroy( cmd );
+
+ CleanupStack::PopAndDestroy( &client );
+ }
+
+ params->CheckL( iCallback );
+
+ return status;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::LoadPolicyL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::LoadPolicyL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("LoadPolicyL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::LoadPolicyL()"));
+ TInt status = KErrNone;
+
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 data( params->Data() );
+
+ RPolicyEngine eng;
+ status = eng.Connect();
+
+ if( KErrNone == status )
+ {
+ iLog->Log(_L("CThemesTest::LoadPolicyL() Connected to policy engine"));
+ RPolicyManagement man;
+ status = man.Open( eng );
+ if( KErrNone == status )
+ {
+ iLog->Log(_L("CThemesTest::LoadPolicyL() Policy management session open"));
+ TParserResponse resp;
+ status = man.ExecuteOperation(data, resp);
+ if( KErrNone == status )
+ {
+ iLog->Log(_L("CThemesTest::LoadPolicyL() Policy added"));
+ }
+ man.Close();
+ }
+ eng.Close();
+ }
+
+ params->CheckL( iCallback );
+
+ return status;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::SetCertificateL
+//
+// -----------------------------------------------------------------------------
+//
+/*
+Test-Case for this API
+[Test]
+title SS_GetAll
+create ThemesTest ttest
+ttest LoadL 1020782E
+
+ttest SetCertificate <CentralRepositoryUid>
+[EndTest]
+*/
+
+TInt CThemesTest::SetCertificateL( CStifItemParser& aItem )
+ {
+ TInt errx = KErrNone;
+
+ RDMUtil dm;
+ if( KErrNone == dm.Connect() )
+ {
+ dm.Close();
+ }
+
+ TCertInfo info;
+ info.iSerialNo = _L8("Lässynlää");
+ info.iFingerprint = _L8("Joopajoo");;
+
+ // Changed due to SF.
+ TInt ret = KErrNone;
+ TUint CentralRepositoryUid = 0;
+
+ ret = aItem.GetNextInt( CentralRepositoryUid, EHex );
+
+ const TInt KCertKey = 0x01;
+ CRepository *re = NULL;
+ TRAP( errx, re = CRepository::NewL ( CentralRepositoryUid ) );
+ if (errx == KErrNone )
+ {
+ TPckg<TCertInfo> pcert( info );
+ errx = re->Create( KCertKey, pcert ) ;
+ if ( errx == KErrNone )
+ {
+ }
+ else
+ {
+ if ( errx == KErrAlreadyExists )
+ {
+ errx = re->Set( KCertKey, pcert ) ;
+ if ( errx != KErrNone )
+ {
+ // DBG_ARGS8(_S8("ERROR Failed to add reposiritry key %d"), errx );
+ }
+ }
+ else
+ {
+ // DBG_ARGS8(_S8("ERROR Failed to create reposiritry key %d"), errx );
+ }
+
+ }
+ delete re ;
+ }
+ else
+ {
+ // DBG_ARGS8(_S8("ERROR Failed to open reposiritry %d"), erx );
+ }
+
+ return errx;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ConnectToPolicyServerL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ConnectToPolicyServerL( CStifItemParser& /*aItem*/ )
+ {
+ TInt status = KErrNone;
+
+ RPolicyEngine eng;
+ status = eng.Connect();
+
+ if( KErrNone == status )
+ {
+ iLog->Log(_L("CThemesTest::LoadPolicyL() Connected to policy engine"));
+ RPolicyManagement man;
+ status = man.Open( eng );
+ if( KErrNone == status )
+ {
+ iLog->Log(_L("CThemesTest::LoadPolicyL() Policy management session open"));
+ man.Close();
+ }
+ eng.Close();
+ }
+
+ return status;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ConnectToDMUTILL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ConnectToDMUTILL( CStifItemParser& /*aItem*/ )
+ {
+ TInt status = KErrNone;
+
+ RDMUtil dm;
+ status = dm.Connect();
+ if( KErrNone == status )
+ {
+ dm.Close();
+ }
+
+ return status;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::GetThirdPartyValueL
+//
+// -----------------------------------------------------------------------------
+//
+HBufC8* CThemesTest::GetThirdPartyValueL( TInt aType )
+ {
+ RTerminalControl tc;
+ User::LeaveIfError( tc.Connect() );
+
+ RTerminalControl3rdPartySession ts;
+ User::LeaveIfError( ts.Open( tc ) );
+
+ TInt size = ts.GetDeviceLockParameterSize( aType );
+ if( size < 0 )
+ {
+ User::Leave( size );
+ }
+
+ HBufC8* buffer = HBufC8::NewLC( size );
+ TPtr8 ptr8( buffer->Des() );
+
+ User::LeaveIfError( ts.GetDeviceLockParameter( aType, ptr8 ) );
+
+ ts.Close();
+ tc.Close();
+
+ CleanupStack::Pop( buffer );
+ return buffer;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::SetThirdPartyValueL
+//
+// -----------------------------------------------------------------------------
+//
+void CThemesTest::SetThirdPartyValueL( TInt aType, TDesC8& aData )
+ {
+ RTerminalControl tc;
+ User::LeaveIfError( tc.Connect() );
+
+ RTerminalControl3rdPartySession ts;
+ User::LeaveIfError( ts.Open( tc ) );
+
+ User::LeaveIfError( ts.SetDeviceLockParameter( aType, aData ) );
+
+ ts.Close();
+ tc.Close();
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::ThirdPartyCommandL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::ThirdPartyCommandL( CStifItemParser& aItem )
+ {
+ CTestDmCallback *cb = CTestDmCallback::NewL( iLog );
+ CleanupStack::PushL( cb );
+
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("ThirdP_AutolockPeriodL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::ThirdP_AutolockPeriodL()"));
+ TInt status = KErrNone;
+
+ CTestParams* params = CTestParams::NewL( iLog, aItem );
+ AddParamsL( params );
+
+ TPtrC8 command( params->Uri() );
+ TPtrC8 direction( params->DataType() );
+ TPtrC8 value( params->Data() );
+
+/*
+ {
+ ETimeout = 1000, // Autolock timeout. Values in minutes.
+ EMaxTimeout, // Maximum autolock timeout value. When != 0 the lock is enabled, When = 0 the lock is off
+ EPasscode, // Passcode. Return value not supported
+ EPasscodePolicy, // 0 = passcode free. When != 0 the passcode can not be changed
+ ELock, // Lock the terminal immediately. Return value not supported
+ EDeviceWipe, // When != 0 the Device is wiped
+ ELast = 2000
+ };
+*/
+
+ if( direction.Compare( _L8("read") ) == 0)
+ {
+ HBufC8* data = 0;
+ if( command.Compare( _L8("ETimeout") ) == 0 )
+ {
+ data = GetThirdPartyValueL( RTerminalControl3rdPartySession::ETimeout );
+ }
+ else if( command.Compare( _L8("EMaxTimeout") ) == 0 )
+ {
+ data = GetThirdPartyValueL( RTerminalControl3rdPartySession::EMaxTimeout );
+ }
+ else if( command.Compare( _L8("EPasscode") ) == 0 )
+ {
+ data = GetThirdPartyValueL( RTerminalControl3rdPartySession::EPasscode );
+ }
+ else if( command.Compare( _L8("EPasscodePolicy") ) == 0 )
+ {
+ data = GetThirdPartyValueL( RTerminalControl3rdPartySession::EPasscodePolicy );
+ }
+ else if( command.Compare( _L8("ELock") ) == 0 )
+ {
+ data = GetThirdPartyValueL( RTerminalControl3rdPartySession::ELock );
+ }
+ else if( command.Compare( _L8("EDeviceWipe") ) == 0 )
+ {
+ data = GetThirdPartyValueL( RTerminalControl3rdPartySession::EDeviceWipe );
+ }
+
+ if( 0 == data )
+ {
+ User::Leave( KErrGeneral );
+ }
+ CleanupStack::PushL( data );
+
+ TInt statusRef = cb->GetNewStatusRefL( );
+ TInt resultsRef = cb->GetNewResultsRefL( );
+
+ params->SetStatusRef( statusRef);
+ params->SetResultsRef( resultsRef);
+
+ CBufFlat* buf = CBufFlat::NewL(128);
+ CleanupStack::PushL( buf );
+
+ buf->InsertL( 0, *data );
+ cb->SetResultsL( resultsRef, *buf, KNullDesC8() );
+ cb->SetStatusL( statusRef, (MSmlDmAdapter::TError)0 );
+
+ CleanupStack::PopAndDestroy( buf );
+ CleanupStack::PopAndDestroy( data );
+ }
+ else if( direction.Compare( _L8("write") ) == 0)
+ {
+ if( command.Compare( _L8("ETimeout") ) == 0 )
+ {
+ SetThirdPartyValueL( RTerminalControl3rdPartySession::ETimeout, value );
+ }
+ else if( command.Compare( _L8("EMaxTimeout") ) == 0 )
+ {
+ SetThirdPartyValueL( RTerminalControl3rdPartySession::EMaxTimeout, value );
+ }
+ else if( command.Compare( _L8("EPasscode") ) == 0 )
+ {
+ SetThirdPartyValueL( RTerminalControl3rdPartySession::EPasscode, value );
+ }
+ else if( command.Compare( _L8("EPasscodePolicy") ) == 0 )
+ {
+ SetThirdPartyValueL( RTerminalControl3rdPartySession::EPasscodePolicy, value );
+ }
+ else if( command.Compare( _L8("ELock") ) == 0 )
+ {
+ SetThirdPartyValueL( RTerminalControl3rdPartySession::ELock, value );
+ }
+ else if( command.Compare( _L8("EDeviceWipe") ) == 0 )
+ {
+ SetThirdPartyValueL( RTerminalControl3rdPartySession::EDeviceWipe, value );
+ }
+ }
+ else
+ {
+ User::Leave( KErrArgument );
+ }
+
+ params->CheckL( cb );
+
+ CleanupStack::PopAndDestroy( cb );
+
+ return status;
+ }
+
+// -----------------------------------------------------------------------------
+// CThemesTest::InitDMSessionL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::InitDMSessionL( CStifItemParser& /*aItem*/ )
+ {
+ TInt status = KErrNone;
+
+ RNSmlPrivateAPI privateApi;
+
+ privateApi.OpenL();
+
+ TBuf8<100> buf;
+
+ buf.Append( 0x3F);
+ buf.Append( 0x4E);
+ buf.Append( 0x87);
+ buf.Append( 0xBE);
+ buf.Append( 0x50);
+ buf.Append( 0xCC);
+ buf.Append( 0x28);
+ buf.Append( 0x5E);
+ buf.Append( 0x96);
+ buf.Append( 0x87);
+ buf.Append( 0x3D);
+ buf.Append( 0x29);
+ buf.Append( 0x39);
+ buf.Append( 0xEB);
+ buf.Append( 0x78);
+ buf.Append( 0x0B);
+ buf.Append( 0x02);
+ buf.Append( 0xF8);
+ buf.Append( 0x00);
+ buf.Append( 0x00);
+ buf.Append( 0x00);
+ buf.Append( 0x00);
+ buf.Append( 0x17);
+ buf.Append( 0x06);
+ buf.Append( 0x53);
+ buf.Append( 0x79);
+ buf.Append( 0x6E);
+ buf.Append( 0x63);
+ buf.Append( 0x34);
+ buf.Append( 0x6A);
+
+ privateApi.SendL( buf, ESmlDevMan, ESmlVersion1_1_2 );
+
+ privateApi.Close();
+
+ return status;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CThemesTest::RRRunL
+//
+// -----------------------------------------------------------------------------
+//
+TInt CThemesTest::RRRunL( CStifItemParser& aItem )
+ {
+ // Print to UI
+ TestModuleIf().Printf( 0, _L("ThemesTest"), _L("RRRunL") );
+ // Print to log file
+ iLog->Log(_L("CThemesTest::RRRunL()"));
+
+// void DDFVersionL( CBufBase& aVersion );
+ TInt ret = KErrNone;
+
+ CTestParams *params = CTestParams::NewLC( iLog, aItem );
+
+/*
+URI=
+
+File=
+Text=
+
+IT= Input (text)
+IF= Input File (filename)
+OF= Output File
+
+ET= Expected result (text)
+EF= Expected file (filename)
+*/
+
+ CleanupStack::PopAndDestroy( params );
+
+ return ret;
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// CThemesTest::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt CThemesTest::?member_function(
+ CItemParser& aItem )
+ {
+
+ ?code
+
+ }
+*/
+
+#endif
+void CThemesTest::AddParamsL( CTestParams* aParams )
+ {
+ CleanupStack::PushL( aParams );
+ User::LeaveIfError( iParams.Append( aParams ) );
+ CleanupStack::Pop( aParams );
+ }
+
+void CThemesTest::AddDDFParamsL( CDDFTestParams* aDDFParams )
+ {
+ CleanupStack::PushL( aDDFParams );
+ User::LeaveIfError( iDDFParams.Append( aDDFParams ) );
+ CleanupStack::Pop( aDDFParams );
+ }
+
+TInt CThemesTest::CheckAllL( )
+ {
+ TInt ret = KErrNone;
+
+ for (TInt i = 0 ; i < iParams.Count() ; i++)
+ {
+ TInt result = iParams[i]->CheckL( iCallback );
+ if (result != KErrNone && ret == KErrNone)
+ {
+ ret = result;
+ }
+ }
+
+ return ret;
+ }
+
+TInt CThemesTest::CheckDDFL( CTestDmDDFObject* aDDFRoot )
+ {
+ TInt ret = KErrNone;
+ TInt result = 0;
+
+ if ( iDDFParams.Count() > 0 )
+ {
+ }
+
+ TInt i;
+ for ( i = 0 ; i < iDDFParams.Count() ; i++ )
+ {
+ result = iDDFParams[i]->CheckL( aDDFRoot );
+ if ( result != KErrNone && ret == KErrNone )
+ {
+ ret = result;
+ }
+ }
+
+ if ( i > 0 )
+ {
+ TInt count = aDDFRoot->SubObjectsCount();
+ if (count != i)
+ {
+ iLog->Log( _L8("Error: CheckDDFL(): DDF count mismatch: expected=%d real=%d"), iDDFParams.Count(), count );
+ if (ret == KErrNone)
+ {
+ ret = KErrGeneral;
+ }
+ }
+ }
+
+ return ret;
+ }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+// End of File