diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tauto/TMDISPLAY.CPP --- a/windowing/windowserver/tauto/TMDISPLAY.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,232 +0,0 @@ -// Copyright (c) 1996-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: -// Multiple display test -// -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - - - -#include "TMDISPLAY.H" -#include -// -// -CTClient* CreateClientL() - { - return (TheClient=new(ELeave) TestClient()); - } - -TInt ProcMultiDisplay(TAny* aScreenNo) - { - return TestLibStartUp(CreateClientL,(TInt)aScreenNo); - } - - -// -// - -CTMultiDisplay::CTMultiDisplay(CTestStep* aStep) : CTWsGraphicsBase(aStep) - { - INFO_PRINTF1(_L("Testing Mutli display functions")); - } - -void CTMultiDisplay::ConstructL() - { - } - -CTMultiDisplay::~CTMultiDisplay() - { - } - -TInt DoSetFocusScreenL(TInt aFocusScreen,TAny* /*aArg*/) - { - RWsSession ws; - User::LeaveIfError(ws.Connect()); - ws.SetFocusScreen(aFocusScreen); - ws.Close(); - return EWsExitReasonBad; - } - -/** -@SYMTestCaseID GRAPHICS-WSERV-0051 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Test focusing on the two different screens - available - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Test the response to different calls to focus - on the two screens available - -@SYMTestExpectedResults Foucisng on the different screens is correct -*/ -void CTMultiDisplay::DoFocusScreenTestL() - { - _LIT(KSubTitle,"FocusScreen API"); - INFO_PRINTF1(KSubTitle); - - TInt numberOfScreens; - HAL::Get(HALData::EDisplayNumberOfScreens, numberOfScreens); - TInt oldFocus=TheClient->iWs.GetFocusScreen(); - - // test case #1: out of bounds screen number - // expected result: client panic and focus stays on current screen - TEST(iTest->TestWsPanicL(&DoSetFocusScreenL,EWservPanicScreenNumber,-1,NULL)); - TEST(TheClient->iWs.GetFocusScreen()==oldFocus); - if (TheClient->iWs.GetFocusScreen()!=oldFocus) - INFO_PRINTF3(_L("TheClient->iWs.GetFocusScreen() return value - Expected: %d, Actual: %d"), oldFocus, TheClient->iWs.GetFocusScreen()); - - TEST(iTest->TestWsPanicL(&DoSetFocusScreenL,EWservPanicScreenNumber,numberOfScreens,NULL)); - TEST(TheClient->iWs.GetFocusScreen()==oldFocus); - if (TheClient->iWs.GetFocusScreen()!=oldFocus) - INFO_PRINTF3(_L("TheClient->iWs.GetFocusScreen() return value - Expected: %d, Actual: %d"), oldFocus, TheClient->iWs.GetFocusScreen()); - - - // test case #2: new focus equals to current focus - // expected result: KErrNone and focus stays on current screen - TInt ret = TheClient->iWs.SetFocusScreen(oldFocus); - TEST(ret==KErrNone && TheClient->iWs.GetFocusScreen()==oldFocus); - if (ret!=KErrNone || TheClient->iWs.GetFocusScreen()!=oldFocus) - INFO_PRINTF5(_L("TheClient->iWs.SetFocusScreen(oldFocus)==KErrNone && TheClient->iWs.GetFocusScreen()==oldFocus - Expected: %d and %d, Actual: %d and %d"),KErrNone, oldFocus, ret, TheClient->iWs.GetFocusScreen()); - - - // test case #3: set focus to screen N where screen N is empty (doesn't have any windows) - // expected result: KErrNotFound and focus stays on current screen - TInt i; - for(i=1;iiWs.SetFocusScreen(i); - TEST(ret==KErrNotReady && TheClient->iWs.GetFocusScreen()==oldFocus); - if (ret!=KErrNotReady || TheClient->iWs.GetFocusScreen()!=oldFocus) - INFO_PRINTF5(_L("TheClient->iWs.SetFocusScreen(i)==KErrNotReady && TheClient->iWs.GetFocusScreen()==oldFocus - Expected: %d and %d, Actual: %d and %d"),KErrNotReady, oldFocus, ret, TheClient->iWs.GetFocusScreen()); - } - - // test case #4: set focus to screen N where screen N has focus-able window - // expected result: KErrNone and focus is set to screen N - CArrayPtrFlat* wins; - wins=new(ELeave) CArrayPtrFlat(numberOfScreens); - CleanupStack::PushL(wins); - for(i=0;iConstructL(); - wins->AppendL(win); - } - - for(i=1;iiWs.SetFocusScreen(i); - TEST(ret==KErrNone && TheClient->iWs.GetFocusScreen()==i); - if (ret!=KErrNone || TheClient->iWs.GetFocusScreen()!=i) - INFO_PRINTF5(_L("TheClient->iWs.SetFocusScreen(i)==KErrNone && TheClient->iWs.GetFocusScreen()==i - Expected: %d and %d, Actual: %d and %d"),KErrNone, i, ret, TheClient->iWs.GetFocusScreen()); - - } - - // test case #5: set focus back from screen N to main screen (screen 0) - // expected result: KErrNone and focus is set to screen 0 - ret = TheClient->iWs.SetFocusScreen(0); - TEST(ret==KErrNone && TheClient->iWs.GetFocusScreen()==0); - if (ret!=KErrNone || TheClient->iWs.GetFocusScreen()!=0) - INFO_PRINTF5(_L("TheClient->iWs.SetFocusScreen(0)==KErrNone && TheClient->iWs.GetFocusScreen()==0 - Expected: %d and %d, Actual: %d and %d"),KErrNone, 0, ret, TheClient->iWs.GetFocusScreen()); - - CleanupStack::PopAndDestroy(numberOfScreens+1,wins); - } - -/** -@SYMTestCaseID GRAPHICS-WSERV-0052 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Launch a test from a new process and check - that it passes indepenedent of screen focus - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Focus on a screen, launch a test process, - switch to focus on the other screen, then - then check the test process passed - -@SYMTestExpectedResults The test in the process passed -*/ -void CTMultiDisplay::DoScreenTestL(TInt aScreenNo) - { - _LIT(KSubTest,"Screen %d"); - TBuf<16> subMsg; - - const TInt numScreens=TheClient->iWs.NumberOfScreens(); - if (numScreens<=aScreenNo) - { - _LIT(KLog,"WARNING!! Cannot run test for screen %d as the device only has %d screens."); - LOG_MESSAGE3(KLog,aScreenNo,numScreens); - aScreenNo=numScreens-1; - } - - subMsg.AppendFormat(KSubTest,aScreenNo); - LOG_MESSAGE(subMsg); - - // Must switch focus screen to relevant screen manually - CMinWin* win=new(ELeave) CMinWin(aScreenNo); - CleanupStack::PushL(win); - win->ConstructL(); - TheClient->iWs.SetFocusScreen(aScreenNo); - - CleanupStack::PopAndDestroy(win); - TheClient->iWs.SetFocusScreen(0); - CTestBase::iScreenNo=aScreenNo; - - //Set CTestBase::iNumberOfGrpWndsOnPrimaryScreenWithZeroPriority with the number of window groups - //in default screen with priority zero. This will be used in TGwHandle test case. - CTestBase::iNumberOfGrpWndsOnPrimaryScreenWithZeroPriority = TheClient->iWs.NumWindowGroups(0) - 1; - } - -void CTMultiDisplay::RunTestCaseL(TInt /*aCurTestCase*/) - { - _LIT(KTest1,"Focus Screen"); - _LIT(KTest2,"Screen"); - ((CTMultiDisplayStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); - - switch (++iTest->iState) - { - case 1: - ((CTMultiDisplayStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0051")); - iTest->LogSubTest(KTest1); - DoFocusScreenTestL(); - break; - case 2: - ((CTMultiDisplayStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0052")); - iTest->LogSubTest(KTest2); - DoScreenTestL(1); - break; - default: - ((CTMultiDisplayStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); - ((CTMultiDisplayStep*)iStep)->CloseTMSGraphicsStep(); - TestComplete(); - break; - } - ((CTMultiDisplayStep*)iStep)->RecordTestResultL(); - } - -__WS_CONSTRUCT_STEP__(MultiDisplay)