fep/frontendprocessor/test/src/TFepGen.CPP
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/frontendprocessor/test/src/TFepGen.CPP	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,370 @@
+// Copyright (c) 2006-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:
+// Tests for the Combination of key controls which 
+// is used to Turn on and Off the Fep Using the CFepGenericGlobalSettings API.
+// 
+//
+
+/**
+ @file
+ @test 
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <e32std.h>
+#include <coeaui.h>
+#include <fepbase.h>
+#include <coemain.h>
+#include "TFepGen.h"
+
+// global variables
+TBool gIsOn = ETrue;
+TFepOnOrOffKeyData	gOnKey(0,0,0);
+TFepOnOrOffKeyData	gOffKey(0,0,0);	
+
+
+/*************************************************************
+ **  
+ **  CFepGenAppUi
+ **  
+ *************************************************************/
+
+CFepGenAppUi::CFepGenAppUi(CTmsTestStep* aStep) :
+  	CTestCoeAppUi(aStep)
+	{
+  	}
+
+CFepGenAppUi::~CFepGenAppUi()
+    {
+    }
+
+void CFepGenAppUi::ConstructL()
+    {
+    CTestCoeAppUi::ConstructL();
+    TRect rect(TPoint(40,40),TSize(560,160));
+    AutoTestManager().StartAutoTest();
+    }
+
+void CFepGenAppUi::RunTestStepL(TInt aStepNum)
+	{
+	switch(aStepNum)
+		{	 
+		case 1:
+			{
+			// Need to save original settings
+			TRAPD(err, StoreOriginalSettingsL());
+			TEST(err == KErrNone);
+			}
+			break;
+		case 2:
+			{
+			SetTestStepID(_L("UIF-FEPBASE-0001"));
+			TRAPD(err, CreateFepGenericL());
+			TEST(err == KErrNone);
+			RecordTestResultL();
+			}
+			break;
+		case 3:
+			{
+			SetTestStepID(_L("UIF-FEPBASE-0002"));
+			TRAPD(err, FepStoreAndBroadCastL());
+			TEST(err == KErrNone);
+			RecordTestResultL();
+			CloseTMSGraphicsStep();
+			}
+			break;
+		case 4:
+			{
+			// Need to get original settings
+			TRAPD(err, RetrieveOriginalSettingsL());
+			TEST(err == KErrNone);
+			}
+			break;
+		case 5:
+			AutoTestManager().FinishAllTestCases(CAutoTestManager::EPass);
+			break;
+		}
+	}
+	
+
+void CFepGenAppUi::StoreOriginalSettingsL()
+	{
+	CFepGenericGlobalSettings *fep=CFepGenericGlobalSettings::NewL();
+	CleanupStack::PushL(fep);
+
+	gIsOn = fep->IsOn();
+	gOnKey = fep->OnKeyData();
+	gOffKey = fep->OffKeyData();
+
+	CleanupStack::PopAndDestroy(fep);	
+	}
+	
+	
+void CFepGenAppUi::RetrieveOriginalSettingsL()
+	{
+	CFepGenericGlobalSettings *fep=CFepGenericGlobalSettings::NewL();
+	CleanupStack::PushL(fep);
+
+	fep->SetIsOn(gIsOn);
+	fep->SetOnKeyData(gOnKey);
+	fep->SetOffKeyData(gOffKey);
+
+	fep->StoreChangesAndBroadcastL();
+
+	CleanupStack::PopAndDestroy(fep);		
+	}
+	
+/**
+   @SYMTestCaseID UIF-FEPBASE-0001
+  
+   @SYMDEF    DEF083097
+  
+   @SYMTestCaseDesc   This Test case is used to test the functionality of the 
+   CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) 
+   and CFepGenericGlobalSettings::NewL () .The functionality of Set API s of the class CFepGenericGlobalSettings is also tested which is used to overide system parameters for fep.
+   @SYMTestPriority High 
+  
+   @SYMTestStatus Implemented
+  
+       
+   @SYMTestActions   This methods creates Objects of CFepGenericGlobalSettings using CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) and 
+   CFepGenericGlobalSettings::NewL () . Checks whether the attributes of the two objects are same.It then calls the Set methods of CFepGenericGlobalSettings namely SetIsOn();SetOnkeyData(), SetOffkeyData(),with one of the objects created by   
+   CFepGenericGlobalSettings using CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) method and checks that the attributes of the object created using 
+   CFepGenericGlobalSettings::NewL () are not the same .
+
+       
+   @SYMTestExpectedResults   The test case fails when the attributes of the objects created using CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) and 
+   CFepGenericGlobalSettings::NewL () are not the same.
+   When the SET methods are called using the CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) method's object.The attributes get changed.
+   And the attributes are not equal to the object created using the CFepGenericGlobalSettings::NewL ().The test case fails if they are identical.
+
+*/
+void CFepGenAppUi::CreateFepGenericL()
+    {
+    INFO_PRINTF1(_L("Executing Test case UIF_FEPBASE_001"));
+
+   	const TFepOnOrOffKeyData genKeyData1(EKeySpace,EModifierFunc|EModifierLeftShift ,EModifierFunc);
+	TEST(genKeyData1.ModifierMask()==(EModifierFunc|EModifierLeftShift));
+	TEST(genKeyData1.ModifierValues()==EModifierFunc);
+
+	const TFepOnOrOffKeyData genKeyData2(EKeyDelete,EModifierFunc|EModifierRightShift,EModifierFunc) ;
+	TEST(genKeyData2.ModifierMask()==(EModifierFunc|EModifierRightShift));
+	TEST(genKeyData2.ModifierValues()==EModifierFunc);
+
+	CCoeEnv* env = CCoeEnv::Static();
+	CFepGenericGlobalSettings *fepWithParam=CFepGenericGlobalSettings::NewL(*env,genKeyData1,genKeyData2,ETrue);
+	CleanupStack::PushL(fepWithParam);
+
+	CFepGenericGlobalSettings *fepNoParam=CFepGenericGlobalSettings::NewL();
+	CleanupStack::PushL(fepNoParam);
+
+
+	const TFepOnOrOffKeyData keyOnFepPar=fepWithParam->OnKeyData();
+	const TFepOnOrOffKeyData keyOnFepNoPar=fepNoParam->OnKeyData();
+	const TFepOnOrOffKeyData keyOffFepPar=fepWithParam->OffKeyData();
+	const TFepOnOrOffKeyData keyOffFepNoPar=fepNoParam->OffKeyData();
+	
+	INFO_PRINTF2(_L("val of keyOnFepPar.ModifierMask() '%d' "),keyOnFepPar.ModifierMask());
+	INFO_PRINTF2(_L("val of keyOnFepNoPar.ModifierMask() '%d' "),keyOnFepNoPar.ModifierMask());
+	INFO_PRINTF2(_L("val of keyOnFepPar.ModifierValues() '%d' "),keyOnFepPar.ModifierValues());
+	INFO_PRINTF2(_L("val of keyOnFepNoPar.ModifierValues() '%d' "),keyOnFepNoPar.ModifierValues());
+	INFO_PRINTF2(_L("val of keyOnFepPar.CharacterCodeForFoldedMatch() '%d' "),keyOnFepPar.CharacterCodeForFoldedMatch());
+	INFO_PRINTF2(_L("val of keyOnFepNoPar.CharacterCodeForFoldedMatch() '%d' "),keyOnFepNoPar.CharacterCodeForFoldedMatch());
+
+	
+	INFO_PRINTF2(_L("val of keyOffFepPar.ModifierMask() '%d' "),keyOffFepPar.ModifierMask());
+	INFO_PRINTF2(_L("val of keyOffFepNoPar.ModifierMask() '%d' "),keyOffFepNoPar.ModifierMask());
+	INFO_PRINTF2(_L("val of keyOffFepPar.ModifierValues() '%d' "),keyOffFepPar.ModifierValues());
+	INFO_PRINTF2(_L("val of keyOffFepNoPar.ModifierValues() '%d' "),keyOffFepNoPar.ModifierValues());
+	INFO_PRINTF2(_L("val of keyOffFepPar.CharacterCodeForFoldedMatch() '%d' "),keyOffFepPar.CharacterCodeForFoldedMatch());
+	INFO_PRINTF2(_L("val of keyOffFepNoPar.CharacterCodeForFoldedMatch() '%d' "),keyOffFepNoPar.CharacterCodeForFoldedMatch());
+	
+	TEST(fepWithParam->IsOn()==fepNoParam->IsOn());
+	
+	TEST(keyOnFepPar==keyOnFepNoPar);
+	TEST(genKeyData1!=keyOnFepPar);
+	TEST(genKeyData1!=keyOnFepNoPar);
+	
+	TEST(keyOffFepPar==keyOffFepNoPar);
+	TEST(genKeyData2!=keyOffFepPar);
+	TEST(genKeyData2!=keyOffFepNoPar);
+
+	if(fepWithParam->IsOn())
+	{
+	INFO_PRINTF2(_L("fepWithParam->IsOn() is ETRUE '%d' "),fepWithParam->IsOn());
+	fepWithParam->SetIsOn(EFalse);
+	TEST(!(fepWithParam->IsOn()));
+	INFO_PRINTF2(_L("fepWithParam->IsOn() Was ETRUE and Now It is changed to '%d' "),fepWithParam->IsOn());
+	}
+	else
+	{
+	INFO_PRINTF2(_L("fepWithParam->IsOn() is EFalse '%d' "),fepWithParam->IsOn());
+	fepWithParam->SetIsOn(ETrue);
+	TEST(fepWithParam->IsOn());
+	INFO_PRINTF2(_L("fepWithParam->IsOn() was EFalse and now changed to '%d' "),fepWithParam->IsOn());
+	}
+
+	fepWithParam->SetOnKeyData(genKeyData1);
+	fepWithParam->SetOffKeyData(genKeyData2);
+	
+	
+	TEST(genKeyData1==fepWithParam->OnKeyData());
+	TEST(genKeyData2==fepWithParam->OffKeyData());
+	TEST(fepNoParam->IsOn()!=fepWithParam->IsOn());
+	TEST(genKeyData1!=fepNoParam->OnKeyData());
+	TEST(genKeyData2!=fepNoParam->OffKeyData());
+	
+	// After the test, we should restore original values...
+	fepWithParam->SetOnKeyData(genKeyData1);
+	fepWithParam->SetOffKeyData(genKeyData2);
+	
+	
+	CleanupStack::PopAndDestroy(2,fepWithParam);
+	INFO_PRINTF1(_L("End of  Test case 1"));
+    }
+    
+/**
+   @SYMTestCaseID UIF-FEPBASE-0002
+  
+   @SYMDEF    DEF083097
+  
+   @SYMTestCaseDesc		This test case tests the functionality of StoreAndBroadcastL() method of CFepGenericFlobalSettings().
+
+   @SYMTestPriority High 
+  
+   @SYMTestStatus Implemented  
+       
+   @SYMTestActions 	This methods creates Objects of CFepGenericGlobalSettings using CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) and
+   CFepGenericGlobalSettings::NewL () . It then calls the Set methods of CFepGenericGlobalSettings namely SetIsOn();SetOnkeyData(), SetOffkeyData(),with one of the objects created by   
+   CFepGenericGlobalSettings using CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) method and ,Then it calls the StoreAndBroadcastL() and checks that the attributes of the object created using 
+   CFepGenericGlobalSettings::NewL () are the same .
+   	 
+   @SYMTestExpectedResults 	When the SET methods are called using the CFepGenericGlobalSettings::NewL(CCoeEnv& aConeEnvironment,const TFepOnOrOffKeyData& aDefaultOnKeyData,const TFepOnOrOffKeyData& aDefaultOffKeyData,TBool aDefaultIsOn) method's object.The attributes get changed.
+   StoreAndBroadCastL(), Stores the local changes to the systemSettings and distributes the changes to all the instances of FEP.So when a new object is created Using the NewL() method , the attributes should be same as that of the previuosly created object 's attributes.
+*/
+    
+void CFepGenAppUi::FepStoreAndBroadCastL()
+    {
+    INFO_PRINTF1(_L("Executing Test case UIF_FEPBASE_0002"));
+	const  TFepOnOrOffKeyData onKeyData1(EKeySpace,EModifierFunc|EModifierLeftShift ,EModifierFunc);
+	TEST(onKeyData1.ModifierMask()==(EModifierFunc|EModifierLeftShift));
+	TEST(onKeyData1.ModifierValues()==EModifierFunc);
+	const TFepOnOrOffKeyData offKeyData1(EKeyDelete,EModifierFunc|EModifierRightShift,EModifierFunc) ;
+	TEST(offKeyData1.ModifierMask()==(EModifierFunc|EModifierRightShift));
+	TEST(offKeyData1.ModifierValues()==EModifierFunc);
+	
+	const  TFepOnOrOffKeyData testOnKeyData1(EKeyEnter,EModifierFunc|EModifierLeftShift ,EModifierFunc);
+	const  TFepOnOrOffKeyData testOffKeyData1(EKeyTab,EModifierFunc|EModifierLeftShift ,EModifierFunc);
+
+	CCoeEnv* env = CCoeEnv::Static();
+	CFepGenericGlobalSettings *fepGen1=	CFepGenericGlobalSettings::NewL(*env,onKeyData1,offKeyData1,ETrue);
+	CleanupStack::PushL(fepGen1);
+	
+	fepGen1->SetOffKeyData(testOffKeyData1);
+	fepGen1->SetOnKeyData(testOnKeyData1);
+	fepGen1->SetIsOn(EFalse);
+	fepGen1->StoreChangesAndBroadcastL();
+	CleanupStack::PopAndDestroy(fepGen1);
+	
+	CFepGenericGlobalSettings *fepGen2=CFepGenericGlobalSettings::NewL();
+	CleanupStack::PushL(fepGen2);
+	TFepOnOrOffKeyData testOnKeyData2=fepGen2->OnKeyData();
+	TFepOnOrOffKeyData testOffKeyData2=fepGen2->OffKeyData();
+	
+	TEST(!(fepGen2->IsOn()));
+	TEST(testOnKeyData2!=onKeyData1);
+	TEST(testOnKeyData2==testOnKeyData1);
+	TEST(testOffKeyData2!=offKeyData1);
+	TEST(testOffKeyData2==testOffKeyData1);
+	
+	CleanupStack::PopAndDestroy(fepGen2);
+	INFO_PRINTF1(_L("End of Test case 2")); 
+    }
+
+
+/*************************************************************
+ **  
+ **  CTFepGenStep
+ **  
+ *************************************************************/
+
+/**
+  Completes the construction of the Control Environment(CCoeEnv object).\n
+  Instantiates the CFepGenAppUi class which serves as a AppUi class.\n
+  Sets the CFepGenAppUi object as the application's user interface object.\n
+  Invokes the second phase constructor of the application's UI.\n
+*/
+void CTFepGenStep::ConstructFepGenAppL(CCoeEnv* aCoe)
+	{
+	aCoe->ConstructL();
+	CFepGenAppUi* appUi=new(ELeave) CFepGenAppUi(this);
+	aCoe->SetAppUi(appUi);
+	appUi->ConstructL();
+	}
+
+CTFepGenStep::CTFepGenStep()
+	{
+	SetTestStepName(KTFepGen);
+	}	
+
+CTFepGenStep::~CTFepGenStep()
+	{
+	}
+	
+TVerdict CTFepGenStep::doTestStepL()
+	{
+    INFO_PRINTF1(_L("APPFWK_FEPBASE:FepGeneric Started"));
+    
+    __UHEAP_MARK;
+    
+	CCoeEnv* coe=new(ELeave) CCoeEnv;
+	TEST(coe !=NULL);
+	if(coe==NULL)
+		{
+		INFO_PRINTF1(_L("Failed to create CCoeEnv "));
+ 		return TestStepResult();
+		}
+		
+    TRAPD(err,ConstructFepGenAppL(coe));
+    if (!err)
+        coe->ExecuteD();
+	else
+		{
+		INFO_PRINTF2(_L("Failed to Construct CCoeEnv ,error %d"),err);
+		SetTestStepResult(EFail);
+ 		coe->PrepareToExit();
+		coe->DestroyEnvironment();
+		delete coe;
+		return TestStepResult();
+		}
+	
+	__UHEAP_MARKEND;
+
+	INFO_PRINTF1(_L("Test Finished"));
+
+	return TestStepResult();
+	}
+
+	
+    
+  
+ 
+
+
+    
+
+
+
+
+