--- a/installationservices/swcomponentregistry/test/tscr/source/subsessionsteps.cpp Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,505 +0,0 @@
-/*
-* Copyright (c) 2008-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:
-* Implements test steps for the subsessions interfaces in the SCR
-*
-*/
-
-
-#include "subsessionsteps.h"
-#include <scs/cleanuputils.h>
-#include "tscrdefs.h"
-
-using namespace Usif;
-
-TBool IsEqual(const CComponentEntry& aLhsEntry, const CComponentEntry& aRhsEntry)
- {
- return (aLhsEntry == aRhsEntry);
- }
-
-TBool operator ==(const Usif::TAppRegInfo& aLhsEntry, const Usif::TAppRegInfo& aRhsEntry)
- {
- return (aLhsEntry.Uid() == aRhsEntry.Uid() &&
- aLhsEntry.FullName() == aRhsEntry.FullName() &&
- aLhsEntry.Caption() == aRhsEntry.Caption() &&
- aLhsEntry.ShortCaption() == aRhsEntry.ShortCaption());
- }
-TBool operator !=(const TAppRegInfo& aLhsEntry, const TAppRegInfo& aRhsEntry)
- {
- return !operator ==(aLhsEntry, aRhsEntry);
- }
-
-TBool IsEqual(const TAppRegInfo& aLhsEntry, const TAppRegInfo& aRhsEntry)
- {
- return (aLhsEntry == aRhsEntry);
- }
-
-
-TBool IsEqual(const HBufC& aLhs, const HBufC& aRhs)
- {
- return const_cast<HBufC &>(aLhs).Des() == const_cast<HBufC &>(aRhs).Des();
- }
-
-template <class T> TBool VerifyMatchingL(const T* aObj, RPointerArray<T>& aExpectedArray)
- {
- TInt pos = aExpectedArray.Find(aObj, IsEqual);
- if (pos != KErrNotFound)
- {
- T* foundObj = aExpectedArray[pos];
- delete foundObj;
- aExpectedArray.Remove(pos);
- return ETrue;
- }
- return EFalse;
- }
-
-
-// -----------CScrGetComponentStep-----------------
-
-CScrComponentRegistrySubsessionStep::CScrComponentRegistrySubsessionStep(CScrTestServer& aParent) : CScrTestStep(aParent)
- {
- }
-
-void CScrComponentRegistrySubsessionStep::ImplTestStepPreambleL()
- {
- CScrTestStep::ImplTestStepPreambleL();
- }
-
-void CScrComponentRegistrySubsessionStep::GetComponentEntriesFromConfigL(RPointerArray<CComponentEntry>& aEntries)
- {
- TInt componentsCount(0);
- if (!GetIntFromConfig(ConfigSection(), KComponentsCountName, componentsCount))
- {
- CComponentEntry *componentEntry = GetComponentEntryFromConfigLC();
- aEntries.AppendL(componentEntry);
- CleanupStack::Pop(componentEntry);
- }
-
- for (TInt i = 0; i < componentsCount; ++i)
- {
- CComponentEntry *componentEntry = GetComponentEntryFromConfigLC(EFalse,i);
- aEntries.AppendL(componentEntry);
- CleanupStack::Pop(componentEntry);
- }
- }
-
-void CScrComponentRegistrySubsessionStep::VerifyNonReturnedEntriesL(const RPointerArray<CComponentEntry>& aExpectedEntries)
- {
- // Check if we need to verify the returned components
- // Performance tests don't need verification.
- TBool noVerification = EFalse;
- GetBoolFromConfig(ConfigSection(), _L("NoVerification"), noVerification);
- if(noVerification) return;
-
- if (aExpectedEntries.Count() > 0)
- {
- TComponentId componentId = aExpectedEntries[0]->ComponentId();
- const TDesC& componentName = aExpectedEntries[0]->Name();
- ERR_PRINTF3(_L("At least one expected entry was not returned by the API - id %d, name %S"), componentId, &componentName);
- SetTestStepResult(EFail);
- }
- }
-
-void CScrComponentRegistrySubsessionStep::TestSingleModeL(const RSoftwareComponentRegistryView& aSubSession, RPointerArray<CComponentEntry>& aExpectedEntries)
- {
- // Check if we need to verify the returned components
- // Performance tests don't need verification. Because the impact verification on performance results.
- // In addition, we cannot simply verify some test cases such as retrieving all components or removable components.
- // Because, the perforamce test databases are populated with random data, and in the future we cannot guarantee
- // the values will stay same if the databases are recreated.
-
- TBool noVerification = EFalse;
- GetBoolFromConfig(ConfigSection(), _L("NoVerification"), noVerification);
-
- // Read continuously entries from the sub-session
- while (1)
- {
- CComponentEntry* componentEntry = aSubSession.NextComponentL();
- if (componentEntry == NULL)
- break; // No more entries were found
- CleanupStack::PushL(componentEntry);
-
- if(noVerification)
- {
- CleanupStack::PopAndDestroy(componentEntry);
- continue;
- }
- // For each entry, check whether it was found in the expected array.
- // If found, delete it from the expected array. If not, fail the test step
- if (!VerifyMatchingL(componentEntry, aExpectedEntries))
- {
- ERR_PRINTF2(_L("The API returned an unexpected entry with id %d"), componentEntry->ComponentId());
- SetTestStepResult(EFail);
- CleanupStack::PopAndDestroy(componentEntry);
- return;
- }
-
- CleanupStack::PopAndDestroy(componentEntry);
- }
-
- // At the end, check whether there were expected entries which were not found
- VerifyNonReturnedEntriesL(aExpectedEntries);
- }
-
-void CScrComponentRegistrySubsessionStep::TestSetModeL(const RSoftwareComponentRegistryView& aSubSession, TInt aSetSize, RPointerArray<CComponentEntry>& aExpectedEntries)
- {
- // Check if we need to verify the returned components
- // Performance tests don't need verification. See TestSingleModeL for more information.
- TBool noVerification = EFalse;
- GetBoolFromConfig(ConfigSection(), _L("NoVerification"), noVerification);
-
- while (1)
- {
- RPointerArray<CComponentEntry> componentSet;
- CleanupResetAndDestroyPushL(componentSet);
-
- aSubSession.NextComponentSetL(aSetSize, componentSet);
- TInt returnedComponentsCount = componentSet.Count();
- if (returnedComponentsCount <= 0)
- {
- CleanupStack::PopAndDestroy(&componentSet);
- break;
- }
-
- if(noVerification)
- {
- CleanupStack::PopAndDestroy(&componentSet);
- continue;
- }
-
- for (TInt i = 0; i < returnedComponentsCount; ++i)
- {
- if (!VerifyMatchingL(componentSet[i], aExpectedEntries))
- {
- ERR_PRINTF2(_L("The API returned an unexpected entry with id %d"), componentSet[i]->ComponentId());
- SetTestStepResult(EFail);
- CleanupStack::PopAndDestroy(&componentSet);
- return;
- }
- }
-
- CleanupStack::PopAndDestroy(&componentSet);
- }
-
- VerifyNonReturnedEntriesL(aExpectedEntries);
- }
-
-void CScrComponentRegistrySubsessionStep::ImplTestStepL()
- {
- CComponentFilter* componentFilter = ReadComponentFilterFromConfigLC();
- INFO_PRINTF1(_L("Read component filter from configuration"));
-
- INFO_PRINTF1(_L("Opened subsession to SCR"));
-
- //Get testing mode from configuration (sets or single iteration)
- //Delegate the actual invocation and comparison according to the testing mode
- TInt setSize = GetSetSizeFromConfigL();
- INFO_PRINTF2(_L("Test set size %d"), setSize);
-
- // Read expected results from config
- RPointerArray<CComponentEntry> expectedComponentEntries;
- CleanupResetAndDestroyPushL(expectedComponentEntries);
- GetComponentEntriesFromConfigL(expectedComponentEntries);
- StartTimer();
- // Open the subsession
- RSoftwareComponentRegistryView subSession;
- CleanupClosePushL(subSession);
- subSession.OpenViewL(iScrSession, componentFilter);
-
- if (setSize == 1)
- TestSingleModeL(subSession, expectedComponentEntries);
- else
- TestSetModeL(subSession, setSize, expectedComponentEntries);
-
- CleanupStack::PopAndDestroy(3, componentFilter); // expectedComponentEntries, subSession, componentFilter
- }
-
-void CScrComponentRegistrySubsessionStep::ImplTestStepPostambleL()
- {
- CScrTestStep::ImplTestStepPostambleL();
- }
-
-// -----------CScrFileListSubsessionStep-----------------
-
-CScrFileListSubsessionStep::CScrFileListSubsessionStep(CScrTestServer& aParent) : CScrTestStep(aParent)
- {
- }
-
-void CScrFileListSubsessionStep::ImplTestStepPreambleL()
- {
- CScrTestStep::ImplTestStepPreambleL();
- }
-
-void CScrFileListSubsessionStep::VerifyNonReturnedFilesL(const RPointerArray<HBufC>& aExpectedFiles)
- {
- if (aExpectedFiles.Count() > 0)
- {
- HBufC* fileName = aExpectedFiles[0];
- ERR_PRINTF2(_L("At least one expected files was not returned by the API - name %S"), fileName);
- SetTestStepResult(EFail);
- }
- }
-
-void CScrFileListSubsessionStep::ReportUnexpectedFileL(const TDesC& aUnexpectedFileName)
- {
- ERR_PRINTF2(_L("The API returned an unexpected file entry with name %S"), &aUnexpectedFileName);
- SetTestStepResult(EFail);
- }
-
-void CScrFileListSubsessionStep::TestSingleModeL(const RSoftwareComponentRegistryFilesList& aSubSession,
- RPointerArray<HBufC> &aExpectedFiles)
- {
- FOREVER
- {
- HBufC *nextFile = aSubSession.NextFileL();
- if (!nextFile)
- break;
- CleanupStack::PushL(nextFile);
-
- if (!VerifyMatchingL(nextFile, aExpectedFiles))
- {
- ReportUnexpectedFileL(*nextFile);
- CleanupStack::PopAndDestroy(nextFile);
- return;
- }
-
- CleanupStack::PopAndDestroy(nextFile);
- }
-
- VerifyNonReturnedFilesL(aExpectedFiles);
- }
-
-void CScrFileListSubsessionStep::TestSetModeL(const RSoftwareComponentRegistryFilesList& aSubSession, TInt aSetSize,
- RPointerArray<HBufC>& aExpectedFiles)
- {
- FOREVER
- {
- RPointerArray<HBufC> foundFiles;
- CleanupResetAndDestroyPushL(foundFiles);
-
- aSubSession.NextFileSetL(aSetSize, foundFiles);
- TInt returnedFilesCount = foundFiles.Count();
- if (returnedFilesCount <= 0)
- {
- CleanupStack::PopAndDestroy(&foundFiles);
- break;
- }
- for (TInt i = 0; i < returnedFilesCount; ++i)
- {
- if (!VerifyMatchingL(foundFiles[i], aExpectedFiles))
- {
- ReportUnexpectedFileL(*foundFiles[i]);
- CleanupStack::PopAndDestroy(&foundFiles);
- return;
- }
- }
-
- CleanupStack::PopAndDestroy(&foundFiles);
- }
- VerifyNonReturnedFilesL(aExpectedFiles);
- }
-
-
-void CScrFileListSubsessionStep::ImplTestStepL()
- {
- TInt componentId = GetComponentIdL();
- RSoftwareComponentRegistryFilesList subSession;
- CleanupClosePushL(subSession);
-
- subSession.OpenListL(iScrSession, componentId);
-
- RPointerArray<HBufC> expectedFiles;
- CleanupResetAndDestroyPushL(expectedFiles);
-
- GetFileNameListFromConfigL(expectedFiles);
- TInt setSize = GetSetSizeFromConfigL();
-
- if (setSize > 1)
- TestSingleModeL(subSession, expectedFiles);
- else
- TestSetModeL(subSession, setSize, expectedFiles);
-
- CleanupStack::PopAndDestroy(2, &subSession); //expectedEntries
- }
-
-void CScrFileListSubsessionStep::ImplTestStepPostambleL()
- {
- CScrTestStep::ImplTestStepPostambleL();
- }
-
-// -----------CAppInfoView-----------------
-
-CAppInfoView::CAppInfoView(CScrTestServer& aParent) : CScrTestStep(aParent)
- {
- }
-
-void CAppInfoView::ImplTestStepPreambleL()
- {
- CScrTestStep::ImplTestStepPreambleL();
- }
-
-void CAppInfoView::GetAppEntryFromConfigL(RPointerArray<Usif::TAppRegInfo>& aEntries)
- {
- TInt appEntriesCount(0);
- TAppRegInfo *appRegInfo=NULL;
- if (!GetIntFromConfig(ConfigSection(), KAppEntriesCountName, appEntriesCount))
- {
- appRegInfo = GetAppInfoFromConfigL(ETrue);
- aEntries.AppendL(appRegInfo);
- }
-
- for (TInt i = 0; i < appEntriesCount; ++i)
- {
- appRegInfo = GetAppInfoFromConfigL(EFalse,i);
- aEntries.AppendL(appRegInfo);
- }
- }
-
-void CAppInfoView::VerifyNonReturnedEntriesL(const RPointerArray<Usif::TAppRegInfo>& aExpectedEntries)
- {
- // Check if we need to verify the returned components
- // Performance tests don't need verification.
- TBool noVerification = EFalse;
- GetBoolFromConfig(ConfigSection(), _L("NoVerification"), noVerification);
- if(noVerification) return;
-
- if (aExpectedEntries.Count() > 0)
- {
- TUid appUid = aExpectedEntries[0]->Uid();
- const TDesC& appName = aExpectedEntries[0]->FullName();
- ERR_PRINTF3(_L("At least one expected entry was not returned by the API - id %d, name %S"), appUid, &appName);
- SetTestStepResult(EFail);
- }
- }
-
-void CAppInfoView::TestSessionL(TInt aNoOfEntries, const RApplicationInfoView& aSubSession, RPointerArray<Usif::TAppRegInfo>& aExpectedEntries)
- {
- // Check if we need to verify the returned components
- // Performance tests don't need verification.
- TBool isVerification = EFalse;
- TInt noOfEntriesMatched = 0;
- TInt totalExpectedEntriesCount = aExpectedEntries.Count();
- GetBoolFromConfig(ConfigSection(), _L("IsVerification"), isVerification);
- while (1)
- {
- RPointerArray<Usif::TAppRegInfo> appRegInfoSet;
- aSubSession.GetNextAppInfoL(aNoOfEntries, appRegInfoSet);
- TInt returnedAppRegInfoCount = appRegInfoSet.Count();
- if (returnedAppRegInfoCount <= 0)
- {
- INFO_PRINTF2(_L("May be negative case... no entries found ...Entries count read is %d "),returnedAppRegInfoCount);
- appRegInfoSet.Close();
- break;
- }
-
- if(!isVerification)
- {
- //INFO_PRINTF2(_L("Read Appuid is %S"),appRegInfoSet[0]->iFullName );
- INFO_PRINTF3(_L("No of entries read is %d and first appuid is %d "),returnedAppRegInfoCount, appRegInfoSet[0]->Uid());
-
- TAppRegInfo* tp=NULL;
- for (TInt i = 0; i<returnedAppRegInfoCount; i++ )
- {
- tp=appRegInfoSet[i];
- delete tp;
- }
- appRegInfoSet.Close();
- continue;
- }
-
- for (TInt i = 0; i < returnedAppRegInfoCount; ++i)
- {
- if (VerifyMatchingL(appRegInfoSet[i], aExpectedEntries))
- {
- ++noOfEntriesMatched;
- }
- }
- TAppRegInfo* tp=NULL;
- for(TInt i = 0; i<returnedAppRegInfoCount; ++i)
- {
- tp=appRegInfoSet[i];
- delete tp;
- }
- appRegInfoSet.Close();
- if(noOfEntriesMatched == totalExpectedEntriesCount)
- break;
- }
-
- VerifyNonReturnedEntriesL(aExpectedEntries);
-
- }
-
-void CAppInfoView::ImplTestStepL()
- {
- CAppInfoFilter* appinfoFilter=NULL ;
-
- INFO_PRINTF1(_L("Read appinfo filter from configuration"));
- TRAPD(err, ReadAppInfoFilterFromConfigL(&appinfoFilter));
- if (KErrNotFound==err)
- {
- delete appinfoFilter;
- appinfoFilter=NULL;
- }
- RPointerArray<TAppRegInfo> expectedAppRegEntries;
- CleanupResetAndDestroyPushL(expectedAppRegEntries);
- TInt noOfEntries(1);
- GetIntFromConfig(ConfigSection(), _L("NoOfEntries"), noOfEntries);
-
- TBool isVerification = EFalse;
- GetBoolFromConfig(ConfigSection(), _L("IsVerification"), isVerification);
- if(isVerification)
- {
- GetAppEntryFromConfigL(expectedAppRegEntries);
- INFO_PRINTF1(_L("Read expected entries for verification "));
- }
-
- INFO_PRINTF1(_L("Opened subsession to SCR"));
- TBool callGetNextAppWithLocale=EFalse;
- TInt appLocale;
- if (GetIntFromConfig(ConfigSection(), _L("LocaleValue"), appLocale))
- callGetNextAppWithLocale=ETrue;
- RApplicationInfoView subSession;
- CleanupClosePushL(subSession);
-
- if(callGetNextAppWithLocale)
- {
- subSession.OpenViewL(iScrSession,appinfoFilter, (TLanguage)appLocale);
- }
- else
- {
- subSession.OpenViewL(iScrSession,appinfoFilter);
- }
-
- if(appinfoFilter)
- delete appinfoFilter;
-
- TRAPD(err1,TestSessionL(noOfEntries, subSession, expectedAppRegEntries));
-
- TInt count = expectedAppRegEntries.Count();
- TAppRegInfo* tp=NULL;
- for (TInt i = 0; i<count; i++ )
- {
- tp=expectedAppRegEntries[i];
- delete tp;
- }
- expectedAppRegEntries.Close();
- CleanupStack::PopAndDestroy(2, &expectedAppRegEntries); //expectedAppRegEntries, subSession
- if (KErrNone!=err1)
- User::Leave(err1);
- }
-
-void CAppInfoView::ImplTestStepPostambleL()
- {
- CScrTestStep::ImplTestStepPostambleL();
- }