diff -r bf7481649c98 -r 7f25ef56562d windowing/windowserver/tauto/TSCROLL.CPP --- a/windowing/windowserver/tauto/TSCROLL.CPP Fri Jun 11 14:58:47 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,850 +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: -// Window scroll tests -// -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "TSCROLL.H" - -#pragma warning(disable : 4710) - -// -// Scroll window, used to test the Scroll() command -// - -void DrawScrollWin(CBitmapContext *aGc, const TPoint &aOffset, const TSize &aSize) - { - aGc->Clear(); - TPoint drawBase(-10,-20); - TSize drawSize(aSize.iWidth-2*drawBase.iX,aSize.iHeight-2*drawBase.iY); - aGc->DrawRect(TRect(drawBase,drawBase+drawSize)); - TPoint offset=drawBase+aOffset; - aGc->SetPenColor(TRgb::Gray4(2)); -// aGc->SetDrawMode(CGraphicsContext::EDrawModeXOR); - aGc->DrawRect(TRect(offset+TPoint(13,23),offset+TPoint(22,32))); - TInt xpos,xplus; - for(xpos=0,xplus=2;xposDrawLine(TPoint(xpos,0)+offset,TPoint(xpos,drawSize.iHeight)+offset); - for(TInt ypos=0,yplus=2;yposDrawLine(TPoint(0,ypos)+offset,TPoint(drawSize.iWidth,ypos)+offset); -// - aGc->SetPenColor(TRgb(0,0,0)); - aGc->SetDrawMode(CGraphicsContext::EDrawModePEN); - TheClient->iWs.Flush(); - for(xpos=0;xposDrawLine(TPoint(xpos,0)+offset,TPoint(drawSize.iWidth,xpos*drawSize.iHeight/drawSize.iWidth)+offset); - aGc->DrawLine(TPoint(xpos,0)+offset,TPoint(0,drawSize.iHeight-xpos*drawSize.iHeight/drawSize.iWidth)+offset); - aGc->DrawLine(TPoint(xpos,drawSize.iHeight)+offset,TPoint(drawSize.iWidth,drawSize.iHeight-xpos*drawSize.iHeight/drawSize.iWidth)+offset); - aGc->DrawLine(TPoint(xpos,drawSize.iHeight)+offset,TPoint(0,xpos*drawSize.iHeight/drawSize.iWidth)+offset); - } - - } - -CScrollWindowNorm::CScrollWindowNorm() : CTWin() - { - } - -void DrawScrollWin(const TPoint &aOffset, const TSize &aSize) - { - ::DrawScrollWin(TheClient->iGc, aOffset, aSize); - } - -void CScrollWindowNorm::Draw() - { - DrawScrollWin(iScrollTest->Offset(), Size()); - } - -void CScrollWindowNorm::SetScrollTest(CScrollTestBase *aScrollTest) - { - iScrollTest=aScrollTest; - } - -// -// CScrollWindowBackedUp -// - -CScrollWindowBackedUp::CScrollWindowBackedUp(TDisplayMode aDisplayMode) : CTBackedUpWin(aDisplayMode) - { - } - -void CScrollWindowBackedUp::Draw() - { - DrawScrollWin(iScrollTest->Offset(), Size()); - } - -void CScrollWindowBackedUp::SetScrollTest(CScrollTestBase *aScrollTest) - { - iScrollTest=aScrollTest; - } - -// -// CScrollTestBase -// - -void CScrollTestBase::Reset() - { - iOffset=TPoint(0,0); - iInvalid.Clear(); - } - -void CScrollTestBase::DoInvalidate() - { - } - -TPoint CScrollTestBase::Offset() const - { - return(iOffset); - } - -CScrollTestBase::~CScrollTestBase() - { - delete iBlankWin; - iInvalid.Close(); - } - -void CScrollTestBaseNorm::ConstructL(const TPoint &aPos, const TSize &aSize) - { - iScrollWin=new(ELeave) CScrollWindowNorm(); - iScrollWin->SetUpL(aPos, aSize, TheClient->iGroup, *TheClient->iGc); - iScrollWin->SetScrollTest(this); - iSize=iScrollWin->Size(); - } - -CScrollTestBaseNorm::~CScrollTestBaseNorm() - { - delete iScrollWin; - } - -void CScrollTestBaseNorm::Redraw() - { - iScrollWin->Redraw(); - } - -void CScrollTestBaseNorm::Reset() - { - iScrollWin->Win()->Invalidate(); - iScrollWin->Redraw(); - CScrollTestBase::Reset(); - } - -CTDrawableWin *CScrollTestBaseNorm::ScrollWin() const - { - return(iScrollWin); - } - -void CScrollTestBaseNorm::AdjustTestScrollRegion(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect) - { - RRegion clipped_visible; - VisibleRegion(clipped_visible); - clipped_visible.ClipRect(aClipRect); -// -// - RRegion invalidate(aRect); - invalidate.SubRegion(clipped_visible); - invalidate.Offset(aOffset); - invalidate.ClipRect(aClipRect); -// - RRegion invalidate2(aRect); - invalidate2.ClipRect(aClipRect); - invalidate2.Intersect(iInvalid); - invalidate2.Offset(aOffset); - invalidate2.ClipRect(aClipRect); -// - RRegion validate(aRect); - validate.Intersect(clipped_visible); - validate.SubRegion(iInvalid); - validate.Offset(aOffset); - validate.ClipRect(aClipRect); -// - iInvalid.SubRegion(validate); - iInvalid.Union(invalidate); - iInvalid.Union(invalidate2); - RRegion visible; - VisibleRegion(visible); - iInvalid.Intersect(visible); - iInvalid.Tidy(); -// - invalidate2.Close(); - invalidate.Close(); - validate.Close(); - visible.Close(); - clipped_visible.Close(); - - iOffset+=aOffset; - } - -void CScrollTestBaseNorm::VisibleRegion(RRegion &aRegion) - { - aRegion.Clear(); - aRegion.AddRect(TRect(iSize)); - TRect child; - child.iTl=iBlankWin->BaseWin()->InquireOffset(*ScrollWin()->BaseWin()); - child.iBr=child.iTl+iBlankWin->BaseWin()->Size(); - aRegion.SubRect(child); - } - -void CScrollWindow1::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect) - { - TheGc->Activate(*iScrollWin->DrawableWin()); - RRegion region(aRect); - RRegion visible; - VisibleRegion(visible); - visible.ClipRect(aClipRect); - region.Intersect(visible); - visible.Close(); - region.SubRegion(iInvalid); - region.Offset(aOffset); - region.ClipRect(aClipRect); - TheGc->SetClippingRegion(region); - TheGc->CopyRect(aOffset,aRect); - TheGc->Deactivate(); - AdjustTestScrollRegion(aClipRect, aOffset,aRect); - iInvalid.Union(TRegionFix<1>(TRect(aClipRect))); - region.Close(); - } - -void CScrollWindow1::DoTestScroll(const TPoint &aOffset) - { - DoTestScroll(TRect(TPoint(0,0),iSize), aOffset,TRect(-aOffset,iSize)); - } - -void CScrollWindow1::DoTestScroll(const TPoint &aOffset, const TRect &aRect) - { - DoTestScroll(TRect(TPoint(0,0),iSize), aOffset, aRect); - } - -void CScrollWindow1::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset) - { - DoTestScroll(aClipRect, aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY)); - } - -void CScrollWindow1::DoInvalidate() - { - for(TInt index=0;indexInvalidate(iInvalid[index]); - } - -void CScrollWindow2::Reset() - { - CScrollTestBaseNorm::Reset(); - iClipped=EFalse; - } - -CScrollWindow2::CScrollWindow2(CTScroll *aTest) : iTest(aTest) - { - } - -void CScrollWindow2::Draw() - { - if (iClipped) - TheClient->iGc->SetClippingRegion(iInvalid); - iScrollWin->Draw(); - if (iClipped) - TheClient->iGc->CancelClippingRegion(); - } - -void CScrollWindow2::DoTestScroll(const TPoint &aOffset) - { - AdjustTestScrollRegion(TRect(iSize), aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY)); - iClipped=ETrue; - iScrollWin->DrawableWin()->Scroll(aOffset); - } - -void CScrollWindow2::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset) - { - AdjustTestScrollRegion(aClipRect, aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY)); - iClipped=ETrue; - iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset); - } - -void CScrollWindow2::DoTestScroll(const TPoint &aOffset, const TRect &aRect) - { - AdjustTestScrollRegion(TRect(iSize), aOffset, aRect); - iClipped=ETrue; - iScrollWin->DrawableWin()->Scroll(aOffset, aRect); - } - -void CScrollWindow2::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect) - { - AdjustTestScrollRegion(aClipRect, aOffset, aRect); - iClipped=ETrue; - iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset, aRect); - } - -void CScrollWindow3::DrawScrollBit() - { - ::DrawScrollWin(iBitmapGc, iOffset, iSize); - } - -void CScrollWindow3::Reset() - { - CScrollTestBase::Reset(); - iBitmapGc->Clear(TRect(iSize)); - DrawScrollBit(); - DoInvalidate(); - } - -CScrollWindow3::~CScrollWindow3() - { - delete iBitmapGc; - delete iBitmapDevice; - delete iBitmap; - } - -void CScrollWindow3::ConstructL(const TPoint &aPos, const TSize &aSize) - { - CScrollTestBaseNorm::ConstructL(aPos,aSize); - iBitmap=new(ELeave) CFbsBitmap(); - User::LeaveIfError(iBitmap->Create(iSize,EGray4)); - iBitmapDevice=CFbsBitmapDevice::NewL(iBitmap); - User::LeaveIfError(iBitmapDevice->CreateContext(iBitmapGc)); - DrawScrollBit(); - } - -void CScrollWindow3::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect) - { - iOffset+=aOffset; - RRegion blank(aRect); - TRect clipRect(aClipRect); - clipRect.Intersection(TRect(iSize)); - blank.SubRect(clipRect); - blank.Offset(aOffset); - blank.ClipRect(clipRect); - TRect rect(aRect); - rect.Intersection(clipRect); - TRect rect2(clipRect); - rect2.Move(-aOffset); - rect.Intersection(rect2); - iBitmapGc->CopyRect(aOffset,rect); - iBitmapGc->SetClippingRegion(&blank); - iBitmapGc->Clear(TRect(iSize)); - iBitmapGc->SetClippingRegion(NULL); - blank.Close(); - } - -void CScrollWindow3::DoTestScroll(const TPoint &aOffset) - { - DoTestScroll(TRect(iSize), aOffset,TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY)); - } - -void CScrollWindow3::DoTestScroll(const TPoint &aOffset, const TRect &aRect) - { - DoTestScroll(TRect(iSize), aOffset, aRect); - } - -void CScrollWindow3::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset) - { - DoTestScroll(aClipRect, aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY)); - } - -void CScrollWindow3::Draw() - { - TheGc->BitBlt(TPoint(),iBitmap); - } - -void CScrollWindow3::DoInvalidate() - { - RWindow win=*iScrollWin->Win(); - win.Invalidate(); - win.BeginRedraw(); - TheGc->Activate(win); - Draw(); - TheGc->Deactivate(); - win.EndRedraw(); - } - -void CScrollWindow4::ConstructL(const TPoint &aPos, const TSize &aSize) - { - iScrollWin=new(ELeave) CScrollWindowBackedUp(EGray4); - iScrollWin->SetUpL(aPos, aSize, TheClient->iGroup, *TheClient->iGc); - iScrollWin->SetScrollTest(this); - iSize=iScrollWin->Size(); - TheClient->iGc->Activate(*iScrollWin->DrawableWin()); - TheClient->iGc->Clear(); - DrawScrollWin(TPoint(), iSize); - TheClient->iGc->Deactivate(); - } - -CScrollWindow4::~CScrollWindow4() - { - delete iScrollWin; - } - -void CScrollWindow4::Redraw() - { - } - -void CScrollWindow4::Reset() - { - TheClient->iGc->Activate(*iScrollWin->DrawableWin()); - TheClient->iGc->Clear(); - DrawScrollWin(TPoint(), iSize); - TheClient->iGc->Deactivate(); - CScrollTestBase::Reset(); - } - -void CScrollWindow4::DoTestScroll(const TPoint &aOffset) - { - iScrollWin->DrawableWin()->Scroll(aOffset); - iOffset+=aOffset; - } - -void CScrollWindow4::DoTestScroll(const TPoint &aOffset, const TRect &aRect) - { - iScrollWin->DrawableWin()->Scroll(aOffset, aRect); - iOffset+=aOffset; - } - -void CScrollWindow4::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset) - { - iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset); - iOffset+=aOffset; - } - -void CScrollWindow4::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect) - { - iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset, aRect); - iOffset+=aOffset; - } - -CTDrawableWin *CScrollWindow4::ScrollWin() const - { - return(iScrollWin); - } - -// - -CTScroll::CTScroll(CTestStep* aStep): - CTWsGraphicsBase(aStep) - { - } - -CTScroll::~CTScroll() - { - BaseWin->SetVisible(ETrue); - TestWin->SetVisible(ETrue); - delete iBaseScrollWin; - delete iTestScrollWin; - } - -void CTScroll::ConstructL() - { - BaseWin->SetVisible(EFalse); - TestWin->SetVisible(EFalse); -// - iTest->iState=1; - TSize screenSize=TheClient->iGroup->Size(); - TInt winWidth=(screenSize.iWidth/3)-10; - TInt winHeight=screenSize.iHeight-10; - TInt winBaseX=(screenSize.iWidth/3); - if (iMode==0) - { - iBaseScrollWin=new(ELeave) CScrollWindow1(); - iTestScrollWin=new(ELeave) CScrollWindow2(this); - } - else - { - iBaseScrollWin=new(ELeave) CScrollWindow3(); - iTestScrollWin=new(ELeave) CScrollWindow4(); - } - iWinSize=TSize(winWidth,winHeight); - iBaseScrollWin->ConstructL(TPoint(winBaseX+5,5),iWinSize); - iTestScrollWin->ConstructL(TPoint(winBaseX+winWidth+15,5),iWinSize); - - iBaseScrollWin->iBlankWin=new(ELeave) CTBlankWindow(); - iBaseScrollWin->iBlankWin->SetUpL(iBaseScrollWin->ScrollWin()->BaseWin()->InquireOffset(*TheClient->iGroup->GroupWin())+TPoint(winWidth>>2,winHeight>>2),TSize(winWidth>>2,winHeight>>1),TheClient->iGroup,*TheClient->iGc); - iBaseScrollWin->iBlankWin->BlankWin()->SetShadowHeight(2); - - iTestScrollWin->iBlankWin=new(ELeave) CTBlankWindow(); - iTestScrollWin->iBlankWin->SetUpL(iTestScrollWin->ScrollWin()->BaseWin()->InquireOffset(*TheClient->iGroup->GroupWin())+TPoint(winWidth>>2,winHeight>>2),TSize(winWidth>>2,winHeight>>1),TheClient->iGroup,*TheClient->iGc); - } - -void CTScroll::CheckScrollWindows() - { - CheckRect(iBaseScrollWin->ScrollWin(),iTestScrollWin->ScrollWin(),TRect(iBaseScrollWin->ScrollWin()->Size()),_L("CTScroll::CheckScrollWindows()")); - } - -void CTScroll::DoTestScroll(const TPoint &aOffset) - { - iTestScrollWin->DoTestScroll(aOffset); - iBaseScrollWin->DoTestScroll(aOffset); - } - -void CTScroll::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset) - { - iTestScrollWin->DoTestScroll(aClipRect,aOffset); - iBaseScrollWin->DoTestScroll(aClipRect,aOffset); - } - -void CTScroll::DoTestScroll(const TPoint &aOffset, const TRect &aRect) - { - iTestScrollWin->DoTestScroll(aOffset,aRect); - iBaseScrollWin->DoTestScroll(aOffset,aRect); - } - -void CTScroll::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect) - { - iTestScrollWin->DoTestScroll(aClipRect,aOffset,aRect); - iBaseScrollWin->DoTestScroll(aClipRect,aOffset,aRect); - } - -void CTScroll::FinishedRectScrolls() - { - iBaseScrollWin->DoInvalidate(); - } - -void CTScroll::CheckOomScroll() - { - TheClient->iWs.HeapSetFail(RHeap::ENone,0); - FinishedRectScrolls(); - iTestScrollWin->Redraw(); - iBaseScrollWin->Redraw(); -// if (iMode!=1) // Out of memory scrolling of backed up windows can not work 100% when out of memory -// CheckScrollWindows(); // Redraw window code can't check these cases properly yet - } - -void CTScroll::OomScrolling() - { - iTestScrollWin->iBlankWin->BaseWin()->SetShadowHeight(0); - iBaseScrollWin->iBlankWin->BaseWin()->SetShadowHeight(0); - iTestScrollWin->ScrollWin()->BaseWin()->SetShadowHeight(0); - iTestScrollWin->Redraw(); - iBaseScrollWin->Redraw(); - for(TInt count=1;count<20;count++) - { - TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count); - DoTestScroll(TPoint(50,0)); - CheckOomScroll(); - // - TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count); - iTestScrollWin->Reset(); - iBaseScrollWin->Reset(); - DoTestScroll(TPoint(-6,-14),TRect(20,20,100,50)); - CheckOomScroll(); - // - TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count); - iTestScrollWin->Reset(); - iBaseScrollWin->Reset(); - DoTestScroll(TRect(TPoint(1,1),iWinSize-TSize(1,1)),TPoint(50,0),TRect(10,10,50,50)); - CheckOomScroll(); - } - } - -void CTScroll::RunTestCaseL(TInt /*aCurTestCase*/) - { - _LIT(KScroll,"Scroll"); - //if (iTest->iState==0) iTest->iState=22; - if (iDoCheck) - { - if (iMode==1) // The test code does not mimic scrolling to a non-backed up window properly - { - TheClient->iWs.Flush(); - TheClient->iWs.Finish(); - CheckScrollWindows(); - } - iTestScrollWin->Reset(); - iBaseScrollWin->Reset(); - TheClient->iWs.Flush(); - ++iTest->iState; - iDoCheck=EFalse; - return; - } - ((CTScrollStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); - switch(iTest->iState) - { -/** -@SYMTestCaseID GRAPHICS-WSERV-0249 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Test window scrolling by different offsets - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Pass different offsets for scrolling a window by and - check the window is scrolled correctly - -@SYMTestExpectedResults Window scrolls correctly to offsets -*/ - case 1: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - //DemoWindowScroll(); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(6,0)); - DoTestScroll(TPoint(-6,-14)); - DoTestScroll(TPoint(-6,-14)); - DoTestScroll(TPoint(0,10)); - DoTestScroll(TPoint(0,0)); - DoTestScroll(TPoint(10,23)); - break; - case 2: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(50,0)); - break; - case 3: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(0,33)); - break; - case 4: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-10,0)); - break; - case 5: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(0,-13)); - break; - case 6: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(0,0)); - break; - case 7: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-234,-1400)); - break; - case 8: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-69,15)); - break; - case 9: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-234,-1400)); - DoTestScroll(TPoint(233,1401)); - break; - case 10: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(10,-1)); - DoTestScroll(TPoint(11,-10)); - DoTestScroll(TPoint(-5,-40)); - DoTestScroll(TPoint(0,50)); - break; - -/** -@SYMTestCaseID GRAPHICS-WSERV-0250 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Test window scrolling by different offsets and - source rectangles - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Pass different offsets for scroll a window by and - different source rectangles. - Check the window is scrolled correctly - -@SYMTestExpectedResults Window scrolls correctly to offsets and source - rectangles -*/ - case 11: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-6,-14),TRect(20,20,100,50)); - DoTestScroll(TPoint(-6,-14),TRect(20,20,100,50)); - DoTestScroll(TPoint(-6,-14),TRect(40,10,130,130)); - break; - case 12: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(10,-1),TRect(20,20,21,21)); - break; - case 13: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-20,-14),TRect(10,10,10,10)); - break; - case 14: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-6,-14),TRect(20,20,200,300)); - DoTestScroll(TPoint(10,-24),TRect(20,20,200,300)); - DoTestScroll(TPoint(3,12),TRect(20,20,200,300)); - DoTestScroll(TPoint(-20,19),TRect(20,20,200,300)); - break; - case 15: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250")); - iTest->LogSubTest(KScroll); - DoTestScroll(TPoint(-6,-14),TRect(20000,200000,30000,300000)); - DoTestScroll(TPoint(10,-24),TRect(20,20,-200,-300)); - DoTestScroll(TPoint(10,-24),TRect(20,20,-200,300)); - DoTestScroll(TPoint(10,-24),TRect(20,20,200,-300)); - DoTestScroll(TPoint(3,12),TRect(-100,-200,1000,2000)); - DoTestScroll(TPoint(-20,19),TRect(0,0,0,0)); - break; - -/** -@SYMTestCaseID GRAPHICS-WSERV-0251 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Test window scrolling by different offsets and - clipping rectangles - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Pass different offsets for scroll a window by and - different clipping rectangles. - Check the window is scrolled correctly - -@SYMTestExpectedResults Window scrolls correctly to offsets and clipping - rectangles -*/ - case 16: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(10,10,200,200),TPoint(-6,-14)); - break; - case 17: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(10,50,210,200),TPoint(10,20)); - DoTestScroll(TRect(0,0,100,100),TPoint(-22,4)); - DoTestScroll(TRect(50,50,300,500),TPoint(-5,-2)); - break; - case 18: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(-1000,-10000,23456,1111),TPoint(-6,-14)); - break; - case 19: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(20,5,198,202),TPoint(-100,1)); - DoTestScroll(TRect(1,1,200,123),TPoint(2,1)); - DoTestScroll(TRect(23,23,200,400),TPoint(5,-1)); - break; - case 20: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(0,0,0,0),TPoint(-10,1)); - DoTestScroll(TRect(-1000,1,2000,123),TPoint(2,1)); - DoTestScroll(TRect(23,-23,200,40000),TPoint(5,-1)); - DoTestScroll(TRect(-1000,-10000,23456,1111),TPoint(-6,-14)); - break; - -/** -@SYMTestCaseID GRAPHICS-WSERV-0252 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Test window scrolling by different offsets and - clipping ans source rectangles - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Pass different offsets for scroll a window by and - different clipping and source rectangles. - Check the window is scrolled correctly - -@SYMTestExpectedResults Window scrolls correctly to offsets and source - and clipping rectangles -*/ - case 21: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0252")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(TPoint(1,1),iWinSize-TSize(1,1)),TPoint(-6,-14),TRect(10,10,50,50)); - DoTestScroll(TRect(TPoint(1,1),iWinSize-TSize(1,1)),TPoint(16,4),TRect(10,10,50,50)); - break; - case 22: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0252")); - iTest->LogSubTest(KScroll); - DoTestScroll(TRect(TPoint(10,100),iWinSize-TSize(0,10)),TPoint(26,22),TRect(iWinSize)); - DoTestScroll(TRect(iWinSize),TPoint(2,-1),TRect(-10,-10,50,50)); - break; -/** -@SYMTestCaseID GRAPHICS-WSERV-0253 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Out of memory window scrolling test - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Out of memory window scrolling test - -@SYMTestExpectedResults Out of memory scrolling is handled correctly -*/ - case 23: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0253")); - iTest->LogSubTest(KScroll); - OomScrolling(); - iTest->CloseAllPanicWindows(); - ++iTest->iState; - return; - case 24: - ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0253")); - ++iTest->iState; - ++iMode; - if (iMode==1) - { - delete iBaseScrollWin; - delete iTestScrollWin; - ConstructL(); - } - return; - default: - ((CTScrollStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); - ((CTScrollStep*)iStep)->CloseTMSGraphicsStep(); - TestComplete(); - break; - } - ((CTScrollStep*)iStep)->RecordTestResultL(); - FinishedRectScrolls(); - iDoCheck=ETrue; - } - -void CTScroll::DemoWindowScrollL() - //Function to see what scrolling does. - { - CBlankWindow* iWin; - iWin=new(ELeave) CBlankWindow(TRgb(64,64,224)); - iWin->SetUpL(TPoint(20,10),TSize(120,100),TheClient->iGroup,*TheClient->iGc); - iWin->BaseWin()->SetRequiredDisplayMode(EColor256); - iWin->Win()->SetBackgroundColor(TRgb(64,224,64)); - iWin->RealDraw(ETrue); - TheClient->WaitForRedrawsToFinish(); - iWin->DrawableWin()->Scroll(TPoint(8,5),TRect(20,20,100,80)); - TheClient->Flush(); - TheClient->WaitForRedrawsToFinish(); - TheClient->Flush(); - } - - -__WS_CONSTRUCT_STEP__(Scroll) -#pragma warning(default : 4710)