installationservices/swcomponentregistry/test/tscr/source/subsessionsteps.cpp
branchRCL_3
changeset 26 8b7f4e561641
parent 25 7333d7932ef7
child 27 e8965914fac7
--- 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();
-	}