diff -r 000000000000 -r 3ce708148e4d applicationmanagement/tsrc/tarmappmng/src/amtestBlocks.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/applicationmanagement/tsrc/tarmappmng/src/amtestBlocks.cpp Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,507 @@ +/* +* 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 applicationmanagement components +* +*/ + + + +// INCLUDE FILES +#include +#include +#include +#include "amtest.h" +#include "applicationmanagementclient.h" +#include +#include +#include + + +using namespace NApplicationManagement; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// Camtest::Delete +// Delete here all resources allocated and opened from test methods. +// Called from destructor. +// ----------------------------------------------------------------------------- +// +void Camtest::Delete() + { + + } + +// ----------------------------------------------------------------------------- +// Camtest::RunMethodL +// Run specified method. Contains also table of test mothods and their names. +// ----------------------------------------------------------------------------- +// +TInt Camtest::RunMethodL( + CStifItemParser& aItem ) + { + + 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( "DDFStructure", Camtest::DDFStructureL), + ENTRY( "List", Camtest::ExampleL ), + ENTRY( "Deliver", Camtest::DeliverL ), + ENTRY( "Details", Camtest::DetailsL ), + ENTRY( "Install", Camtest::InstallL ), + ENTRY( "BareInstall", Camtest::BareInstallL ), + ENTRY( "FetchNode", Camtest::FetchNodeL ), + ENTRY( "FetchLeaf", Camtest::FetchLeafL ), + ENTRY( "FetchLeafObjectSizeL", Camtest::FetchLeafObjectSizeL ), + //ENTRY( "CompleteCommands", Cdmatest::CompleteCommandsL ), + ENTRY( "AddNode", Camtest::AddNodeL ), + ENTRY( "UpdateLeaf", Camtest::UpdateLeafL ), + ENTRY( "UpdateLeafData", Camtest::UpdateLeafDataL ), + ENTRY( "UpdateLeafDataURI", Camtest::UpdateLeafDataURLL ), + ENTRY( "Execute", Camtest::ExecuteLeafL ), + ENTRY( "ExecuteData", Camtest::ExecuteLeafDataL ), + ENTRY( "DeleteNode", Camtest::DeleteObjectL ), + ENTRY( "StartAtomic", Camtest::StartAtomicL), + ENTRY( "CommitAtomic", Camtest::CommitAtomicL), + ENTRY( "RollbackAtomic", Camtest::RollbackAtomicL), + //Newly addded + ENTRY( "AddLeafNode", Camtest::AddLeafNode), + ENTRY( "InstallActivate", Camtest::InstallActivate), + //Newly ended +// ENTRY( "BareAppInstall", Camtest::BareAppInstallL), +/* ENTRY( "DDFStructure", Camtest::DDFStructureL),*///BareAppInstallL + }; + + const TInt count = sizeof( KFunctions ) / + sizeof( TStifFunctionInfo ); + + return RunInternalL( KFunctions, count, aItem ); + + } + +// ----------------------------------------------------------------------------- +// Camtest::ExampleL +// Example test method function. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt Camtest::ExampleL( CStifItemParser& /*aItem*/ ) + { + + // Print to UI + TestModuleIf().Printf( 0, _L("amtest"), _L("In Example") ); + // Print to log file + iLog->Log(_L("In Example")); + + RApplicationManagement ams ; + TInt err( ams.Connect() ); + + if ( err == KErrNone ) + { + RElementIdArray array; + ams.DeploymentComponentIdsL(array); + iLog->Log( _L( "Found %d Ids" ), array.Count() ); + for ( TInt i = 0; i < array.Count(); i++ ) + { + iLog->Log( _L( " Id %d: %d" ), i, array[i] ); + } + + + TDeploymentComponent comp ; + comp.iId = _L8( "Iidee" ); + TBuf8<10> buf; + TTime tm; + tm.HomeTime(); + TInt64 rn = tm.Int64() ; + TInt rand = Math::Rand( rn ) ; + buf.NumFixedWidth( rand, EHex, 10); + + comp.iId.Append( buf ); + comp.iVersion = _L8( "2.3" ); + comp.iName = _L8( "Nimi" ); + + err = ams.DeliverL(/*_L8("Leaf"), */comp.iId/*, comp.iName, comp.iVersion, EDCSDelivered, _L8("datadatadatadata"), _L8("iopts"), _L8("meta") */) ; + iLog->Log( _L( " Deliver response: %d, state: %d" ), err, comp.iState ); + User::LeaveIfError ( err ); + err = KErrNone; + + array.Reset(); + ams.DeploymentComponentIdsL(array); + iLog->Log( _L( "Found 2ndtime %d Ids" ), array.Count() ); + for ( TInt i = 0; i < array.Count(); i++ ) + { + iLog->Log( _L( " Id %d: %d" ), i, array[i] ); + + TDeploymentComponent comp2 ; + err = ams.DeploymentComponent(array[i], comp); + iLog->Log( _L( " DeploymentComponent response: %d, state: %d" ), err, comp.iState ); + if ( err == KErrNone ) + { + HBufC *b = HBufC::NewLC( comp.iId.Length() ); + TPtr p( b->Des() ); + p.Copy( comp.iId ); + + iLog->Log( _L( "CompId: %S" ), &p ); + CleanupStack::PopAndDestroy(); + } + else + { + + } + } + ams.Close(); + } + else + { + iLog->Log( _L( "Failed to connect: %d" ), err); + } + + return err; + + } + +// ----------------------------------------------------------------------------- +// Camtest::ExampleL +// Example test method function. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt Camtest::DetailsL( CStifItemParser& aItem ) + { + + // Print to UI + TestModuleIf().Printf( 0, _L("amtest"), _L("In DetailsL") ); + // Print to log file + iLog->Log(_L("In DetailsL")); + + RApplicationManagement ams ; + TInt err( ams.Connect() ); + + if ( err == KErrNone ) + { + + TInt i( 0 ); + TInt nodename; + i = aItem.GetNextInt ( nodename ) ; + if ( i != KErrNone ) + { + iLog->Log( _L( "ERROR Reading id argument: 0x%X"), i); + //return i; + } + else + { + iLog->Log( _L("id: %d"), nodename); + } + + RElementIdArray array; + ams.DeploymentComponentIdsL(array); + iLog->Log( _L( "Found %d Ids" ), array.Count() ); + for ( TInt i = 0; i < array.Count(); i++ ) + { + + iLog->Log( _L( " Id %d: %d" ), i, array[i] ); + + TDeploymentComponent comp2 ; + err = ams.DeploymentComponent(array[i], comp2); + iLog->Log( _L( " DeploymentComponent response: %d, state: %d" ), err, comp2.iState ); + if ( err == KErrNone ) + { + HBufC *b = HBufC::NewLC( comp2.iId.Length() ); + TPtr p( b->Des() ); + p.Copy( comp2.iId ); + + iLog->Log( _L( "CompId: %S" ), &p ); + CleanupStack::PopAndDestroy(); + } + else + { + + } + } + User::LeaveIfError ( err ); + err = KErrNone; + ams.Close(); + } + else + { + iLog->Log( _L( "Failed to connect: %d" ), err); + } + return err; + } + + +// ----------------------------------------------------------------------------- +// Camtest::InstallL +// ----------------------------------------------------------------------------- +// +TInt Camtest::InstallL( CStifItemParser& aItem ) + { + + // Print to UI + TestModuleIf().Printf( 0, _L("amtest"), _L("In InstallL") ); + // Print to log file + + iLog->Log(_L("In DetailsL")); + TCertInfo info ; + info.iFingerprint =_L8("finger"); + info.iSerialNo = _L8("serial"); + + RApplicationManagement ams ; + TInt err( ams.Connect( info ) ); + + + if ( err == KErrNone ) + { + + TInt i( 0 ); + TUint32 nodename; + i = aItem.GetNextInt ( (TInt&)nodename ) ; + if ( i != KErrNone ) + { + iLog->Log( _L( "ERROR Reading id argument: 0x%X"), i); + //return i; + } + else + { + iLog->Log( _L("id: %d"), nodename); + } + +/* RElementIdArray array; + ams.DeploymentComponentIdsL(array); + iLog->Log( _L( "Found %d Ids" ), array.Count() ); + for ( TInt i = 0; i < array.Count(); i++ ) + { + + iLog->Log( _L( " Id %d: %d" ), i, array[i] ); + + TDeploymentComponent comp2 ; + err = ams.DeploymentComponent(array[i], comp2); + iLog->Log( _L( " DeploymentComponent response: %d, state: %d" ), err, comp2.iState ); + if ( err == KErrNone ) + { + HBufC *b = HBufC::NewLC( comp2.iId.Length() ); + TPtr p( b->Des() ); + p.Copy( comp2.iId ); + + iLog->Log( _L( "CompId: %S" ), &p ); + CleanupStack::PopAndDestroy(); + + } + else + { + + } + + if ( nodename == array[i] ) + { + iLog->Log( _L( "CompId: %S" ), &p ); + } + } + */ + ams.InstallL( nodename ) ; + User::LeaveIfError ( err ); + err = KErrNone; + + ams.Close(); + } + else + { + iLog->Log( _L( "Failed to connect: %d" ), err); + } + return err; + } + +// ----------------------------------------------------------------------------- +// Camtest::InstallL +// ----------------------------------------------------------------------------- +// +TInt Camtest::BareInstallL( CStifItemParser& aItem ) + { + + // Print to UI + TestModuleIf().Printf( 0, _L("amtest"), _L("In InstallL") ); + // Print to log file + iLog->Log(_L("In DetailsL")); + +/*void CAmAdapter::InstallL( + TUint aLuidi, + const TDesC8& aURI, + const TDesC8& aLUID, + const TDeploymentComponentState aTargetState, + TError &aRet + TInt aluidi( 0 ); + TUint32 aLuidInt; + aluidi = aItem.GetNextInt ( (TInt&)aLuidInt ) ; + + + TPtrC8 nodename( GetNextStringLC ( aItem, _L("Node name") )->Des() ) ; + + + SetURIL( nodename ); + + HBufC8 *luid = GetLuidAllocLC( *iURI ); + TError ret( EError ); + + TRAPD( err, Adapter()->InstallL(aluidi,*iURI, *luid,3 ,ret));*/ + + //using namespace SwiUI; + SwiUI::RSWInstLauncher ams ; + TInt err( ams.Connect() ); + + if ( err == KErrNone ) + { + CleanupClosePushL( ams ); + iLog->Log( _L( "Connected!" )); + TPtrC filename ; + User::LeaveIfError( aItem.GetNextString( filename ) ); + + + + TRequestStatus stat; + + ams.Install( stat, filename ); + User::WaitForRequest( stat ); + CleanupStack::Pop(); + + ams.Close(); + } + else + { + iLog->Log( _L( "Failed to connect: %d" ), err); + } + return err; + } + + +HBufC8 *Camtest::GetNextStringLC ( CStifItemParser& aItem, const TDesC &aName ) + { + TPtrC nodename; + nodename.Set( KNullDesC ); + + TInt i( aItem.GetNextString ( nodename ) ); + if ( i != KErrNone ) + { + iLog->Log( _L( "ERROR Reading '%S' argument: 0x%X" ), &aName, i ); + } + else + { + iLog->Log( _L("%S: %S"), &aName, &nodename); + } + + HBufC8 *buf = HBufC8::NewLC( nodename.Length() ) ; + buf->Des().Copy( nodename ); + + return buf; + } + + +HBufC8 *LoadFileL( const TDesC8 &aDataFile ) + { + RFs fs ; + User::LeaveIfError( fs.Connect() ); + CleanupClosePushL( fs ); // 1 + RFile file ; + TFileName fn; + fn.Copy( aDataFile ); + User::LeaveIfError ( file.Open( fs, fn, EFileRead ) ); + CleanupClosePushL( file ); // 2 + TInt size; + User::LeaveIfError( file.Size( size ) ); + + HBufC8 *res = HBufC8::NewLC( size ); //3 + TPtr8 p( res->Des() ); + User::LeaveIfError( file.Read( p ) ); + CleanupStack::Pop(); // res + CleanupStack::PopAndDestroy( 2 ); // file, fs + CleanupStack::PushL( res ); + return res ; + } + +// ----------------------------------------------------------------------------- +// Camtest::ExampleL +// Example test method function. +// (other items were commented in a header). +// ----------------------------------------------------------------------------- +// +TInt Camtest::DeliverL( CStifItemParser& aItem ) + { + + // Print to UI + TestModuleIf().Printf( 0, _L("amtest"), _L("In DeliverL") ); + // Print to log file + iLog->Log(_L("In DeliverL")); + + RApplicationManagement ams ; + TInt err( ams.Connect() ); + + if ( err == KErrNone ) + { + CleanupClosePushL( ams ); + HBufC8 *id = GetNextStringLC ( aItem, _L("Id") ) ; + HBufC8 *name = GetNextStringLC( aItem, _L( "Name" ) ) ; + HBufC8 *version = GetNextStringLC ( aItem, _L( "Version" ) ) ; + HBufC8 *data = GetNextStringLC ( aItem, _L( "data" ) ) ; + HBufC8 *instopt = GetNextStringLC (aItem, _L( "InstOpts" ) ) ; + if ( data != NULL ) + { + //HBufC8 *datat = NULL; + HBufC8 *datat = LoadFileL( *data ); + RElementIdArray array; + ams.DeploymentComponentIdsL(array); + iLog->Log( _L( "Found %d Ids" ), array.Count() ); + for ( TInt i = 0; i < array.Count(); i++ ) + { + iLog->Log( _L( " Id %d: %d" ), i, array[i] ); + } + + TDeploymentComponent comp ; + comp.iId = *id; + comp.iVersion = *version; + comp.iName = *name; + + err = ams.DeliverL(/*_L8("Jee"),*/ comp.iId/*, comp.iName, comp.iVersion, EDCSDelivered , *datat, *instopt, _L8("meta") */) ; + iLog->Log( _L( " Deliver response: %d, state: %d" ), err, comp.iState ); + User::LeaveIfError ( err ); + err = KErrNone; + + array.Reset(); + ams.DeploymentComponentIdsL(array); + iLog->Log( _L( "Found 2ndtime %d Ids" ), array.Count() ); + for ( TInt i = 0; i < array.Count(); i++ ) + { + iLog->Log( _L( " Id %d: %d" ), i, array[i] ); + } + + CleanupStack::PopAndDestroy( datat ); + } + CleanupStack::PopAndDestroy( instopt ); + CleanupStack::PopAndDestroy( data ); + CleanupStack::PopAndDestroy( version ); + CleanupStack::PopAndDestroy( name ); + CleanupStack::PopAndDestroy( id ); + CleanupStack::PopAndDestroy( ); //ams + } + else + { + iLog->Log( _L( "Failed to connect: %d" ), err); + } + + return err; + + } + + +// End of File