localisation/apparchitecture/tef/T_WgnamStep.CPP
branchSymbian2
changeset 1 8758140453c0
child 6 c108117318cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localisation/apparchitecture/tef/T_WgnamStep.CPP	Thu Jan 21 12:53:44 2010 +0000
@@ -0,0 +1,330 @@
+// Copyright (c) 2005-2009 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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test accessing window group name.\n
+// Tests accessing & modifier functionality of CApaWindowGroupName API.\n
+// 
+//
+
+
+
+/**
+ @file
+ @internalComponent - Internal Symbian test code 
+*/
+
+#include <e32test.h>
+#include <apgwgnam.h>
+#include <w32std.h>
+#include "T_WgnamStep.h"
+
+/**
+  Auxiliary Fn for Test Case ID T-WgnamStep-testWgNamesL
+ 
+  This function accepts current window group name as descriptor and prints it.\n
+  
+*/
+void CT_WgnamStep::PrintWindowGroupName(const TPtrC& aWndGroupName)
+	{
+	_LIT(KWindowGroupName, "Current name=\"%S\"\n");
+	TFileName buffer;
+	buffer.Format(KWindowGroupName, &aWndGroupName);
+	INFO_PRINTF1(buffer);
+	}
+
+
+/**
+   @SYMTestCaseID T-WgnamStep-testWgNamesL
+  
+   @SYMPREQ
+  
+   @SYMTestCaseDesc Test setting and accessing functionality of Window group name. 
+   
+   @SYMTestPriority High 
+  
+   @SYMTestStatus Implemented
+   
+   @SYMTestActions The test checks the following functionality of CApaWindowGroupName\n
+   (1) Creation of window group name object.\n
+   (2) Setting the task to be a System task.\n
+   (3) Setting the task to be Busy.\n
+   (4) Setting document name as filename.\n
+   (5) Setting the task's capability to shutdown.\n
+   (6) Setting the task's capability to switch between files.\n
+   (7) Setting the tasks Uid.\n
+   (8) Setting the tasks caption.\n
+   (9) Setting the tasks Document name.\n
+   (10) Setting the task to be ready.\n
+   (11) Setting a name to a window group name.\n
+   \n
+   In each of the cases the setter function is called to set a particular
+   attribute. The attribute is cross checked by verifying with its 
+   corresponding getter / accessor function. After setting each of the attributes
+   the test tries to analyze the impact of the attribute changed, on the windows
+   group name.\n
+   API Calls:\n	
+   CApaWindowGroupName::NewL(const RWsSession& aWsSession)\n
+   CApaWindowGroupName::SetSystem(TBool aSystem)\n
+   CApaWindowGroupName::IsSystem() const\n
+   CApaWindowGroupName::SetBusy(TBool aBusy)\n
+   CApaWindowGroupName::IsBusy() const\n
+   CApaWindowGroupName::SetDocNameIsAFile(TBool aDocNameIsAFile)\n
+   CApaWindowGroupName::DocNameIsAFile() const\n
+   CApaWindowGroupName::SetRespondsToShutdownEvent(TBool aRespondsToShutdownEvent)\n
+   CApaWindowGroupName::RespondsToShutdownEvent() const\n
+   CApaWindowGroupName::SetRespondsToSwitchFilesEvent(TBool aRespondsToSwitchFilesEvent)\n
+   CApaWindowGroupName::RespondsToSwitchFilesEvent() const\n
+   CApaWindowGroupName::SetAppUid(TUid aAppUid);\n
+   CApaWindowGroupName::AppUid() const\n
+   CApaWindowGroupName::SetCaptionL(const TDesC& aCaption)\n
+   CApaWindowGroupName::Caption() const\n
+   CApaWindowGroupName::SetDocNameL(const TDesC& aDocName);\n
+   CApaWindowGroupName::DocName() const\n
+   CApaWindowGroupName::SetAppReady(TBool aIsReady)\n
+   CApaWindowGroupName::IsAppReady()\n
+   CApaWindowGroupName::SetWindowGroupName(HBufC* aWgName)\n
+   CApaWindowGroupName::WindowGroupName() const\n
+   CApaWindowGroupName::FindByCaption(const TDesC& aCaption, RWsSession& aWsSession, TInt& aPrevWgId) const\n
+   
+   @SYMTestExpectedResults Test checks results against expected values.
+    
+ */
+void CT_WgnamStep::testWgNamesL()
+	{
+	_LIT(KWindowGroupName1, "WindowGroupName 1");
+	_LIT(KWindowGroupName2, "WindowGroupName 2");
+	_LIT(KBadName,"00\x00\x31\x31\x31\x31\x31\x31\x31\x31x31\x0\x0");
+	
+	INFO_PRINTF1(_L("Starting testWgNamesL()"));
+	//
+	// Instantiate a blank name
+	CApaWindowGroupName* apaWindowGroupName=NULL;
+	TRAPD(ret, apaWindowGroupName=CApaWindowGroupName::NewL(iWsSession));
+	TEST(ret==KErrNone);
+	User::LeaveIfError(iWsSession.Connect());
+	TEST(apaWindowGroupName!=NULL);
+
+	// test setting system
+	INFO_PRINTF1(_L("Block 1"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->IsSystem());
+	INFO_PRINTF1(_L("Setting system\n"));
+	apaWindowGroupName->SetSystem(ETrue);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->IsSystem());
+	INFO_PRINTF1(_L("Setting not system\n"));
+	apaWindowGroupName->SetSystem(EFalse);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->IsSystem());
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+
+	// test setting busy
+	INFO_PRINTF1(_L("Block 2"));
+	INFO_PRINTF1(_L("Test setting busy"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->IsBusy());
+	INFO_PRINTF1(_L("Setting busy\n"));
+	apaWindowGroupName->SetBusy(ETrue);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->IsBusy());
+	INFO_PRINTF1(_L("Setting not busy\n"));
+	apaWindowGroupName->SetBusy(EFalse);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->IsBusy());
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+
+	// test setting docname not a file
+	INFO_PRINTF1(_L("Block 3"));
+	INFO_PRINTF1(_L("Test setting doc name is not a file"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->DocNameIsAFile());
+	INFO_PRINTF1(_L("Setting doc name not a file\n"));
+	apaWindowGroupName->SetDocNameIsAFile(EFalse);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->DocNameIsAFile());
+	INFO_PRINTF1(_L("Setting doc name is a file\n"));
+	apaWindowGroupName->SetDocNameIsAFile(ETrue);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->DocNameIsAFile());
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+
+	// RDebug::Print(_L("Block 3"));
+	INFO_PRINTF1(_L("Test setting does not respond to shutdown event"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->RespondsToShutdownEvent());
+	INFO_PRINTF1(_L("Setting does not respond to shutdown event\n"));
+	apaWindowGroupName->SetRespondsToShutdownEvent(EFalse);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->RespondsToShutdownEvent());
+	INFO_PRINTF1(_L("Setting does respond to shutdown event\n"));
+	apaWindowGroupName->SetRespondsToShutdownEvent(ETrue);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->RespondsToShutdownEvent());
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+
+	// test setting does not respond to switch files event
+	// RDebug::Print(_L("Block 3"));
+	INFO_PRINTF1(_L("Test setting does not respond to switch files event"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->RespondsToSwitchFilesEvent());
+	INFO_PRINTF1(_L("Setting does not respond to switch files event\n"));
+	apaWindowGroupName->SetRespondsToSwitchFilesEvent(EFalse);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!apaWindowGroupName->RespondsToSwitchFilesEvent());
+	INFO_PRINTF1(_L("Setting does respond to switch files event\n"));
+	apaWindowGroupName->SetRespondsToSwitchFilesEvent(ETrue);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->RespondsToSwitchFilesEvent());
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+
+	// test setting app uid
+	// RDebug::Print(_L("Block 5"));
+	INFO_PRINTF1(_L("Test setting appUid"));
+	const TUid uid={ 0x10000111 };
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	INFO_PRINTF2(_L("Setting app uid to %x\n"), uid.iUid);
+	apaWindowGroupName->SetAppUid(uid);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(apaWindowGroupName->AppUid()==uid);
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+
+	// test setting caption
+	// RDebug::Print(_L("Block 6"));
+	INFO_PRINTF1(_L("Test setting caption"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TPtrC caption=_L("App caption");
+	INFO_PRINTF2(_L("Setting app caption to %S\n"), &caption);
+	apaWindowGroupName->SetCaptionL(caption);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!(apaWindowGroupName->Caption().Compare(caption)));
+	INFO_PRINTF1(_L("\n"));
+	// User::After(2000000);
+	
+	// testing FindByCaption
+	INFO_PRINTF1(_L("Test Window group ID"));
+	_LIT(KCaption, "App caption");
+	TInt aWgId=0;
+	apaWindowGroupName->FindByCaption(KCaption, iWsSession, aWgId);
+	TEST(aWgId==KErrNotFound);
+	INFO_PRINTF3(_L("Expected value is KErrNotfound : %d ,Value Obtained is   : %d \n"),KErrNotFound, aWgId);
+
+	// test setting document name
+	// RDebug::Print(_L("Block 7"));
+	INFO_PRINTF1(_L("Test setting document name"));
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TPtrC docName=_L("Doc name");
+	INFO_PRINTF2(_L("Setting doc name to %S\n"), &docName);
+	apaWindowGroupName->SetDocNameL(docName);
+	PrintWindowGroupName(apaWindowGroupName->WindowGroupName());
+	TEST(!(apaWindowGroupName->DocName().Compare(docName)));
+	INFO_PRINTF1(_L("\n"));
+
+	// test AppReady flag
+	INFO_PRINTF1(_L("Testing AppReady flag"));
+	INFO_PRINTF1(_L("Setting AppReady flag to false"));
+	apaWindowGroupName->SetAppReady(EFalse);
+	TEST(apaWindowGroupName->IsAppReady()==EFalse);
+	INFO_PRINTF1(_L("Setting AppReady flag to true"));
+	apaWindowGroupName->SetAppReady(ETrue);
+	TEST(!apaWindowGroupName->IsAppReady()==EFalse);
+	INFO_PRINTF1(_L("\n"));
+
+
+	// Testing SetWindowGroup Name
+	INFO_PRINTF1(_L("Testing SetWindowGroupName"));
+	CApaWindowGroupName* apaWindGroupName = NULL;
+	
+	TRAP(ret, apaWindGroupName=CApaWindowGroupName::NewL(iWsSession, apaWindowGroupName->WindowGroupName()));
+	TEST(ret==KErrNone);
+	apaWindGroupName->SetWindowGroupNameL(KWindowGroupName1);
+	TEST(apaWindGroupName->WindowGroupName().Compare(KWindowGroupName1)==0);
+	HBufC* windGroupName = KWindowGroupName2().AllocLC();
+	apaWindGroupName->SetWindowGroupName(windGroupName);
+	TEST(apaWindGroupName->WindowGroupName().Compare(KWindowGroupName2)==0);
+	
+	apaWindGroupName->SetWindowGroupNameL(KBadName);
+	const TUid retUid = apaWindGroupName->AppUid();
+	TEST(retUid == KNullUid);
+	INFO_PRINTF2(_L("Expected Uid: 0, Actual uid = %d\n"), retUid);
+	delete apaWindGroupName;
+
+	INFO_PRINTF1(_L("Cleaning up"));
+	delete apaWindowGroupName; // apaWindowGroupName
+
+	CleanupStack::Pop();	// windGroupName
+	iWsSession.Close();
+
+	INFO_PRINTF1(_L("Finished testWgNamesL()"));
+	}
+
+
+
+CT_WgnamStep::~CT_WgnamStep()
+/**
+   Destructor
+ */
+	{
+	}
+
+CT_WgnamStep::CT_WgnamStep()
+/**
+   Constructor
+ */
+	{
+	// Call base class method to set up the human readable name for logging
+	SetTestStepName(KT_WgnamStep);
+	}
+
+TVerdict CT_WgnamStep::doTestStepPreambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+	{
+	SetTestStepResult(EPass);
+	return TestStepResult();
+	}
+
+TVerdict CT_WgnamStep::doTestStepPostambleL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+	{
+	return TestStepResult();
+	}
+
+
+TVerdict CT_WgnamStep::doTestStepL()
+/**
+   @return - TVerdict code
+   Override of base class virtual
+ */
+{
+	INFO_PRINTF1(_L("Testing window group names"));
+	//
+	// run the testcode (inside an alloc heaven harness)
+
+	__UHEAP_MARK;
+	TRAPD(r,testWgNamesL());
+		TEST(r==KErrNone);
+	__UHEAP_MARKEND;
+
+	return TestStepResult();
+}