--- a/windowing/windowserver/tauto/TBACKUPW.CPP Fri Jun 11 14:58:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,953 +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:
-// Test backed up windows
-//
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#include "TBACKUPW.H"
-
-CTBackedUpWindow::CTBackedUpWindow(CTestStep* aStep):
- CTWsGraphicsBase(aStep)
- {
- }
-
-
-void CTBackedUpWindow::CheckWindow(CFbsBitmap *aBitmap)
- {
- TPoint oldPos=iBackedUpWindow.Position();
- iBackedUpWindow.SetPosition(TPoint(0,0));
-
- iCheckWindow.SetVisible(ETrue);
- iCheckWindow.SetPosition(iCheckPos);
-
- iCheckWindow.BeginRedraw();
- TheGc->Activate(iCheckWindow);
- TheGc->BitBlt(TPoint(0,0), aBitmap);
- TheGc->Deactivate();
- iCheckWindow.EndRedraw();
-
- TheClient->iWs.Flush();
- TheClient->WaitForRedrawsToFinish();
- TBool retVal = TheClient->iScreen->RectCompare(TRect(iSize),TRect(iCheckPos,iSize));
- TEST(retVal);
- if (!retVal)
- INFO_PRINTF3(_L("TheClient->iScreen->RectCompare(TRect(iSize),TRect(iCheckPos,iSize)) return value - Expected: %d , Actual: %d"), ETrue, retVal);
-
- iCheckWindow.SetVisible(EFalse);
- iBackedUpWindow.SetPosition(oldPos);
- }
-
-void CTBackedUpWindow::CheckWindow()
- {
- CheckWindow(&iBitmap);
- }
-
-void CTBackedUpWindow::Draw(TInt aDrawFunc, TAny *aParam)
- {
- TheGc->Activate(iBackedUpWindow);
- Draw(aDrawFunc, aParam, TheGc, iBitGc);
- TheGc->Deactivate();
- }
-
-void CTBackedUpWindow::DrawWithTwoGcsL()
- {
- RBlankWindow blank(TheClient->iWs);
- User::LeaveIfError(blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle));
- blank.Activate();
- CWindowGc *gc2;
- User::LeaveIfError(TheClient->iScreen->CreateContext(gc2));
- CleanupStack::PushL(gc2);
-
- CFbsFont *font1;
- TFontSpec fspec(KTestFontTypefaceName,200);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)font1,fspec));
- CFbsFont *font2;
- TFontSpec fspec2(KTestFontTypefaceName,400);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)font2,fspec2));
-
- gc2->Activate(iBackedUpWindow);
- gc2->UseFont(font2);
- TheGc->Activate(iBackedUpWindow);
- TheGc->UseFont(font1);
- _LIT(KText,"Testing123");
- TheGc->DrawText(KText,TPoint(20,20));
- gc2->DrawText(KText,TPoint(20,40));
- iBitGc->UseFont(font1);
- iBitGc->DrawText(KText,TPoint(20,20));
- iBitGc->UseFont(font2);
- iBitGc->DrawText(KText,TPoint(20,40));
- iBitGc->DiscardFont();
- TheGc->Deactivate();
- TheClient->iScreen->ReleaseFont(font2);
- TheClient->iScreen->ReleaseFont(font1);
- CleanupStack::PopAndDestroy();
- blank.Close();
- }
-
-void CTBackedUpWindow::Draw(TInt aDrawFunc, TAny *aParam, CBitmapContext *gc1, CBitmapContext *gc2) //DDD
- {
- CBitmapContext *gc;
- for(TInt mode=0;mode<2;mode++)
- {
- if (mode==0)
- gc=gc1;
- else
- gc=gc2;
- gc->Reset();
- switch(aDrawFunc)
- {
- case 0:
- gc->SetBrushColor(*((TRgb *)aParam));
- gc->SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc->SetPenStyle(CGraphicsContext::ENullPen);
- gc->DrawRect(TRect(iSize));
- break;
- case 1:
- {
- TSize half(iSize.iWidth/2,iSize.iHeight/2);
- gc->DrawEllipse(TRect(half));
- gc->DrawEllipse(TRect(TPoint(0,half.iHeight),half));
- TRect rect1(half);
- gc->SetOrigin(TPoint(half.iWidth,0));
- gc->SetClippingRect(rect1);
- gc->DrawEllipse(rect1);
- gc->SetOrigin(TPoint(half.iWidth,half.iHeight));
- gc->SetClippingRect(rect1);
- gc->DrawEllipse(rect1);
- gc->SetOrigin(TPoint(0,0));
- gc->CancelClippingRect();
- }
- break;
- case 2:
- {
- TInt param= *((TInt *)aParam);
- if (param&0x1)
- gc->DrawLine(TPoint(param+(param*27)%iSize.iWidth,0),
- TPoint(iSize.iWidth-((param<<1)+(param*19)%iSize.iWidth),iSize.iHeight));
- else
- gc->DrawLine(TPoint(0, (param<<1)+(param*7)%iSize.iHeight),
- TPoint(iSize.iWidth,param+(param*13)%iSize.iHeight));
- }
- break;
- case 3:
- {
- TPoint pos;
- for(;pos.iX<iSize.iWidth;pos.iX+=10)
- gc->DrawLine(pos,pos+TSize(0,iSize.iHeight));
- for(pos.iX=0;pos.iY<iSize.iHeight;pos.iY+=10)
- gc->DrawLine(pos,pos+TSize(iSize.iWidth,0));
- }
- break;
- }
- }
- }
-
-CTBackedUpWindow::~CTBackedUpWindow()
- {
- iBackedUpWindow.Close();
- iCheckWindow.Close();
- iOomFrontWindow.Close();
- delete iBitGc;
- delete iBitmapDevice;
- delete iTestBitmap;
- delete iMaskBitmap;
- }
-
-void CopyToGray4L(CFbsBitmap*& aDestBitmap,const CFbsBitmap& aSrcBitmap)
- {
- aDestBitmap=new(ELeave) CFbsBitmap();
- CleanupStack::PushL(aDestBitmap);
- User::LeaveIfError(aDestBitmap->Create(aSrcBitmap.SizeInPixels(),EGray4));
- CFbsBitmapDevice* device=CFbsBitmapDevice::NewL(aDestBitmap);
- CleanupStack::PushL(device);
- CFbsBitGc* gc;
- User::LeaveIfError(device->CreateContext(gc));
- gc->BitBlt(TPoint(),&aSrcBitmap);
- delete gc;
- CleanupStack::PopAndDestroy(device);
- CleanupStack::Pop(aDestBitmap);
- }
-
-void CTBackedUpWindow::ConstructL()
- {
- iBackedUpWindow=RBackedUpWindow(TheClient->iWs);
- iBackedUpWindow.Construct(*(TheClient->iGroup->GroupWin()),EGray4,ENullWsHandle);
- TSize size=TheClient->iScreen->SizeInTwips();
- iSize=TheClient->iScreen->SizeInPixels();
- iSize.iWidth>>=1;
- iSize.iHeight>>=1;
- size.iWidth>>=1;
- size.iHeight>>=1;
- size.iWidth-=1; //Modification to get the mapping factor the same as the screen
- size.iHeight-=1; //Ditto
- iWinPos.SetXY(iSize.iWidth>>1,iSize.iHeight>>1);
- User::LeaveIfError(iBackedUpWindow.SetExtentErr(iWinPos,iSize));
- iBackedUpWindow.Activate();
-
- iCheckPos.SetXY(iSize.iWidth,0);
- iCheckWindow=RWindow(TheClient->iWs);
- iCheckWindow.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
- iCheckWindow.SetSize(iSize);
- iCheckWindow.SetVisible(EFalse);
- iCheckWindow.Activate();
-
- TInt col,grey;
- TDisplayMode defMode=TheClient->iWs.GetDefModeMaxNumColors(col,grey);
- User::LeaveIfError(iBitmap.Create(iSize,defMode));
- iBitmap.SetSizeInTwips(size);
- iBitmapDevice=CFbsBitmapDevice::NewL(&iBitmap);
- User::LeaveIfError(iBitmapDevice->CreateContext(iBitGc));
-
- TRgb rgb(TRgb::Gray4(2));
- Draw(0,&rgb);
-
- iTestBitmap=new(ELeave) CFbsBitmap();
- User::LeaveIfError(iTestBitmap->Load(TEST_BITMAP_NAME,0));
- iTestBitmap->SetSizeInTwips(TSize(1500,750));
- iMaskBitmap=new(ELeave) CFbsBitmap();
- User::LeaveIfError(iMaskBitmap->Load(TEST_BITMAP_NAME,0));
- TDisplayMode defMode2=iMaskBitmap->DisplayMode();
- if (defMode>EGray4)
- {
- CFbsBitmap* bitmap=iTestBitmap;
- CopyToGray4L(iTestBitmap,*bitmap);
- delete bitmap;
- bitmap=iMaskBitmap;
- CopyToGray4L(iMaskBitmap,*bitmap);
- delete bitmap;
- }
- defMode2=iMaskBitmap->DisplayMode();
- defMode2=iMaskBitmap->DisplayMode();
- }
-
-void CTBackedUpWindow::InvisVis()
- {
- iBackedUpWindow.SetVisible(EFalse);
- TheClient->iWs.Flush();
- iBackedUpWindow.SetVisible(ETrue);
- TheClient->iWs.Flush();
- }
-
-void CTBackedUpWindow::WindowOnTop()
- {
- RBlankWindow blank(TheClient->iWs);
- blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
- blank.Activate();
- blank.Close();
- TheClient->iWs.Flush();
-
- TPoint pos;
- TInt sizeMode=0;
- TInt draw=13;
-
- for(pos.iX=-iSize.iWidth;pos.iX<iSize.iWidth;pos.iX+=50)
- for(pos.iY=-iSize.iHeight;pos.iY<iSize.iHeight;pos.iY+=50)
- {
- blank=RBlankWindow(TheClient->iWs);
- blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
- blank.SetColor(TRgb::Gray256(220));
- blank.SetShadowHeight(2);
- blank.SetExtent(pos+iWinPos,TSize((sizeMode&0x1)?iSize.iWidth>>1:iSize.iWidth<<1,(sizeMode&0x2)?iSize.iHeight>>1:iSize.iHeight<<1));
- sizeMode=(sizeMode+1)%4;
- blank.Activate();
- Draw(2,&draw);
- TheClient->iWs.Flush();
- draw++;
- blank.Close();
- }
- }
-
-void CTBackedUpWindow::Resize()
- {
- RBlankWindow blank(TheClient->iWs);
- blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
- blank.SetColor(TRgb::Gray256(128));
- blank.Activate();
- TInt xtop=(iSize.iWidth)-(iSize.iWidth>>2);
- TInt ytop=(iSize.iHeight)-(iSize.iHeight>>2);
- for(TInt winMode=0;winMode<3;winMode++)
- {
- switch(winMode)
- {
- case 0:
- blank.SetExtent(TPoint(0,ytop),TSize(iSize.iWidth,iSize.iHeight>>1));
- break;
- case 1:
- blank.SetExtent(TPoint(xtop,0),TSize(iSize.iWidth>>1,iSize.iHeight));
- break;
- case 2:
- blank.SetExtent(TPoint(xtop,ytop),TSize(iSize.iWidth>>1,iSize.iHeight>>1));
- break;
- }
- blank.SetShadowHeight(winMode);
- TPoint oldPos=iBackedUpWindow.Position();
- TPoint pos=oldPos;
- for(TUint i=0;i<sizeof(moveList)/sizeof(moveList[0]);i++)
- {
- pos+=moveList[i];
- iBackedUpWindow.SetPosition(pos);
- TheClient->iWs.Flush();
- }
- iBackedUpWindow.SetPosition(oldPos);
- }
- blank.Close();
- }
-
-void CTBackedUpWindow::ChildWindows()
- {
- TPoint pos;
- TInt sizeMode=0;
- TInt draw=13;
- RBlankWindow blank(TheClient->iWs);
- for(pos.iX=-(iSize.iWidth>>1);pos.iX<iSize.iWidth;pos.iX+=33)
- for(pos.iY=-(iSize.iHeight>>1);pos.iY<iSize.iHeight;pos.iY+=33)
- {
- blank.Construct(iBackedUpWindow,ENullWsHandle);
- blank.SetColor(TRgb::Gray256(220));
- blank.SetShadowHeight(2);
- blank.SetExtent(pos,TSize((sizeMode&0x1)?iSize.iWidth>>2:iSize.iWidth,(sizeMode&0x2)?iSize.iHeight>>2:iSize.iHeight));
- sizeMode=(sizeMode+1)%4;
- blank.Activate();
- Draw(2,&draw);
- TheClient->iWs.Flush();
- draw++;
- blank.Close();
- }
- }
-
-void CTBackedUpWindow::DupBitmapTestL()
- {
- INFO_PRINTF1(_L("AUTO Dup Bitmap Test "));
- CFbsBitmap *dup=new(ELeave) CFbsBitmap();
- dup->Duplicate(iBackedUpWindow.BitmapHandle());
- CheckWindow(dup);
- TRgb rgb(TRgb::Gray4(1));
- Draw(0,&rgb);
- CheckWindow(dup);
- INFO_PRINTF1(_L(" Done Window Drawing Test"));
-
- CFbsBitmapDevice *dupDevice=NULL;
- TRAPD(err,dupDevice=CFbsBitmapDevice::NewL(dup));
- CFbsBitGc *gc;
- if (err==KErrNone && dupDevice->CreateContext(gc)==KErrNone)
- {
- Draw(3,NULL,gc,iBitGc); // Draw directly to backup bitmap (and test bitmap)
- iBackedUpWindow.UpdateScreen();
- INFO_PRINTF1(_L(" First Bitmap Drawing"));
- CheckWindow();
- TRgb rgb(TRgb::Gray256(128));
- TInt col,grey;
- if (TheClient->iWs.GetDefModeMaxNumColors(col,grey)>EGray4)
- rgb=TRgb::Gray4(2);
- Draw(0,&rgb,gc,iBitGc);
- Draw(1,NULL,gc,iBitGc);
- iBackedUpWindow.UpdateScreen(TRegionFix<1>(TRect(iSize)));
- INFO_PRINTF1(_L(" Second Bitmap Drawing"));
- CheckWindow();
- delete gc;
- }
- delete dupDevice;
- delete dup;
- }
-
-void CTBackedUpWindow::UpdateBitmapTestL()
- {
- INFO_PRINTF1(_L("AUTO UpdateBitmap "));
- CheckWindow();
- CFbsBitmap *dup=new(ELeave) CFbsBitmap();
- dup->Duplicate(iBackedUpWindow.BitmapHandle());
- Draw(3,NULL);
- iBackedUpWindow.UpdateBackupBitmap();
- INFO_PRINTF1(_L(" First Drawing"));
- CheckWindow(dup);
- TRgb rgb;
- if (iSupState==0)
- rgb=TRgb::Gray256(128);
- else
- rgb=TRgb::Gray4(2);
- Draw(0,&rgb);
- Draw(1,NULL);
- iBackedUpWindow.UpdateBackupBitmap();
- INFO_PRINTF1(_L(" Second Drawing"));
- CheckWindow(dup);
- delete dup;
- }
-
-void CTBackedUpWindow::OOML()
- {
- iOomFrontWindow=RBlankWindow(TheClient->iWs);
- TSize size(iBackedUpWindow.Size());
- size.iWidth>>=1;
- size.iHeight>>=1;
- TPoint pos(size.iWidth*3/2,size.iHeight*3/2);
- iOomFrontWindow.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
- iOomFrontWindow.SetColor(TRgb(TRgb::Gray4(1)));
- iOomFrontWindow.SetExtent(pos,size);
- iOomFrontWindow.Activate();
- TheClient->iWs.Flush();
-
- TPoint buwPos=iBackedUpWindow.Position();
- TSize buwSize=iBackedUpWindow.Size();
- for(TInt count=0;count<100;count++)
- {
- iOomFrontWindow.SetVisible(ETrue);
- TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count);
- iBackedUpWindow.SetPosition(buwPos+TPoint(10,5));
- iBackedUpWindow.SetPosition(buwPos);
- iOomFrontWindow.SetSize(size+TSize(10,5));
- iOomFrontWindow.SetSize(size);
- iBackedUpWindow.SetSizeErr(buwSize+TSize(13,7));
- iBackedUpWindow.SetSizeErr(buwSize);
- iOomFrontWindow.SetVisible(EFalse);
- TheClient->iWs.HeapSetFail(RHeap::ENone,0);
- User::LeaveIfError(iBackedUpWindow.SetSizeErr(buwSize));
- TheClient->WaitForRedrawsToFinish();
- CheckWindow();
- }
-
- iOomFrontWindow.Close();
- }
-
-void CTBackedUpWindow::doGraphicFunctionsL(CBitmapContext *gc,TBool aExtraDrawBitMap)
- {
- TSize size=iBackedUpWindow.Size();
- CFbsFont *aFont;
- _LIT(KFontName,"Swiss");
- TFontSpec fspec(KFontName,190);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)aFont,fspec));
- CFbsBitmap* aBitmap=iTestBitmap;
- CFbsBitmap* aMaskBitmap=iMaskBitmap;
-
- #include "DLLDRAW.H" // Draws to a Gc called 'gc'
-
- TheClient->iScreen->ReleaseFont(aFont);
- }
-
-void CTBackedUpWindow::AllGraphicFunctionsL(RBlankWindow &aBlank,TBool aExtraDrawBitMap/*=ETrue*/)
- {
- aExtraDrawBitMap=EFalse; //Check out when bitblit scaling has changed again
- aBlank.SetVisible(ETrue);
- TheGc->Activate(iBackedUpWindow);
- TRAPD(err,doGraphicFunctionsL(TheGc,aExtraDrawBitMap));
- TheGc->Deactivate();
- User::LeaveIfError(err);
- iBitGc->Reset();
- iBitGc->SetUserDisplayMode(EGray4);
- doGraphicFunctionsL(iBitGc,aExtraDrawBitMap);
- aBlank.SetVisible(EFalse);
- CheckWindow();
- }
-
-void CTBackedUpWindow::AllGraphicFunctionsTestsL()
- {
- RBlankWindow blank(TheClient->iWs);
- TInt xtop=(iSize.iWidth)-(iSize.iWidth>>1);
- TInt ytop=(iSize.iHeight)-(iSize.iHeight>>1);
- blank.Construct(*(TheClient->iGroup->GroupWin()),ENullWsHandle);
- blank.SetColor(TRgb::Gray256(128));
- blank.Activate();
- blank.SetExtent(TPoint(0,ytop),TSize(iSize.iWidth,iSize.iHeight>>2));
- AllGraphicFunctionsL(blank);
- blank.SetExtent(TPoint(0,ytop+10),TSize(iSize.iWidth,iSize.iHeight>>2));
- AllGraphicFunctionsL(blank);
- blank.SetExtent(TPoint(xtop,ytop),TSize(iSize.iWidth>>1,iSize.iHeight));
- AllGraphicFunctionsL(blank,EFalse);
- blank.SetExtent(TPoint(xtop+(iSize.iWidth>>1),ytop),TSize(iSize.iWidth>>1,iSize.iHeight));
- AllGraphicFunctionsL(blank,EFalse);
- blank.SetExtent(TPoint(xtop+10,iSize.iHeight),TSize(iSize.iWidth,iSize.iHeight));
- AllGraphicFunctionsL(blank,EFalse);
- blank.SetExtent(TPoint(xtop,ytop),iSize);
- AllGraphicFunctionsL(blank,EFalse);
- blank.SetExtent(TPoint(0,0),TSize(0,0));
- AllGraphicFunctionsL(blank);
- blank.Close();
- }
-
-void CTBackedUpWindow::RunTestCaseL(TInt /*aCurTestCase*/)
- {
- switch(iSupState)
- {
- case 0:
- for (TInt iSubTest=0;iSubTest<KLastSubtest;iSubTest++)
- {
- DoSubTestL(iSubTest);
- }
- iBackedUpWindow.MaintainBackup(); //Putting this line here is a work around
- break;
- case 1:
- for (TInt iSubTest=0;iSubTest<KLastSubtest;iSubTest++)
- {
- DoSubTestL(iSubTest);
- }
- break;
- default:
- TestComplete();
- break;
- }
- iSupState++;
- }
-
-void CTBackedUpWindow::DoSubTestL(TInt iState)
- {
- _LIT(KTest0,"Simple draw");
- _LIT(KTest1,"Resizing");
- _LIT(KTest2,"Invisible/Visible");
- _LIT(KTest3,"Windows on top");
- _LIT(KTest4,"Child Windows");
- _LIT(KTest5,"OOM");
- _LIT(KTest6,"Update Bitmap");
- _LIT(KTest7,"Bitmap duplicate");
- _LIT(KTest8,"Two Graphic Contexts");
- _LIT(KTest9,"All Graphic Functions");
- _LIT(KTest10,"Reactivate");
- _LIT(KTest11,"DoDrawCommand");
-
- TRgb rgb1(255,255,255);
- TRgb rgb2(255,255,255);
- TRgb rgb3(255,255,255);
- TRgb rgb4(255,255,255);
- TRgb rgb5(255,255,255);
- TRgb rgb6(255,255,255);
- TRgb rgb7(255,255,255);
- TRgb color(TRgb::Gray4(2));
-
- iTest->iState=iState;
-((CTBackedUpWindowStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
- switch(iState)
- {
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0202-0001
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test drawing in a backed up window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw in a backed up window and a normal window and check
- the two drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 0:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0202-0001"));
- iTest->LogSubTest(KTest0);
- Draw(1,NULL);
- CheckWindow();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0202-0002
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test drawing in a backed up window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw in a backed up window and a normal window and check
- the two drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 1:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0202-0002"));
- iTest->LogSubTest(KTest1);
- Draw(0,&rgb1);
- Draw(3,NULL);
- Resize();
- CheckWindow();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0203
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test making a backed up window invisible
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw in a backed up window and a normal window, make
- the backed up window invisible then visible and
- then check the two drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 2:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0203"));
- iTest->LogSubTest(KTest2);
- Draw(0,&rgb2);
- Draw(1,NULL);
- InvisVis();
- CheckWindow();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0204
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test drawing in a backed up window and then placing a
- window on top of it
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw in a backed up window and a normal window, then
- place a window on top of the backed up window and then
- check the two drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 3:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0204"));
- iTest->LogSubTest(KTest3);
- //TRgb rgb(220,220,220);
- Draw(0,&rgb3);
- Draw(1,NULL);
- WindowOnTop();
- CheckWindow();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0205
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test drawing in a backed up window and then drawing in
- a child window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw in a backed up window and a normal window, then
- create and draw in a child window and then
- check the two original drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 4:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0205"));
- iTest->LogSubTest(KTest4);
- Draw(0,&rgb4);
- Draw(3,NULL);
- ChildWindows();
- CheckWindow();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0206
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Out of memeory test for backed up windows
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Out of memeory test for backed up windows
-
-@SYMTestExpectedResults Backed up window responds correctly when out
- of memory
-*/
- case 5:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0206"));
- iTest->LogSubTest(KTest5);
- if (!iTest->IsFullRomL())
- {
- Draw(0,&rgb5);
- Draw(3,NULL);
- OOML();
- CheckWindow();
- }
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0207
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test updating a bitmap in a backed up window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Update a bitmap in a backed up window and a normal window
- and check the two bitmaps are the same
-
-@SYMTestExpectedResults The two bitmaps are exactly the same
-*/
- case 6:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0207"));
- iTest->LogSubTest(KTest6);
- Draw(0,&rgb6);
- Draw(1,NULL);
- UpdateBitmapTestL();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0208
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test updating a duplicate bitmap in a backed up window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Update a duplicated bitmap in a backed up window and a normal window
- and check the two bitmaps are the same
-
-@SYMTestExpectedResults The two bitmaps are exactly the same
-*/
- case 7:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0208"));
- if (iSupState==0) //Will fail unless the window is fully backup.
- break;
- iTest->LogSubTest(KTest7);
- Draw(0,&rgb7);
- Draw(1,NULL);
- DupBitmapTestL();
- break;
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0209
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test drawing with two graphic contexts in a backed up window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw using two graphic contexts in a backed up window and a normal
- window and check the two drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 8:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0209"));
- iTest->LogSubTest(KTest8);
- Draw(0,&color);
- Draw(1,NULL);
- DrawWithTwoGcsL();
- CheckWindow();
- break;
-
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0210
-
-@SYMDEF DEF081259
-
-@SYMTestCaseDesc Test drawing using all the graphic functions in a backed up window
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Draw using all the graphic functions in a backed up window and a normal
- window and check the two drawings are the same
-
-@SYMTestExpectedResults The two drawings are exactly the same
-*/
- case 9:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0210"));
- iTest->LogSubTest(KTest9);
- if(TheClient->iScreen->SizeInPixels() == TSize(640,240))
- AllGraphicFunctionsTestsL();
- break;
-
- //A Coverage test, nothing spectacular just making the code
- //go into CWsGc::Reactivate
- case 10:
- {
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0502
-*/
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0502"));
- iTest->LogSubTest(KTest10);
- TheGc->Deactivate();
- RBackedUpWindow extentWindow;
- extentWindow=RBackedUpWindow(TheClient->iWs);
- extentWindow.Construct(*(TheClient->iGroup->GroupWin()),EGray4,ENullWsHandle);
- TheGc->Activate(extentWindow);
- TheClient->Flush();
- User::LeaveIfError(extentWindow.SetExtentErr(TPoint(2,2), TSize(4,4)));
- extentWindow.Activate();
- extentWindow.Close();
- TheGc->Deactivate();
- break;
- }
-
- //Coverage for various messages for CWsGc::DoDrawCommand
- case 11:
- {
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0507
-*/
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0507"));
- iTest->LogSubTest(KTest11);
- TheGc->Activate(iBackedUpWindow);
- TheGc->Reset();
- iBitGc->Reset();
- iBitGc->SetUserDisplayMode(EGray4);
-
- // EWsGcOpDrawWsGraphic
- TheGc->DrawWsGraphic(TWsGraphicId(0), TRect(0,0,10,10));
-
- //create a large junk buffer so that messages with Ptr suffix will be sent
- RBuf8 junkBuf8;
- RBuf junkBuf;
- junkBuf8.CreateMax(650); // a large enough buffer to sent as Ptr (this value used to crash the code before)
- junkBuf.CreateMax(650); // a large enough buffer to sent as Ptr
- for (int i=0; i<junkBuf.MaxLength()-1;i++)
- {
- junkBuf8[i] = 'A';
- junkBuf[i] = 'A';
- }
- junkBuf8[junkBuf8.MaxLength()-1] = '\0';
- junkBuf[junkBuf.MaxLength()-1] = '\0';
-
- // EWsGcOpDrawWsGraphicPtr
- TheGc->DrawWsGraphic(TWsGraphicId(0), TRect(0,0,10,10), junkBuf8);
-
- // Set font for drawing on screen
- CFbsFont *font1;
- TFontSpec fspec(KTestFontTypefaceName,200);
- User::LeaveIfError(TheClient->iScreen->GetNearestFontToDesignHeightInTwips((CFont *&)font1,fspec));
- TheGc->UseFont(font1);
- iBitGc->UseFont(font1);
-
- // EWsGcOpDrawTextPtr
- TheGc->DrawText(junkBuf, TPoint(0,0));
- iBitGc->DrawText(junkBuf, TPoint(0,0));
-
- // EWsGcOpDrawBoxText - unreachable 299-too lo, 300-too hi
-
- // EWsGcOpDrawBoxTextPtr
- TheGc->DrawText(junkBuf, TRect(0,0,10,10), 0, CGraphicsContext::ELeft, 0);
- iBitGc->DrawText(junkBuf, TRect(0,0,10,10), 0, CGraphicsContext::ELeft, 0);
-
- // EWsGcOpDrawTextVerticalPtr
- TheGc->DrawTextVertical(junkBuf, TPoint(0,0), ETrue);
- iBitGc->DrawTextVertical(junkBuf, TPoint(0,0), ETrue);
-
- // EWsGcOpDrawBoxTextVerticalPtr
- TheGc->DrawTextVertical(junkBuf, TRect(0,0,10,10), 0, ETrue, CGraphicsContext::ELeft, 0);
- iBitGc->DrawTextVertical(junkBuf, TRect(0,0,10,10), 0, ETrue, CGraphicsContext::ELeft, 0);
-
- // EWsGcOpMoveBy
- TheGc->MoveBy(TPoint(2,2));
- iBitGc->MoveBy(TPoint(2,2));
-
- // a bitmap for bitblt ops
- CWsBitmap bmp(TheClient->iWs);
- bmp.Create(TSize(16,16), iBackedUpWindow.DisplayMode());
-
- // EWsGcOpGdiWsBlt2
- TheGc->BitBlt(TPoint(0,0), &bmp);
- iBitGc->BitBlt(TPoint(0,0), &bmp);
-
- // EWsGcOpGdiWsBlt3
- TheGc->BitBlt(TPoint(0,0), &bmp, TRect(0,0,10,10));
- iBitGc->BitBlt(TPoint(0,0), &bmp, TRect(0,0,10,10));
-
- // EWsGcOpGdiWsBltMasked
- TheGc->BitBltMasked(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, EFalse);
- iBitGc->BitBltMasked(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, EFalse);
-
- // EWsGcOpGdiWsAlphaBlendBitmaps
- TheGc->AlphaBlendBitmaps(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, TPoint(1,1));
- iBitGc->AlphaBlendBitmaps(TPoint(0,0), &bmp, TRect(0,0,10,10), &bmp, TPoint(1,1));
-
- // EWsGcOpWsDrawBitmapMasked
- TheGc->DrawBitmapMasked(TRect(0,0,10,10), &bmp, TRect(0,0,8,8), &bmp, ETrue);
- iBitGc->DrawBitmapMasked(TRect(0,0,10,10), &bmp, TRect(0,0,8,8), &bmp, ETrue);
-
- // EWsGcOpDrawBitmap
- TheGc->DrawBitmap(TPoint(0,0), &bmp);
- iBitGc->DrawBitmap(TPoint(0,0), &bmp);
-
- // EWsGcOpDrawBitmapMasked
- TheGc->DrawBitmapMasked(TRect(0,0,10,10), static_cast<const CFbsBitmap*>(&bmp),
- TRect(0,0,8,8), static_cast<const CFbsBitmap*>(&bmp),
- EFalse);
- iBitGc->DrawBitmapMasked(TRect(0,0,10,10), static_cast<const CFbsBitmap*>(&bmp),
- TRect(0,0,8,8), static_cast<const CFbsBitmap*>(&bmp),
- EFalse);
-
- // EWsGcOpDrawPolyLineContinued
- TheGc->DrawPolyLine(reinterpret_cast<const TPoint*>(junkBuf8.Ptr()),
- TInt(junkBuf8.Size()/sizeof(TPoint)));
- iBitGc->DrawPolyLine(reinterpret_cast<const TPoint*>(junkBuf8.Ptr()),
- TInt(junkBuf8.Size()/sizeof(TPoint)));
-
- // EWsGcOpCopyRect
- TheGc->CopyRect(TPoint(0,0), TRect(0,0,10,10));
- iBitGc->CopyRect(TPoint(0,0), TRect(0,0,10,10));
-
- //cleanup
- TheClient->Flush();
- TheGc->DiscardFont();
- iBitGc->DiscardFont();
- TheClient->iScreen->ReleaseFont(font1);
- junkBuf.Close();
- junkBuf8.Close();
- TheGc->Deactivate();
-
- CheckWindow();
-
- //the following have no client equivalent methods
- // EWsGcOpMapColorsLocal
- // EWsGcOpDrawPolyLineLocalBufLen
- // EWsGcOpDrawPolyLineLocal
- // EWsGcOpDrawPolygonLocalBufLen
- // EWsGcOpDrawPolygonLocal
- // EWsGcOpDrawBitmapLocal
- // EWsGcOpDrawBitmap2Local
- // EWsGcOpDrawBitmap3Local
- // EWsGcOpDrawBitmapMaskedLocal
- // EWsGcOpDrawTextPtr1
- // EWsGcOpDrawBoxTextPtr1
- // EWsGcOpDrawTextVerticalPtr1
- // EWsGcOpDrawBoxTextVerticalPtr1
- // EWsGcOpDrawTextLocal
- // EWsGcOpDrawBoxTextLocal
- // EWsGcOpGdiBlt2Local
- // EWsGcOpGdiBlt3Local
- // EWsGcOpGdiBltMaskedLocal
- ((CTBackedUpWindowStep*)iStep)->CloseTMSGraphicsStep();
- break;
- }
-
- default:
- ((CTBackedUpWindowStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
- ((CTBackedUpWindowStep*)iStep)->CloseTMSGraphicsStep();
- break;
- }
- ((CTBackedUpWindowStep*)iStep)->RecordTestResultL();
- }
-
-__WS_CONSTRUCT_STEP__(BackedUpWindow)