--- a/installationservices/swinstallationfw/test/tusif/source/tsifnotifierteststep.cpp Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,607 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-/**
- @file
- @internalTechnology
-*/
-
-#include "tsifnotifierteststep.h"
-#include "tsifsuitedefs.h"
-#include <usif/sif/sifcommon.h>
-#include <usif/sif/sif.h>
-#include <scs/cleanuputils.h>
-#include <ct/rcpointerarray.h>
-
-using namespace Usif;
-
-_LIT(KOperationCount, "OperationCount");
-_LIT(KOperation, "Operation");
-_LIT(KGlobalCompId, "GlobalCompId");
-_LIT(KComponentName, "ComponentName");
-_LIT(KComponentIcon, "ComponentIcon");
-_LIT(KAppNameCount, "AppNameCount");
-_LIT(KAppName, "AppName");
-_LIT(KAppIconCount, "AppIconCount");
-_LIT(KAppIcon, "AppIcon");
-_LIT(KComponentSize, "ComponentSize");
-_LIT(KIconPath, "IconPath");
-_LIT(KSoftwareType, "SoftwareType");
-_LIT(KErrMsg, "ErrMsg");
-_LIT(KErrMsgDetails, "ErrMsgDetails");
-_LIT(KErrCategory, "ErrCategory");
-_LIT(KErrCode, "ErrCode");
-_LIT(KPhase, "Phase");
-_LIT(KSubPhase, "SubPhase");
-_LIT(KCurrentProgress, "CurrentProgress");
-_LIT(KTotal, "Total");
-_LIT(KSubscriberNumber, "SubscriberNumber");
-_LIT(KKeyNumber, "KeyNumber");
-_LIT (KSubscribeKey, "SubscribeKey");
-_LIT (KSubscribeForProgress, "SubscribeForProgress");
-_LIT (KEndData, "EndData");
-_LIT (KProgressData, "ProgressData");
-_LIT (KDelay, "Delay");
-_LIT (KTotalStartCount, "StartCount");
-_LIT (KTotalProgressCount, "ProgressCount");
-_LIT (KTotalEndCount, "EndCount");
-_LIT (KSubscribeShutdownTimer, "SubscribeShutdownTimer");
-_LIT (KPublisherDelay, "PublisherDelay");
-_LIT (KPrintDetails, "PrintDetails");
-CSifSubscribeTestStep::~CSifSubscribeTestStep()
-/**
-* Destructor
-*/
- {
- INFO_PRINTF1(_L("Cleanup in CSifSubscribeTestStep::~CSifSubscribeTestStep()"));
- }
-
-CSifSubscribeTestStep::CSifSubscribeTestStep()
-/**
-* Constructor
-*/
- {
- SetTestStepName(KSifSubscribeTestStep);
- }
-
-void CSifSubscribeTestStep::ImplTestStepPreambleL()
-/**
-* @return - TVerdict code
-* Override of base class virtual
-*/
- {
- INFO_PRINTF1(_L("I am in CSifSubscribeTestStep::ImplTestStepPreambleL()."));
- iSched=new(ELeave) CActiveScheduler;
- CActiveScheduler::Install(iSched);
- SetTestStepResult(EPass);
- }
-
-
-void CSifSubscribeTestStep::ImplTestStepL()
-/**
-* @return - TVerdict code
-* Override of base class pure virtual
-* Our implementation only gets called if the base class doTestStepPreambleL() did
-* not leave. That being the case, the current test result value will be EPass.
-*/
- {
- //Get the Subscriber number
- GetIntFromConfig(ConfigSection(),KSubscriberNumber, iSubscriberNum);
-
- // Delay the Startup ?
- TInt delay(0);
- //Get the delay value if present
- GetIntFromConfig(ConfigSection(),KDelay, delay);
- if(delay !=0)
- {
- User::After(delay * 1000000);
- }
-
-
- iNotifier = CSifOperationsNotifier::NewL(*this);
- TInt shutdownTimer(0);
- GetIntFromConfig(ConfigSection(), KSubscribeShutdownTimer, shutdownTimer);
- if(shutdownTimer ==0)
- {
- shutdownTimer = 10; //default value
- }
- iTimer = CStopTimer::NewL(iNotifier, shutdownTimer* 1000000);
- CActiveScheduler::Start();
-
- //Verify Counts
- TInt startCount(0);
- GetIntFromConfig(ConfigSection(), KTotalStartCount, startCount);
-
- if(startCount != iStartMessageCounter)
- {
- INFO_PRINTF1(_L("Total number of start handler notifications received does not match expected value"));
- SetTestStepResult(EFail);
- }
-
- TInt progressCount(0);
- GetIntFromConfig(ConfigSection(), KTotalProgressCount, progressCount);
-
- if(progressCount != iProgressMessageCounter)
- {
- INFO_PRINTF1(_L("Total number of progress handler notifications received does not match expected value"));
- SetTestStepResult(EFail);
- }
-
- TInt endCount(0);
- GetIntFromConfig(ConfigSection(), KTotalEndCount, endCount);
-
- if(endCount != iEndMessageCounter)
- {
- INFO_PRINTF1(_L("Total number of end handler notifications received does not match expected value"));
- SetTestStepResult(EFail);
- }
-
- }
-
-void CSifSubscribeTestStep::ImplTestStepPostambleL()
-/**
-* @return - TVerdict code
-* Override of base class virtual
-*/
- {
- INFO_PRINTF1(_L("I am in CSifPublishTestStep::ImplTestStepPostambleL()."));
- delete iNotifier;
- delete iSched;
- delete iTimer;
- }
-
-void CSifSubscribeTestStep::StartOperationHandler(TUint aKey, const CSifOperationStartData& aStartData)
- {
- TBuf<20> Key;
- Key = KKeyNumber;
- GenerateIndexedAttributeNameL(Key, ++iStartMessageCounter);
- TPtrC keyFromIni;
- GetStringFromConfig(ConfigSection(), Key, keyFromIni);
- HBufC* retrievedKeyFromIni = keyFromIni.AllocLC();
-
- //Received Key
- HBufC* receivedKey = HBufC::NewLC(20);
- receivedKey->Des().Format(_L("%d"), aKey );
-
- if(*receivedKey != *retrievedKeyFromIni)
- {
- INFO_PRINTF1(_L("Key Mismatch !") );
- SetTestStepResult(EFail);
- }
- else
- {
- INFO_PRINTF1(_L("Received Correct Key!") );
- }
-
-
- //Subscribe to key ?
- TBuf<20> SubscribeKey;
- SubscribeKey = KSubscribeKey;
- GenerateIndexedAttributeNameL(SubscribeKey, ++iSubscribeCounter);
-
- TPtrC SubscribeKeyFromIni;
- if(GetStringFromConfig(ConfigSection(),SubscribeKey, SubscribeKeyFromIni))
- {
- HBufC* retrievedSubscribeKeyFromIni = SubscribeKeyFromIni.AllocLC();
-
-
- if(*retrievedSubscribeKeyFromIni == *receivedKey)
- {
- INFO_PRINTF3(_L("Subscribing to Key %d from Subscriber%d ."), aKey, iSubscriberNum);
-
- TBuf<35> progressNotifier;
- progressNotifier = KSubscribeForProgress;
- GenerateIndexedAttributeNameL(progressNotifier, iSubscribeCounter);
-
- TBool progressNotifierVal;
- GetBoolFromConfig(ConfigSection(),progressNotifier, progressNotifierVal);
- iNotifier->SubscribeL(aKey, progressNotifierVal);
- }
-
- CleanupStack::PopAndDestroy(retrievedSubscribeKeyFromIni);
- }
-
- CleanupStack::PopAndDestroy(2, retrievedKeyFromIni);
- //Global Component Id check
- TBuf<20> GlobalId;
- GlobalId = KGlobalCompId;
- GenerateIndexedAttributeNameL(GlobalId, iStartMessageCounter);
-
- TPtrC globalIdFromIni;
- GetStringFromConfig(ConfigSection(),GlobalId, globalIdFromIni);
-
- HBufC* retrievedGlobalIdFromIni = globalIdFromIni.AllocLC();
-
-
- if(*retrievedGlobalIdFromIni != aStartData.GlobalComponentId())
- {
- INFO_PRINTF1(_L("Global Component Id mismatch !") );
- SetTestStepResult(EFail);
- }
- else
- {
- INFO_PRINTF1(_L("Received Correct Global Component Id !") );
- }
- CleanupStack::PopAndDestroy(retrievedGlobalIdFromIni);
-
- //Print received data ?
- TBool print;
- if(GetBoolFromConfig(ConfigSection(),KPrintDetails, print))
- {
- INFO_PRINTF2(_L("Global Component Id : %S"), &aStartData.GlobalComponentId());
- INFO_PRINTF2(_L("Component Name: %S"), &aStartData.ComponentName());
-
- for(TInt i=0; i<aStartData.ApplicationNames().Count(); ++i)
- {
- INFO_PRINTF3(_L("Application name %d : %S"), i, aStartData.ApplicationNames()[i]);
- }
- for(TInt i=0; i<aStartData.ApplicationIcons().Count(); ++i)
- {
- INFO_PRINTF3(_L("Application icons %d : %S"), i, aStartData.ApplicationIcons()[i]);
- }
- INFO_PRINTF2(_L("Component Size : %d"), aStartData.ComponentSize());
- INFO_PRINTF2(_L("Icon Path : %S"), &aStartData.IconPath());
- INFO_PRINTF2(_L("Component Icon : %S"), &aStartData.ComponentIcon());
- INFO_PRINTF2(_L("Software Type: %S"), &aStartData.SoftwareType());
- INFO_PRINTF2(_L("Operation Phase : %d"), (TInt)aStartData.OperationPhase());
-
- }
- }
-
-
-void CSifSubscribeTestStep::EndOperationHandler(const CSifOperationEndData& aEndData)
- {
- TBuf<20> endData;
- endData = KEndData;
- GenerateIndexedAttributeNameL(endData, ++iEndMessageCounter);
-
- TPtrC endDataFromIni;
- if(GetStringFromConfig(ConfigSection(),endData, endDataFromIni))
- {
- HBufC* retrievedEndDataFromIni = endDataFromIni.AllocLC();
-
- if(*retrievedEndDataFromIni != aEndData.GlobalComponentId())
- {
- SetTestStepResult(EFail);
- INFO_PRINTF1(_L("End Data Mismatch !") );
- }
- else
- {
- INFO_PRINTF1(_L("Correct end data received !") );
- }
- CleanupStack::PopAndDestroy(retrievedEndDataFromIni);
- }
- else
- {
- SetTestStepResult(EFail);
- INFO_PRINTF1(_L("End Data Mismatch !") );
- }
-
- //Print received data ?
- TBool print;
- if(GetBoolFromConfig(ConfigSection(),KPrintDetails, print))
- {
- INFO_PRINTF2(_L("Global Component Id : %S"), &aEndData.GlobalComponentId());
- INFO_PRINTF2(_L("Error Category : %d"), (TInt)aEndData.ErrorCategory());
- INFO_PRINTF2(_L("Error code : %d"), aEndData.ErrorCode());
- INFO_PRINTF2(_L("Error message : %S"), &aEndData.ErrorMessage());
- INFO_PRINTF2(_L("Error message details : %S"), &aEndData.ErrorMessageDetails());
- }
- }
-
-void CSifSubscribeTestStep::ProgressOperationHandler(const CSifOperationProgressData& aProgressData)
- {
- TBuf<20> progressData;
- progressData = KProgressData;
- GenerateIndexedAttributeNameL(progressData, ++iProgressMessageCounter);
-
- TPtrC progressDataFromIni;
- if(GetStringFromConfig(ConfigSection(),progressData, progressDataFromIni))
- {
- HBufC* retrievedprogressDataFromIni = progressDataFromIni.AllocLC();
-
- if(*retrievedprogressDataFromIni != aProgressData.GlobalComponentId())
- {
- SetTestStepResult(EFail);
- INFO_PRINTF1(_L("Progress Data Mismatch !") );
- }
- else
- {
- INFO_PRINTF1(_L("Correct progress data received !") );
- }
-
- CleanupStack::PopAndDestroy(retrievedprogressDataFromIni);
- }
- else
- {
- SetTestStepResult(EFail);
- INFO_PRINTF1(_L("Progress Data Mismatch !") );
- }
-
- //Print received data ?
- TBool print;
- if(GetBoolFromConfig(ConfigSection(),KPrintDetails, print))
- {
- INFO_PRINTF2(_L("Global Component Id : %S"), &aProgressData.GlobalComponentId());
- INFO_PRINTF2(_L("Phase : %d"), (TInt)aProgressData.Phase());
- INFO_PRINTF2(_L("Sub Phase : %d"), (TInt)aProgressData.SubPhase());
- INFO_PRINTF2(_L("Current Progress : %d"), aProgressData.CurrentProgress());
- INFO_PRINTF2(_L("Total Value : %d"), aProgressData.Total());
-
- }
- }
-
-void CSifSubscribeTestStep::GenerateIndexedAttributeNameL(TDes& aInitialAttributeName, TInt aIndex)
- {
- const TInt MAX_INT_STR_LEN = 8;
- TBuf<MAX_INT_STR_LEN> integerAppendStr;
- integerAppendStr.Format(_L("%d"), aIndex);
- aInitialAttributeName.Append(integerAppendStr);
- }
-
-CSifPublishTestStep::~CSifPublishTestStep()
-/**
-* Destructor
-*/
- {
- INFO_PRINTF1(_L("Cleanup in CSifPublishTestStep::~CSifPublishTestStep()"));
- delete iTimer;
- delete iPublisher;
- delete iSched;
- }
-
-CSifPublishTestStep::CSifPublishTestStep()
-/**
-* Constructor
-*/
- {
- SetTestStepName(KSifPublishTestStep);
- }
-
-void CSifPublishTestStep::ImplTestStepPreambleL()
-/**
-* @return - TVerdict code
-* Override of base class virtual
-*/
- {
- INFO_PRINTF1(_L("I am in CSifPublishTestStep::ImplTestStepPreambleL()."));
-
- TInt delay(0);
- //Get the delay value if present
- GetIntFromConfig(ConfigSection(),KDelay, delay);
- if(delay !=0)
- {
- User::After(delay * 1000000);
- }
-
- iSched=new(ELeave) CActiveScheduler;
- CActiveScheduler::Install(iSched);
- iPublisher = CPublishSifOperationInfo::NewL();
- }
-
-void CSifPublishTestStep::GenerateIndexedAttributeNameL(TDes& aInitialAttributeName, TInt aIndex)
- {
- const TInt MAX_INT_STR_LEN = 8;
- TBuf<MAX_INT_STR_LEN> integerAppendStr;
- integerAppendStr.Format(_L("%d"), aIndex);
- aInitialAttributeName.Append(integerAppendStr);
- }
-
-void CSifPublishTestStep::PublishDataL(HBufC* aConfigSection)
- {
- HBufC* configsection;
- if(aConfigSection == NULL)
- configsection = ConfigSection().AllocLC();
- else
- configsection = aConfigSection->AllocLC();
-
- TPtrC op;
- GetStringFromConfig(*configsection,KOperation, op);
- if(op.Compare(_L("start")) == 0)
- {
- TPtrC globalCompId, compName, compIcon, appName, appIcon, iconPath, softwareType;
- TInt appNameCount =0;
- TInt appIconCount =0;
- TInt compSize = 0;
- TInt phase = 0;
- GetStringFromConfig(*configsection,KGlobalCompId, globalCompId);
- GetStringFromConfig(*configsection,KComponentName, compName);
- GetStringFromConfig(*configsection,KComponentIcon, compIcon);
- GetIntFromConfig(*configsection, KAppNameCount, appNameCount);
- RPointerArray<HBufC> appNameArray;
- CleanupResetAndDestroyPushL(appNameArray);
- for (TUint i = 0; i < appNameCount; ++i)
- {
- TPtrC tAppName;
- TBuf<20> appName;
- appName = KAppName;
- GenerateIndexedAttributeNameL(appName, i);
- GetStringFromConfig(*configsection, appName, tAppName);
- HBufC* applicationName = tAppName.AllocLC();
- appNameArray.AppendL(applicationName);
- CleanupStack::Pop(applicationName);
- }
- GetIntFromConfig(*configsection, KAppIconCount, appIconCount);
- RPointerArray<HBufC> appIconArray;
- CleanupResetAndDestroyPushL(appIconArray);
- for (TUint i = 0; i < appIconCount; ++i)
- {
- TPtrC tAppIcon;
- TBuf<20> appIcon;
- appIcon = KAppIcon;
- GenerateIndexedAttributeNameL(appIcon, i);
- GetStringFromConfig(*configsection, appIcon, tAppIcon);
- HBufC* applicationIcon = tAppIcon.AllocLC();
- appIconArray.AppendL(applicationIcon);
- CleanupStack::Pop(applicationIcon);
- }
-
- GetIntFromConfig(*configsection, KComponentSize, compSize);
- GetStringFromConfig(*configsection, KIconPath, iconPath);
- GetStringFromConfig(*configsection, KSoftwareType, softwareType);
- GetIntFromConfig(*configsection, KPhase, phase);
-
- TSifOperationPhase enumPhase = static_cast<TSifOperationPhase>(phase);
- CSifOperationStartData* startdata = CSifOperationStartData::NewLC(globalCompId, compName, appNameArray, appIconArray, compSize, iconPath, compIcon, softwareType, enumPhase);
- iPublisher->PublishStartL(*startdata);
- CleanupStack::PopAndDestroy(3, &appNameArray);
- }
- else if(op.Compare(_L("progress")) == 0)
- {
- TInt phase=0, subPhase=0, curProgress=0, total=0;
- TPtrC globalCompIdProgress;
- GetStringFromConfig(*configsection,KGlobalCompId, globalCompIdProgress);
- GetIntFromConfig(*configsection, KPhase, phase);
- GetIntFromConfig(*configsection, KSubPhase, subPhase);
- GetIntFromConfig(*configsection, KCurrentProgress, curProgress);
- GetIntFromConfig(*configsection, KTotal, total);
-
- TSifOperationPhase enumPhase = static_cast<TSifOperationPhase>(phase);
- TSifOperationSubPhase enumSubPhase = static_cast<TSifOperationSubPhase>(subPhase);
- CSifOperationProgressData* progressdata = CSifOperationProgressData::NewLC(globalCompIdProgress, enumPhase, enumSubPhase, curProgress, total);
- iPublisher->PublishProgressL(*progressdata);
- CleanupStack::PopAndDestroy(progressdata);
- }
- else if(op.Compare(_L("end")) == 0)
- {
- TPtrC errMsg, errMsgDetails;
- TInt errCat, errCode;
- TPtrC globalCompIdEnd;
- GetStringFromConfig(*configsection,KGlobalCompId, globalCompIdEnd);
- GetStringFromConfig(*configsection, KErrMsg, errMsg);
- GetStringFromConfig(*configsection, KErrMsgDetails, errMsgDetails);
- GetIntFromConfig(*configsection, KErrCategory, errCat);
- GetIntFromConfig(*configsection, KErrCode, errCode);
-
- TErrorCategory enumErrCat = static_cast<TErrorCategory>(errCat);
- CSifOperationEndData* enddata = CSifOperationEndData::NewLC(globalCompIdEnd, enumErrCat, errCode, errMsg, errMsgDetails);
- iPublisher->PublishCompletionL(*enddata);
- CStopTimer* timer = CStopTimer::NewL(NULL, 5000000);
- CleanupStack::PushL(timer);
- CActiveScheduler::Start();
- CleanupStack::PopAndDestroy(2, enddata);
- }
- else if (op.Compare(_L("delay")) == 0)
- {
- TInt delay(0);
- GetIntFromConfig(*configsection, KPublisherDelay, delay);
- User::After(delay*1000000);
- }
-
-
- CleanupStack::PopAndDestroy(configsection);
- }
-
-void CSifPublishTestStep::ImplTestStepL()
-/**
-* @return - TVerdict code
-* Override of base class pure virtual
-* Our implementation only gets called if the base class doTestStepPreambleL() did
-* not leave. That being the case, the current test result value will be EPass.
-*/
- {
- RSoftwareInstall sif;
- User::LeaveIfError(sif.Connect());
- CleanupClosePushL(sif);
-
- TInt operationCount = 0;
- TPtrC configSectionName(ConfigSection());
- HBufC* cnfSecName = NULL;
-
- GetIntFromConfig(ConfigSection(), KOperationCount, operationCount);
- for (TUint i = 0; i < operationCount; ++i)
- {
- TBuf<20> configSection = _L("configsection");
- GenerateIndexedAttributeNameL(configSection, i);
- GetStringFromConfig(ConfigSection(),configSection, configSectionName);
- cnfSecName = configSectionName.AllocLC();
- PublishDataL(cnfSecName);
- CleanupStack::PopAndDestroy(cnfSecName);
- }
- CStopTimer* timer = CStopTimer::NewL(NULL, 5000000);
- CleanupStack::PushL(timer);
- CActiveScheduler::Start();
- CleanupStack::PopAndDestroy(2, &sif);
- }
-
-void CSifPublishTestStep::ImplTestStepPostambleL()
-/**
-* @return - TVerdict code
-* Override of base class virtual
-*/
- {
- delete iPublisher;
- iPublisher=0;
- delete iSched;
- iSched=0;
- }
-
-
-
-
-CStopTimer::CStopTimer(CSifOperationsNotifier* aNotifier) :
- CTimer(-1),
- iNotifier(aNotifier)
- {
- CActiveScheduler::Add(this);
- }
-
-CStopTimer::~CStopTimer()
- {
- Cancel();
- }
-
-void CStopTimer::ConstructL(TInt aSeconds)
- {
- CTimer::ConstructL();
- iSeconds = aSeconds;
- Start();
- }
-
-void CStopTimer::Start()
- {
- After(iSeconds);
- }
-CStopTimer* CStopTimer::NewL(CSifOperationsNotifier* aNotifier, TInt aSeconds)
- {
- CStopTimer* self = new(ELeave) CStopTimer(aNotifier);
- CleanupStack::PushL(self);
- self->ConstructL(aSeconds);
- CleanupStack::Pop(self);
- return self;
- }
-
-void CStopTimer::RunL()
- {
- if(iNotifier)
- {
- //To improve coverage, call cancel subscribe on a non existent key.
- iNotifier->CancelSubscribeL(123);
-
- //cancel all subscriptions.
- iNotifier->CancelSubscribeL();
- }
- CActiveScheduler::Stop();
- }
-
-
-TInt CStopTimer::RunError(TInt aError)
- {
- (void)aError;
- return KErrNone;
- }