sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/startupadaptationwrapper.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/startupadaptationwrapper.cpp Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,232 @@
+// Copyright (c) 2008-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:
+// Contains wrapper helper functions for test code to control the test wrappers
+//
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#include "startupadaptationwrapper.h"
+
+/**
+ * Sets the value for the wrapper for if the startup adaptation is loaded.
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::SetLoaded(TBool aLoaded)
+ {
+ iIsLoaded = aLoaded;
+ }
+
+/**
+ * Returns the value for the wrapper for if the startup adaptation is loaded.
+ *
+ * @internalComponent
+ * @test
+ */
+TBool CStartupAdaptationWrapper::IsLoaded()
+ {
+ return iIsLoaded;
+ }
+
+/**
+ * Allocates and returns a new startup adaptation
+ *
+ * Returns NULL if a startup adaptation has already been created
+ *
+ * @internalComponent
+ * @test
+ */
+CStartupAdaptation* CStartupAdaptationWrapper::NewStartupAdaptation(TAny* aParams)
+ {
+ if (iStartupAdaptation != NULL)
+ {
+ return NULL;
+ }
+ iStartupAdaptation = new CStartupAdaptationWrapper(static_cast<MStartupAdaptationObserver*>(aParams));
+ SetLoaded(ETrue);
+ return static_cast<CStartupAdaptation*>(iStartupAdaptation);
+ }
+
+/**
+ * Deletes the allocated startup adaptation from a previous call to NewStartupAdaptation
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::DeleteStartupAdaptation()
+ {
+ SetLoaded(EFalse);
+ }
+
+/**
+ * Sets the last command id to be returned by the wrapper
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::SetLastCommandId(StartupAdaptation::TCommand aCommandId)
+ {
+ iLastCommandId = aCommandId;
+ }
+
+/**
+ * Returns the last command id to be given to the wrapper
+ *
+ * @internalComponent
+ * @test
+ */
+StartupAdaptation::TCommand CStartupAdaptationWrapper::LastCommandId()
+ {
+ return iLastCommandId;
+ }
+
+/**
+ * Sets the last command data to be returned
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::SetLastCommandDataL(TDesC8& aData)
+ {
+ // Make a copy of the data
+ HBufC8* newData = aData.AllocL();
+
+ delete iLastCommandData;
+ iLastCommandData = newData;
+ }
+
+/**
+ * Returns the last command data to be given to the wrapper
+ *
+ * Ownership of the HBufC* remains with the CStartupAdaptationWrapper
+ * and will be deleted when the next command is issued
+ *
+ * @internalComponent
+ * @test
+ */
+HBufC8* CStartupAdaptationWrapper::LastCommandData()
+ {
+ return iLastCommandData;
+ }
+
+/**
+ * Frees any data allocated for last command data
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::DeleteLastCommandData()
+ {
+ delete iLastCommandData;
+ iLastCommandData = NULL;
+ }
+
+/**
+ * Triggers an event callback on the startup adaptation observer class
+ * associated with the wrapper
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::TriggerObserverEventCallbackL(const StartupAdaptation::TEvent aEventId, TDesC8& aData)
+ {
+ iStartupAdaptation->iObserver->EventL(aEventId, aData);
+ }
+
+/**
+ * Triggers a response callback on the startup adaptation observer class
+ * associated with the wrapper
+ *
+ * @internalComponent
+ * @test
+ */
+void CStartupAdaptationWrapper::TriggerResponseCallbackL(const StartupAdaptation::TCommand aCommandId, TDesC8& aData)
+ {
+ // Use iResponding to ensure that CommandL is not issued from ResponseL()
+ iStartupAdaptation->iResponding = ETrue;
+ TRAPD(err, iStartupAdaptation->iObserver->ResponseL(aCommandId, aData));
+ iStartupAdaptation->iResponding = EFalse;
+ User::LeaveIfError(err);
+ }
+
+/**
+ * Stores the last command data to be issued to the wrapper
+ *
+ * @internalComponent
+ * @test
+ */
+StartupAdaptation::TCommand CStartupAdaptationWrapper::iLastCommandId = static_cast<StartupAdaptation::TCommand>(0);
+
+/**
+ * Stores the last command data to be stored by the wrapper
+ *
+ * @internalComponent
+ * @test
+ */
+HBufC8* CStartupAdaptationWrapper::iLastCommandData = NULL;
+
+/**
+ * Stores the created startup adaptation
+ *
+ * @internalComponent
+ * @test
+ */
+CStartupAdaptationWrapper* CStartupAdaptationWrapper::iStartupAdaptation = NULL;
+
+/**
+ * Stores the value for the wrapper for if the startup adaptation is loaded.
+ *
+ * @internalComponent
+ * @test
+ */
+TBool CStartupAdaptationWrapper::iIsLoaded = EFalse;
+
+
+CStartupAdaptationWrapper::CStartupAdaptationWrapper(MStartupAdaptationObserver* aObserver)
+: iObserver(aObserver)
+ {
+
+ }
+
+void CStartupAdaptationWrapper::CommandL(const StartupAdaptation::TCommand aCommandId, TDesC8& aData)
+ {
+ if(iResponding)
+ {
+ // CommandL has been called from within RespondL, this is not allowed
+ User::Panic(_L("StartupAdaptationWrapper"), 20);
+ }
+ SetLastCommandId(aCommandId);
+ SetLastCommandDataL(aData);
+ }
+
+void CStartupAdaptationWrapper::CancelCommandL(const StartupAdaptation::TCommand aCommandId)
+ {
+ _LIT(KWrapperPanic, "SAA Test Wrapper");
+ if (aCommandId != LastCommandId())
+ {
+ // If it's not the last command being cancelled then panic
+ User::Panic(KWrapperPanic, 0);
+ }
+ }
+
+TVersion CStartupAdaptationWrapper::Version() const
+ {
+ return TVersion(1, 0, 0);
+ }