diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/twsgraphic/TWsGraphicShareTest.CPP --- a/windowing/windowserver/twsgraphic/TWsGraphicShareTest.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -// Copyright (c) 1995-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: -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include - -// bitmap to load for comparison -#define MY_TEST_BITMAP _L("Z:\\WSTEST\\MYTEST.MBM") - -const TUint32 ENullWsHandle=0xFFFFFFFF; -const TInt KErrTestExeFailure = -666; - -// class to check if a shared CWsGraphic can be drawn correctly -class CWsGraphicShareBase : public CBase - { -public: - CWsGraphicShareBase(); - ~CWsGraphicShareBase(); - void ConstructL(); - void DoTestDrawGraphicCompareL(TPtrC aShare); -private : - void Test(TInt aCondition); - - -private : - TInt iScreenNumber; - CWindowGc *iGc; - RWsSession iWs; - RWindowGroup *iGroupWin; - CWsScreenDevice *iScreen; - RWindow *iWin; - }; - -CWsGraphicShareBase::CWsGraphicShareBase() - { - iScreenNumber = 0; - } - -CWsGraphicShareBase::~CWsGraphicShareBase() - { - iWin->Close(); - delete iWin; - delete iScreen; - delete iGc; - delete iGroupWin; - iWs.Close(); - } - -void CWsGraphicShareBase::ConstructL() - { - User::LeaveIfError(iWs.Connect()); - iScreen=new(ELeave) CWsScreenDevice(iWs); - User::LeaveIfError(iScreen->Construct(iScreenNumber)); - iGc=new(ELeave) CWindowGc(iScreen); - User::LeaveIfError(iGc->Construct()); - iGroupWin=new(ELeave) RWindowGroup(iWs); - iGroupWin->Construct(1); - - iWin=new(ELeave) RWindow(iWs); - iWin->Construct(*iGroupWin,ENullWsHandle); - iWin->SetRequiredDisplayMode(EColor256); - iWin->SetExtent(TPoint(0,0),iScreen->SizeInPixels()); - iWin->Activate(); - iWin->BeginRedraw(); - iWin->EndRedraw(); - iWs.Flush(); - } - -// Checks that the shared graphic is drawn or not. This is done by creating a new graphic in this process -// which looks the same as the shared graphic. The new graphic is then drawn to the screen followed by an -// attempt to draw the shared graphic. The two graphics are then compared. In cases where the shared graphic -// should be drawn the two graphics should compare exactly. In cases where the shared graphic should not be -// drawn the comparison will fail. - -void CWsGraphicShareBase::DoTestDrawGraphicCompareL(TPtrC aShare) - { - // UID of the shared graphic - TUid uid1 = {0x12000021}; - TWsGraphicId twsGraphicId1(uid1); - - _LIT8(KTestData,"HelloWorld"); - - CFbsBitmap bitmap1; - CFbsBitmap mask1; - - TSize screenSize = iScreen->SizeInPixels(); - User::LeaveIfError(bitmap1.Load(MY_TEST_BITMAP,0)); - mask1.Create(bitmap1.SizeInPixels(),iScreen->DisplayMode()); - - CWsGraphicBitmap* bTest = CWsGraphicBitmap::NewL(&bitmap1,&mask1); - - // divide the screen into two equal rectangles - TRect position1(0,0,screenSize.iWidth/2,screenSize.iHeight); - TRect position2(screenSize.iWidth/2,0,screenSize.iWidth,screenSize.iHeight); - - // draw the new graphic and attempt to draw the shared graphic - iGc->Activate(*iWin); - iWin->Invalidate(); - iWin->BeginRedraw(); - iGc->Clear(position1); - iGc->Clear(position2); - - iGc->DrawWsGraphic(bTest->Id(),position1,KTestData); - iGc->DrawWsGraphic(twsGraphicId1.Uid(),position2,KTestData); - - iGc->Deactivate(); - iWin->EndRedraw(); - - iWs.Flush(); - iWs.Finish(); - // compare the graphic in both positions - if (aShare==_L("false")) - Test(!iScreen->RectCompare(position1,position2)); - else - Test(iScreen->RectCompare(position1,position2)); - - delete bTest; - } - -// Failures are written to WSERV.log -void CWsGraphicShareBase::Test(TInt aCondition) - { - if(!aCondition) - { - TLogMessageText buf; - _LIT(Fail,"AUTO Failed in WsGraphics Test : DrawSharedGraphic"); - buf.Format(Fail); - iWs.LogMessage(buf); - iWs.Flush(); - RProcess().Terminate(KErrTestExeFailure); // terminate this process immediately. Expect TWsGraph test step (TAutoServer.exe) to capture this - } - } - -void MainL() - { - // read the argument from the command line of whether the graphic should be shared or not - TBuf<256> commandLine; - User::CommandLine(commandLine); - TLex lex(commandLine); - TPtrC toShare = lex.NextToken(); - - CActiveScheduler* activeScheduler=new(ELeave) CActiveScheduler; - CActiveScheduler::Install(activeScheduler); - CleanupStack::PushL(activeScheduler); - - CWsGraphicShareBase testBase; - testBase.ConstructL(); - - testBase.DoTestDrawGraphicCompareL(toShare); - - CleanupStack::PopAndDestroy(activeScheduler); - } - -GLDEF_C TInt E32Main() - { - CTrapCleanup* cleanUpStack=CTrapCleanup::New(); - if(cleanUpStack==NULL) - { - return KErrNoMemory; - } - TRAP_IGNORE(MainL()) - delete cleanUpStack; - - return(KErrNone); - }