installationservices/swcomponentregistry/test/tscr/source/transactionmanagementsteps.cpp
branchRCL_3
changeset 26 8b7f4e561641
parent 25 7333d7932ef7
child 27 e8965914fac7
--- a/installationservices/swcomponentregistry/test/tscr/source/transactionmanagementsteps.cpp	Tue Aug 31 15:21:33 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,362 +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 the test steps for transaction management APIs in the SCR
-*
-*/
-
-
-#include "transactionmanagementsteps.h"
-
-using namespace Usif;
-
-
-// -----------CScrApplyTransactionStep-----------------
-
-CScrApplyTransactionStep::CScrApplyTransactionStep(CScrTestServer& aParent)	: CScrTestStep(aParent)
-	{
-	}
-
-void CScrApplyTransactionStep::ImplTestStepPreambleL()
-	{
-	// empty
-	}
-
-
-void CScrApplyTransactionStep::ImplTestStepL()
-	{
-	User::LeaveIfError(iScrSession.Connect());
-	iScrSession.CreateTransactionL();
-	
-	// Add a new component into SCR database
-	TComponentId componentId= AddNonLocalisableComponentL(iScrSession);
-	AppendSharedComponentIdL(componentId);
-	
-	// Register a file to the component
-	TPtrC fileName;
-	GetFileNameFromConfigL(fileName);
-	iScrSession.RegisterComponentFileL(componentId, fileName);
-	
-	// Get a property from config file and set it.
-	CPropertyEntry *property = GetPropertyFromConfigLC(ETrue);
-	if(property->PropertyType() != CPropertyEntry::EIntProperty)
-		{
-		ERR_PRINTF1(_L("The property is not an integer property which is expected!"));
-		User::Leave(KErrArgument);
-		}
-	CIntPropertyEntry *propertyInt = dynamic_cast<CIntPropertyEntry*>(property);
-	iScrSession.SetComponentPropertyL(componentId, propertyInt->PropertyName(), propertyInt->IntValue());
-	CleanupStack::PopAndDestroy(propertyInt);
-	
-	// Commit the transaction if it is marked in the configuration
-	TBool isCommitTransaction(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("CommitTransaction"), isCommitTransaction);
-	if(isCommitTransaction)
-		{
-		iScrSession.CommitTransactionL();
-		}
-	
-	// Cancel thetransaction if it is marked in the configuration
-	TBool isCancelTransaction(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("CancelTransaction"), isCancelTransaction);
-	if(isCancelTransaction)
-		{
-		iScrSession.RollbackTransactionL();
-		}
-	
-	// Close the session
-	iScrSession.Close();
-	}
-
-void CScrApplyTransactionStep::ImplTestStepPostambleL()
-	{
-	// empty
-	}
-
-
-// -----------CScrCreateTransactionStep-----------------
-
-void OpenSessionLC(RSoftwareComponentRegistry& aSession)
-	{
-	User::LeaveIfError(aSession.Connect());
-	CleanupClosePushL(aSession);
-	}
-
-void CreateTransactionL(RSoftwareComponentRegistry& aSession)
-	{
-	aSession.CreateTransactionL();
-	}
-	
-void OpenSubsessionL(RSoftwareComponentRegistry aSession, RSoftwareComponentRegistryView& aSubsession)
-	{
-	CComponentFilter *filter = CComponentFilter::NewL(); // NewL is used for the sake of coverage
-	CleanupStack::PushL(filter);
-	aSubsession.OpenViewL(aSession, filter);
-	CleanupStack::PopAndDestroy(filter);
-	}	
-
-void OpenSubsessionLC(RSoftwareComponentRegistry aSession, RSoftwareComponentRegistryView& aSubsession)
-	{
-	OpenSubsessionL(aSession, aSubsession);
-	CleanupClosePushL(aSubsession);
-	}
-
-CScrCreateTransactionStep::CScrCreateTransactionStep(CScrTestServer& aParent)	: CScrTestStep(aParent)
-	{
-	}
-
-void CScrCreateTransactionStep::ImplTestStepPreambleL()
-	{
-	// empty
-	}
-
-
-void CScrCreateTransactionStep::ImplTestStepL()
-	{
-	RSoftwareComponentRegistry session1;
-	RSoftwareComponentRegistry session2;
-	RSoftwareComponentRegistryView subsession;
-	RSoftwareComponentRegistryView subsession2;
-	
-	TBool isBeginTransactionBeforeSubsession(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("BeginTransactionBeforeSubsession"), isBeginTransactionBeforeSubsession);
-	if(isBeginTransactionBeforeSubsession)
-		{
-		OpenSessionLC(session1);
-		CreateTransactionL(session1);
-		OpenSessionLC(session2);
-		OpenSubsessionLC(session2, subsession);
-		CleanupStack::PopAndDestroy(3, &session1);
-		}
-	
-	TBool isOpenSubsessionInTheSameSession(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("OpenSubsessionInTheSameSession"), isOpenSubsessionInTheSameSession);
-	if(isOpenSubsessionInTheSameSession)
-		{
-		OpenSessionLC(session1);
-		CreateTransactionL(session1);
-		OpenSubsessionLC(session1, subsession);
-		CleanupStack::PopAndDestroy(2, &session1);
-		
-		// Now do the same,  but in reverse order
-		OpenSessionLC(session1);
-		OpenSubsessionLC(session1, subsession);		
-		CreateTransactionL(session1);
-		CleanupStack::PopAndDestroy(2, &session1);
-		}
-		
-	TBool isBeginTransactionAfterSubsession(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("BeginTransactionAfterSubsession"), isBeginTransactionAfterSubsession);
-	if(isBeginTransactionAfterSubsession)
-		{		
-		OpenSessionLC(session1);
-		OpenSessionLC(session2);
-		OpenSubsessionLC(session1, subsession);
-		CreateTransactionL(session2);
-		CleanupStack::PopAndDestroy(3, &session1);
-		}
-	
-	TBool isBeginTransactionInTheSameSession(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("BeginTransactionInTheSameSession"), isBeginTransactionInTheSameSession);
-	if(isBeginTransactionAfterSubsession)
-		{		
-		OpenSessionLC(session1);
-		OpenSubsessionLC(session1, subsession);
-		CreateTransactionL(session1);
-		CleanupStack::PopAndDestroy(2, &session1);
-		}
-		
-	TBool isBeginAfterAnotherBegin(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("BeginTransactionAfterAnotherBegin"), isBeginAfterAnotherBegin);
-	if(isBeginAfterAnotherBegin)
-		{
-		OpenSessionLC(session1);
-		CreateTransactionL(session1);
-		OpenSessionLC(session2);
-		CreateTransactionL(session2);
-		CleanupStack::PopAndDestroy(2, &session1);
-		}
-	
-	TBool isMultipleSubsessions(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("MultipleSubsessions"), isMultipleSubsessions);
-	if(isMultipleSubsessions)
-		{
-		OpenSessionLC(session1);
-		OpenSubsessionLC(session1, subsession);
-		OpenSessionLC(session2);
-		OpenSubsessionLC(session2, subsession2);
-		CleanupStack::PopAndDestroy(4, &session1);
-		}
-	
-	TBool isWriteAfterBegin(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("WriteAfterBeginTransaction"), isWriteAfterBegin);
-	if(isWriteAfterBegin)
-		{
-		OpenSessionLC(session1);
-		CreateTransactionL(session1);
-		OpenSessionLC(session2);
-		session2.AddComponentL(_L("test"),_L("vendor"),_L("plain"));	
-		CleanupStack::PopAndDestroy(2, &session1);
-		}
-	
-	TBool isReadAfterBegin(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("ReadAfterBeginTransaction"), isReadAfterBegin);
-	if(isReadAfterBegin)
-		{
-		OpenSessionLC(session1);
-		CreateTransactionL(session1);
-		OpenSessionLC(session2);
-		CComponentEntry *entry = CComponentEntry::NewLC();
-		session2.GetComponentL(1, *entry);	
-		CleanupStack::PopAndDestroy(3, &session1);
-		}
-		
-	TBool mutatingOperationWithSubsession(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("MutatingOperationWithSubsession"), mutatingOperationWithSubsession);
-	if(mutatingOperationWithSubsession)
-		{
-		OpenSessionLC(session1);
-		OpenSubsessionLC(session1, subsession);
-		OpenSessionLC(session2);
-		session2.AddComponentL(_L("test"),_L("vendor"),_L("plain"));
-		CleanupStack::PopAndDestroy(3, &session1); // session2, subsession
-		}	
-		
-	TBool closeSessionWithoutClosingSubsession(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("CloseSessionWithoutClosingSubsession"), closeSessionWithoutClosingSubsession);
-  	if(closeSessionWithoutClosingSubsession)
-   		{
-   		OpenSessionLC(session1);
-  		CreateTransactionL(session1);
-  		OpenSubsessionL(session1, subsession);
-  		OpenSubsessionL(session1, subsession2);
-  		CComponentEntry *entry = subsession.NextComponentL();
-  		CleanupStack::PushL(entry);
-  		CComponentEntry *entry2 = subsession2.NextComponentL();
-  		CleanupStack::PushL(entry2);		
-  		CleanupStack::PopAndDestroy(3, &session1); // entry, entry2
-		}
-	
-	
-	TBool isMultipleActiveSubsessions (EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("MultipleActiveSubsessions"), isMultipleActiveSubsessions);
- 	if(isMultipleActiveSubsessions)
- 	    {
-		OpenSessionLC(session1);
- 	 	OpenSubsessionLC(session1, subsession);
- 	 	TInt foundRecords (0);
- 	 	CComponentEntry *entry = subsession.NextComponentL();
- 	 	if(entry)
-			{
-			++foundRecords;
- 	 	 	delete entry;
- 	 	 	entry = NULL;
- 	 	 	}
-
-		OpenSessionLC(session2);
- 	 	CComponentFilter *filter = CComponentFilter::NewL(); // NewL is used for the sake of coverage
- 	 	CleanupStack::PushL(filter);
- 	 	filter->SetNameL(_L("nonexistingcomponentnamefortransactionmanagementtest"));
- 	 	filter->SetVendorL(_L("nonexistingvendornamefortransactionmanagementtest"));
- 	 	subsession2.OpenViewL(session2, filter);
- 	 	CleanupStack::PopAndDestroy(filter);
- 	 	CleanupClosePushL(subsession2);
- 	 	
- 	 	CComponentEntry *entry2 = subsession2.NextComponentL();
- 	 	if(entry2)
-			{
- 	 	 	delete entry2;
- 	 	 	entry2 = NULL;
- 	 	 	entry2 = subsession2.NextComponentL();
- 	 	 	ERR_PRINTF1(_L("Subsession2 has unexpectedly retrieved a component!"));
- 	 	 	SetTestStepResult(EFail);
- 	 	 	}
-		CleanupStack::PopAndDestroy(2, &session2); // session2, subsession2
-
- 	 	entry = subsession.NextComponentL();
- 	 	while(entry)
-			{
- 	 	 	++foundRecords;
- 	 	 	delete entry;
- 	 	 	entry = NULL;
- 	 	 	entry = subsession.NextComponentL();
- 	 	 	}
-		if(foundRecords < 2)
-			{
- 	 	 	ERR_PRINTF1(_L("Subsession1 has unexpectedly reached the end of the view!"));
- 	 	 	SetTestStepResult(EFail);
- 	 	 	}
-		CleanupStack::PopAndDestroy(2, &session1);
- 	 	}	
-	}
-
-void CScrCreateTransactionStep::ImplTestStepPostambleL()
-	{
-	// empty
-	}
-
-// -----------CScrManageAnotherTransactionStep-----------------
-
-CScrManageAnotherTransactionStep::CScrManageAnotherTransactionStep(CScrTestServer& aParent)	: CScrTestStep(aParent)
-	{
-	}
-
-void CScrManageAnotherTransactionStep::ImplTestStepPreambleL()
-	{
-	// empty
-	}
-
-
-void CScrManageAnotherTransactionStep::ImplTestStepL()
-	{
-	User::LeaveIfError(iScrSession.Connect());
-	iScrSession.CreateTransactionL();
-	
-	RSoftwareComponentRegistry anotherSession;
-	User::LeaveIfError(anotherSession.Connect());
-	CleanupClosePushL(anotherSession);
-	
-	// Commit the transaction if it is marked in the configuration
-	TBool isCommitTransaction(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("CommitTransaction"), isCommitTransaction);
-	if(isCommitTransaction)
-		anotherSession.CommitTransactionL();
-	
-	TBool isCancelTransaction(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("CancelTransaction"), isCancelTransaction);
-	if(isCancelTransaction)
-		anotherSession.RollbackTransactionL();
-	
-	TBool isInvokeMutatingFunction(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("InvokeMutatingFunction"), isInvokeMutatingFunction);
-	if(isInvokeMutatingFunction)
-		anotherSession.AddComponentL(_L("test"), _L("vendor"),_L("plain"));
-	
-	TBool isInvokeNonMutatingFunction(EFalse);
-	GetBoolFromConfig(ConfigSection(), _L("InvokeNonMutatingFunction"), isInvokeNonMutatingFunction);
-	if(isInvokeNonMutatingFunction)
-		{
-		RArray<TComponentId> componentIdList;
-		anotherSession.GetComponentIdsL(componentIdList);
-		componentIdList.Close();
-		}
-	
-	CleanupStack::PopAndDestroy(&anotherSession);
-	iScrSession.Close();
-	}
-
-void CScrManageAnotherTransactionStep::ImplTestStepPostambleL()
-	{
-	// empty
-	}