homescreensrv_plat/context_utility_api/tsrc/src/t_ui_context_utility_api.cpp
changeset 0 79c6a41cd166
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreensrv_plat/context_utility_api/tsrc/src/t_ui_context_utility_api.cpp	Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,222 @@
+/*
+* Copyright (c) 2002 - 2007 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_ui_context_utility_api class member functions
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <Stiftestinterface.h>
+#include <aknappui.h>
+#include <cfclient.h>
+#include "hgcontextutilityimpl.h"
+#include "hgcontextutility.h"
+#include "hgcontexttypes.h"
+#include "hgtestbasemacros.h"
+#include "T_ui_context_utility_api.h"
+#include "wait.h"
+#include "hgtestbasemacros.h"
+#include <cvpbkcontactmanager.h>
+#include <mvpbkcontactstore.h>
+#include <mvpbkcontactfieldtextdata.h>
+#include <mvpbkstorecontact.h>
+#include <MVPbkContactObserver.h>
+#include <MVPbkBatchOperationObserver.h>
+#include <CVPbkContactLinkArray.h>
+#include <MVPbkContactOperationBase.h>
+#include <VPbkEng.rsg>
+#include <mdesession.h>
+#include <e32math.h>
+#include <aknappui.h>
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CT_ui_context_utility_api::CT_ui_context_utility_api
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CT_ui_context_utility_api::CT_ui_context_utility_api()
+    {
+    iTestDllName = _L("CT_ui_context_utility_api").AllocL();
+    }
+
+// -----------------------------------------------------------------------------
+// CT_ui_context_utility_api::ConstructL
+// Symbian 2nd phase constructor can leave.
+//
+// Note: If OOM test case uses STIF Logger, then STIF Logger must be created
+// with static buffer size parameter (aStaticBufferSize). Otherwise Logger
+// allocates memory from heap and therefore causes error situations with OOM
+// testing. For more information about STIF Logger construction, see STIF Users
+// Guide.
+// -----------------------------------------------------------------------------
+//
+void CT_ui_context_utility_api::ConstructL()
+    {
+    CHgTestBase::BaseConstructL( KT_ui_context_utility_apiLogPath,
+                             KT_ui_context_utility_apiLogFile );
+    }
+
+// -----------------------------------------------------------------------------
+// CT_ui_context_utility_api::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CT_ui_context_utility_api* CT_ui_context_utility_api::NewL()
+    {
+    CT_ui_context_utility_api* self = new (ELeave) CT_ui_context_utility_api;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// Destructor
+CT_ui_context_utility_api::~CT_ui_context_utility_api()
+    {
+
+    }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+// -----------------------------------------------------------------------------
+// LibEntryL is a polymorphic Dll entry point
+// Returns: CTestModuleBase*: Pointer to Test Module object
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CTestModuleBase* LibEntryL()
+    {
+    return CT_ui_context_utility_api::NewL();
+    }
+
+// -----------------------------------------------------------------------------
+// SetRequirements handles test module parameters(implements evolution
+// version 1 for test module's heap and stack sizes configuring).
+// Returns: TInt: Symbian error code.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt SetRequirements( CTestModuleParam*& /*aTestModuleParam*/,
+                                TUint32& /*aParameterValid*/ )
+    {
+    return KErrNone;
+    }
+
+//// -----------------------------------------------------------------------------
+//// CT_ui_context_utility_api::RunTestL
+//// Method responsible for enumerating and running test cases (and also setup and teardown activities before
+//// and after each test case).
+//// -----------------------------------------------------------------------------
+TInt CT_ui_context_utility_api::RunTestL(
+        CT_ui_context_utility_api::TCallReason aRunReason, 
+        TInt aTestToRun, 
+        RPointerArray<TTestCaseInfo>& aTestCases,
+        TTestResult& aResult )
+    {
+    TInt _test_case_no = -1;
+    //test cases, setup and teardown include
+    
+    
+    if( aRunReason == CHgTestBase::ERunTestCase )
+        {
+        LoadTestCasesL(_test_case_no, aRunReason, STIF_RUN_SETUP, aTestCases, aResult);
+		LoadTestCasesL(_test_case_no, aRunReason, aTestToRun, aTestCases, aResult);
+		LoadTestCasesL(_test_case_no, aRunReason, STIF_RUN_TEARDOWN, aTestCases, aResult);
+        CreateEnvL();
+        _test_case_no = -1;
+        TRAPD(
+                errCode, 
+                LoadTestCasesL(_test_case_no, aRunReason, STIF_RUN_SETUP, aTestCases, aResult);
+                LoadTestCasesL(_test_case_no, aRunReason, aTestToRun, aTestCases, aResult);
+                LoadTestCasesL(_test_case_no, aRunReason, STIF_RUN_TEARDOWN, aTestCases, aResult);
+             )
+        DestroyEnv();
+        User::LeaveIfError( errCode );
+        }
+    else
+    	{
+    	LoadTestCasesL(_test_case_no, aRunReason, aTestToRun, aTestCases, aResult);
+    	}
+    
+    return _test_case_no;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+void CT_ui_context_utility_api::CreateEnvL()
+    {
+    CActiveScheduler::Install ( NULL );
+    ENV_cleanup = CTrapCleanup::New();
+    TInt ENV_err = KErrNone;
+    ENV_env = new CEikonEnv;
+    if ( ENV_env ) 
+        { 
+        TRAP( ENV_err, ENV_env->ConstructL() ); 
+        if ( ENV_err ) 
+            { 
+            return; 
+            }
+        ENV_aknAppUI = new CAknAppUi;
+        if (ENV_aknAppUI)
+            {
+            TRAP( ENV_err, ENV_aknAppUI->BaseConstructL( CEikAppUi::ENoAppResourceFile ) ); \
+            if ( ENV_err )
+                {
+                return;
+                }
+            }
+        }
+    }
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+void CT_ui_context_utility_api::DestroyEnv()
+    {
+    TInt KWait( 500000 );
+    CActiveSchedulerWait*  wait = new (ELeave) CActiveSchedulerWait();
+    CPeriodic*  periodic = CPeriodic::NewL( CActive::EPriorityIdle );
+    periodic->Start(KWait, KWait, TCallBack( CHgTestBase::CallStop, wait ) );
+    wait->Start();
+    delete periodic;
+    delete wait;
+    
+    if ( ENV_aknAppUI ) 
+        { 
+        ENV_aknAppUI->PrepareToExit(); 
+        }
+    if ( ENV_env ) 
+        { 
+        ENV_env->DestroyEnvironment(); 
+        }
+    if( ENV_cleanup )
+        {
+        delete ENV_cleanup;
+        }
+    CActiveScheduler::Install ( iActiveScheduler );
+    }
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+TInt CT_ui_context_utility_api::LoadTestCasesL(
+                    TInt& _test_case_no,
+                    CT_ui_context_utility_api::TCallReason aRunReason,
+                    TInt aTestToRun,
+                    RPointerArray<TTestCaseInfo>& aTestCases,
+                    TTestResult& aResult)
+    {
+#define TEST_CASES
+    #include "..\src\T_ui_context_utility_api_cases.cpp"
+#undef TEST_CASES
+    return KErrNone;
+    }
+//  End of File