backupandrestore/backuptest/burtestserver/TestSteps/src/t_teststeprestoreasync.cpp
changeset 0 d0791faffa3f
child 19 0aa8cc770c8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/backupandrestore/backuptest/burtestserver/TestSteps/src/t_teststeprestoreasync.cpp	Tue Feb 02 01:11:40 2010 +0200
@@ -0,0 +1,388 @@
+// Copyright (c) 2004-2009 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:
+// T_TestStepRestore.cpp
+// 
+//
+
+/**
+ @file
+ @released
+*/
+#include "t_teststeprestoreasync.h"
+
+namespace bur_ts
+	{
+	
+	CBURTestStepRestoreAsync* CBURTestStepRestoreAsync::NewL(CBURTestServer& aTestServer)
+		/**
+		Symbian OS Constructor
+		
+		@internalComponent
+		@released
+		
+		@param aParent - The parent CBURTestServer of this child test step.
+		@return Pointer to a newly created CBURTestStepRestoreAsyncAsync object.
+		*/
+		{
+		CBURTestStepRestoreAsync* self = new (ELeave) CBURTestStepRestoreAsync(aTestServer);
+		CleanupStack::PushL(self);
+		self->ConstructL();
+		CleanupStack::Pop();
+		return self;
+		}
+	
+	CBURTestStepRestoreAsync::CBURTestStepRestoreAsync(CBURTestServer& aTestServer)
+		/**
+		C++ Constructor
+		
+		@internalComponent
+		@released
+		
+		@param aParent - The parent CBURTestServer of this child test step.
+		*/
+		:CBURTestStepBase(aTestServer)
+		{}
+	
+	void CBURTestStepRestoreAsync::ConstructL()
+		/**
+		Symbian OS 2nd-phase Constructor
+		
+		@internalComponent
+		@released
+		*/
+		{
+		TInt error;
+		
+		// Initialise the drive list to empty:
+		iDriveList.FillZ();
+		
+		iMode = ERestoreMode;
+		
+		User::LeaveIfError(iFs.Connect());
+		
+		// Install an active scheduler for this test step
+		iActiveScheduler = new(ELeave) CActiveScheduler;
+		CActiveScheduler::Install(iActiveScheduler);
+		
+		TRAP(error, iBackupClient = CSBEClient::NewL());
+		if (error != KErrNone)
+			{
+			_LIT(KClientConnection, "SBEClientConn");
+			User::Panic(KClientConnection,error);
+			}
+			
+		_LIT(KBURTRestore, "BURTestServerRestore");
+		User::RenameThread(KBURTRestore);
+		//User::SetCritical(User::ESystemCritical);
+		
+		SetTestStepName(KBURTestRestoreAsync);
+		}
+	
+	CBURTestStepRestoreAsync::~CBURTestStepRestoreAsync()
+		/**
+		C++ Destructor
+		
+		@internalComponent
+		@released
+		*/
+		{
+		}
+
+	TVerdict CBURTestStepRestoreAsync::doTestStepPreambleL()
+		/**
+		Override of base class virtual function
+		
+		@internalComponent
+		@released
+		@return TVerdict code
+		*/
+		{
+		SetTestStepResult(EPass);
+		return TestStepResult();
+		}
+
+	TVerdict CBURTestStepRestoreAsync::doTestStepL()
+		/**
+		Override of base class pure virtual
+		
+		@internalComponent
+		@released
+		@return TVerdict code
+		*/
+		{
+		_LIT(KLog1, "Processing user options...");
+		Log(LOG_LEVEL2, KLog1);
+		ProcessUserOptionsL();
+		
+		TBURPartType type = EBURRestoreFull;
+			
+		iStorageManager->ReadDataOwnersFromDiskL(iDataOwners);
+		
+		CheckValidRegistrationL();	
+			
+		if (iIsPartial)
+			{
+			_LIT(KLog2, "Preparing for PARTIAL restore...");
+			Log(LOG_LEVEL2, KLog2);
+			PrepareForPartialBURL();
+			SetSIDListForPartialL();
+			type = EBURRestorePartial;
+			}
+		else
+			{
+			_LIT(KLog3, "Preparing for FULL restore...");
+			Log(LOG_LEVEL2, KLog3);
+			}
+			
+		// Set restore mode:
+		_LIT(KLog4, "Setting restore mode...");
+		Log(LOG_LEVEL2, KLog4);
+		TRAPD(burmode, SetBURModeAsyncL(type, iBackupIncType));
+		if (burmode != KErrNone)
+			{
+			_LIT(KLog5, "Error setting restore Mode ");
+			LogWithNum(LOG_LEVEL3, KLog5, burmode);
+			}
+		
+		//SupplyRegistrationDataL();
+		
+		// system data
+		SupplySystemSnapshotDataL();
+		RestoreSystemBaseDataL();
+		
+		RestoreJavaMidletL();
+			
+		// confirm system files restored 
+		CBURActiveObject* active = CBURActiveObject::NewL();
+		CleanupStack::PushL(active);
+		iBackupClient->AllSystemFilesRestoredL(active->iStatus);
+		active->StartL();
+		User::LeaveIfError(active->Error());
+		CleanupStack::PopAndDestroy(active);
+		
+		/** Restore data according to user preferences */
+		if (iBackupIncType == EBackupIncrement)
+			{
+			IncrementalRestoreL();
+			}
+		else
+			{
+			BaseRestoreL();
+			}
+			
+		Log(LOG_LEVEL2, _L("Setting backup mode to Normal ..."));
+		TRAPD(err2,SetBURModeAsyncL(EBURNormal, ENoBackup));
+		if (err2 != KErrNone)
+			{
+			_LIT(KBURError, "Error setting Backup mode ");
+			LogWithNum(LOG_LEVEL3, KBURError, err2);
+			}
+		
+		return TestStepResult();
+		}
+	
+	void CBURTestStepRestoreAsync::BaseRestoreL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		RestoreJavaMidletDataL();
+		
+		// passive
+		SupplyPassiveSnapshotDataL();
+		RestorePassiveBaseDataL();
+		
+		//active
+		SupplyActiveSnapshotDataL();
+		RestoreActiveBaseDataL();
+		}
+	
+	void CBURTestStepRestoreAsync::IncrementalRestoreL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		RestoreJavaMidletDataL();
+		
+		// passive
+		SupplyPassiveSnapshotDataL();
+		RestorePassiveBaseDataL();
+		RestorePassiveIncDataL();
+		
+		
+		//active
+		SupplyActiveSnapshotDataL();
+		RestoreActiveBaseDataL();
+		RestoreActiveIncDataL();
+		}
+		
+	
+	void CBURTestStepRestoreAsync::SupplyRegistrationDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KRes, "Supplying registration data...");
+		Log(LOG_LEVEL2, KRes);
+		DoSupplyL(ERegistrationData);
+		}
+	
+	void CBURTestStepRestoreAsync::SupplyPassiveSnapshotDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KSupp, "Supplying passive snapshot data...");
+		Log(LOG_LEVEL2, KSupp);
+		DoSupplyL(EPassiveSnapshotData);	
+		}
+	
+	void CBURTestStepRestoreAsync::RestorePassiveBaseDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KResBase, "Restoring passive base data...");
+		Log(LOG_LEVEL2, KResBase);
+		DoSupplyL(EPassiveBaseData);
+		}
+	
+	void CBURTestStepRestoreAsync::RestorePassiveIncDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KPassInc, "Restoring passive incremental data...");
+		Log(LOG_LEVEL2, KPassInc);
+		DoSupplyL(EPassiveIncrementalData);
+		}
+	
+	void CBURTestStepRestoreAsync::SupplyActiveSnapshotDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KSuppSnap, "Supplying active snapshot data...");
+		Log(LOG_LEVEL2, KSuppSnap);
+		DoSupplyL(EActiveSnapshotData);
+		}
+		
+	void CBURTestStepRestoreAsync::RestoreActiveBaseDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KActBase, "Restoring active base data...");
+		Log(LOG_LEVEL2, KActBase);
+		DoSupplyL(EActiveBaseData);
+		}
+		
+	void CBURTestStepRestoreAsync::RestoreActiveIncDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		_LIT(KActIncD, "Restoring active incremental data...");
+		Log(LOG_LEVEL2, KActIncD);
+		DoSupplyL(EActiveIncrementalData);
+		}
+		
+	void CBURTestStepRestoreAsync::RestoreSystemBaseDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		GeneratePIDTransferTypesL(iTransferTypes, ESystemData);
+		// go through each of them and check if we have snapshot to supply
+		if (iTransferTypes.Count())
+			{
+			_LIT(KSysBase, "Restoring system base data...");
+			Log(LOG_LEVEL2, KSysBase);
+			SupplyDataL(iTransferTypes);
+			}
+		}
+		
+	void CBURTestStepRestoreAsync::SupplySystemSnapshotDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		GeneratePIDTransferTypesL(iTransferTypes, ESystemSnapshotData);
+		// go through each of them and check if we have snapshot to supply
+		if (iTransferTypes.Count())
+			{
+			_LIT(KSysSnap, "Supply System Snapshot Data ...");
+			Log(LOG_LEVEL2, KSysSnap);
+			SupplyDataL(iTransferTypes);
+			}
+		}
+		
+	void CBURTestStepRestoreAsync::RestoreJavaMidletL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		GenerateJavaTransferTypesL(iTransferTypes, EJavaMIDlet);
+		if (iTransferTypes.Count())
+			{
+			_LIT(KJMidlet, "Restoring Java Midlets ...");
+			Log(LOG_LEVEL2, KJMidlet);
+			SupplyDataL(iTransferTypes);
+			}
+		}
+	
+	void CBURTestStepRestoreAsync::RestoreJavaMidletDataL()
+		/**
+		@internalComponent
+		@released
+		*/
+		{
+		GenerateJavaTransferTypesL(iTransferTypes, EJavaMIDletData);
+		if (iTransferTypes.Count())
+			{
+			_LIT(KJMidletData, "Restoring Java Midlets Data ...");
+			Log(LOG_LEVEL2, KJMidletData);
+			SupplyDataL(iTransferTypes);
+			}
+		}
+
+	TVerdict CBURTestStepRestoreAsync::doTestStepPostambleL()
+		/**
+		@return - TVerdict code
+		Override of base class pure virtual
+		*/
+		{
+		_LIT(KLog, "Number of failures:");
+		LogWithNum(LOG_LEVEL3, KLog, iFailures);
+		if (iFailures)
+			{
+			SetTestStepResult(TVerdict(EFail));
+			}
+		return TestStepResult();
+		}
+		
+
+	} 	// end namespace