First public contribution.
1 // Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Window scroll tests
21 @internalComponent - Internal Symbian test code
26 #pragma warning(disable : 4710)
29 // Scroll window, used to test the Scroll() command
32 void DrawScrollWin(CBitmapContext *aGc, const TPoint &aOffset, const TSize &aSize)
35 TPoint drawBase(-10,-20);
36 TSize drawSize(aSize.iWidth-2*drawBase.iX,aSize.iHeight-2*drawBase.iY);
37 aGc->DrawRect(TRect(drawBase,drawBase+drawSize));
38 TPoint offset=drawBase+aOffset;
39 aGc->SetPenColor(TRgb::Gray4(2));
40 // aGc->SetDrawMode(CGraphicsContext::EDrawModeXOR);
41 aGc->DrawRect(TRect(offset+TPoint(13,23),offset+TPoint(22,32)));
43 for(xpos=0,xplus=2;xpos<drawSize.iWidth;xplus+=2,xpos+=xplus)
44 aGc->DrawLine(TPoint(xpos,0)+offset,TPoint(xpos,drawSize.iHeight)+offset);
45 for(TInt ypos=0,yplus=2;ypos<drawSize.iHeight;yplus+=2,ypos+=yplus)
46 aGc->DrawLine(TPoint(0,ypos)+offset,TPoint(drawSize.iWidth,ypos)+offset);
48 aGc->SetPenColor(TRgb(0,0,0));
49 aGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
50 TheClient->iWs.Flush();
51 for(xpos=0;xpos<drawSize.iWidth;xpos+=16)
53 aGc->DrawLine(TPoint(xpos,0)+offset,TPoint(drawSize.iWidth,xpos*drawSize.iHeight/drawSize.iWidth)+offset);
54 aGc->DrawLine(TPoint(xpos,0)+offset,TPoint(0,drawSize.iHeight-xpos*drawSize.iHeight/drawSize.iWidth)+offset);
55 aGc->DrawLine(TPoint(xpos,drawSize.iHeight)+offset,TPoint(drawSize.iWidth,drawSize.iHeight-xpos*drawSize.iHeight/drawSize.iWidth)+offset);
56 aGc->DrawLine(TPoint(xpos,drawSize.iHeight)+offset,TPoint(0,xpos*drawSize.iHeight/drawSize.iWidth)+offset);
61 CScrollWindowNorm::CScrollWindowNorm() : CTWin()
65 void DrawScrollWin(const TPoint &aOffset, const TSize &aSize)
67 ::DrawScrollWin(TheClient->iGc, aOffset, aSize);
70 void CScrollWindowNorm::Draw()
72 DrawScrollWin(iScrollTest->Offset(), Size());
75 void CScrollWindowNorm::SetScrollTest(CScrollTestBase *aScrollTest)
77 iScrollTest=aScrollTest;
81 // CScrollWindowBackedUp
84 CScrollWindowBackedUp::CScrollWindowBackedUp(TDisplayMode aDisplayMode) : CTBackedUpWin(aDisplayMode)
88 void CScrollWindowBackedUp::Draw()
90 DrawScrollWin(iScrollTest->Offset(), Size());
93 void CScrollWindowBackedUp::SetScrollTest(CScrollTestBase *aScrollTest)
95 iScrollTest=aScrollTest;
102 void CScrollTestBase::Reset()
108 void CScrollTestBase::DoInvalidate()
112 TPoint CScrollTestBase::Offset() const
117 CScrollTestBase::~CScrollTestBase()
123 void CScrollTestBaseNorm::ConstructL(const TPoint &aPos, const TSize &aSize)
125 iScrollWin=new(ELeave) CScrollWindowNorm();
126 iScrollWin->SetUpL(aPos, aSize, TheClient->iGroup, *TheClient->iGc);
127 iScrollWin->SetScrollTest(this);
128 iSize=iScrollWin->Size();
131 CScrollTestBaseNorm::~CScrollTestBaseNorm()
136 void CScrollTestBaseNorm::Redraw()
138 iScrollWin->Redraw();
141 void CScrollTestBaseNorm::Reset()
143 iScrollWin->Win()->Invalidate();
144 iScrollWin->Redraw();
145 CScrollTestBase::Reset();
148 CTDrawableWin *CScrollTestBaseNorm::ScrollWin() const
153 void CScrollTestBaseNorm::AdjustTestScrollRegion(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)
155 RRegion clipped_visible;
156 VisibleRegion(clipped_visible);
157 clipped_visible.ClipRect(aClipRect);
160 RRegion invalidate(aRect);
161 invalidate.SubRegion(clipped_visible);
162 invalidate.Offset(aOffset);
163 invalidate.ClipRect(aClipRect);
165 RRegion invalidate2(aRect);
166 invalidate2.ClipRect(aClipRect);
167 invalidate2.Intersect(iInvalid);
168 invalidate2.Offset(aOffset);
169 invalidate2.ClipRect(aClipRect);
171 RRegion validate(aRect);
172 validate.Intersect(clipped_visible);
173 validate.SubRegion(iInvalid);
174 validate.Offset(aOffset);
175 validate.ClipRect(aClipRect);
177 iInvalid.SubRegion(validate);
178 iInvalid.Union(invalidate);
179 iInvalid.Union(invalidate2);
181 VisibleRegion(visible);
182 iInvalid.Intersect(visible);
189 clipped_visible.Close();
194 void CScrollTestBaseNorm::VisibleRegion(RRegion &aRegion)
197 aRegion.AddRect(TRect(iSize));
199 child.iTl=iBlankWin->BaseWin()->InquireOffset(*ScrollWin()->BaseWin());
200 child.iBr=child.iTl+iBlankWin->BaseWin()->Size();
201 aRegion.SubRect(child);
204 void CScrollWindow1::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)
206 TheGc->Activate(*iScrollWin->DrawableWin());
207 RRegion region(aRect);
209 VisibleRegion(visible);
210 visible.ClipRect(aClipRect);
211 region.Intersect(visible);
213 region.SubRegion(iInvalid);
214 region.Offset(aOffset);
215 region.ClipRect(aClipRect);
216 TheGc->SetClippingRegion(region);
217 TheGc->CopyRect(aOffset,aRect);
219 AdjustTestScrollRegion(aClipRect, aOffset,aRect);
220 iInvalid.Union(TRegionFix<1>(TRect(aClipRect)));
224 void CScrollWindow1::DoTestScroll(const TPoint &aOffset)
226 DoTestScroll(TRect(TPoint(0,0),iSize), aOffset,TRect(-aOffset,iSize));
229 void CScrollWindow1::DoTestScroll(const TPoint &aOffset, const TRect &aRect)
231 DoTestScroll(TRect(TPoint(0,0),iSize), aOffset, aRect);
234 void CScrollWindow1::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)
236 DoTestScroll(aClipRect, aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY));
239 void CScrollWindow1::DoInvalidate()
241 for(TInt index=0;index<iInvalid.Count();index++)
242 iScrollWin->Invalidate(iInvalid[index]);
245 void CScrollWindow2::Reset()
247 CScrollTestBaseNorm::Reset();
251 CScrollWindow2::CScrollWindow2(CTScroll *aTest) : iTest(aTest)
255 void CScrollWindow2::Draw()
258 TheClient->iGc->SetClippingRegion(iInvalid);
261 TheClient->iGc->CancelClippingRegion();
264 void CScrollWindow2::DoTestScroll(const TPoint &aOffset)
266 AdjustTestScrollRegion(TRect(iSize), aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY));
268 iScrollWin->DrawableWin()->Scroll(aOffset);
271 void CScrollWindow2::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)
273 AdjustTestScrollRegion(aClipRect, aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY));
275 iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset);
278 void CScrollWindow2::DoTestScroll(const TPoint &aOffset, const TRect &aRect)
280 AdjustTestScrollRegion(TRect(iSize), aOffset, aRect);
282 iScrollWin->DrawableWin()->Scroll(aOffset, aRect);
285 void CScrollWindow2::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)
287 AdjustTestScrollRegion(aClipRect, aOffset, aRect);
289 iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset, aRect);
292 void CScrollWindow3::DrawScrollBit()
294 ::DrawScrollWin(iBitmapGc, iOffset, iSize);
297 void CScrollWindow3::Reset()
299 CScrollTestBase::Reset();
300 iBitmapGc->Clear(TRect(iSize));
305 CScrollWindow3::~CScrollWindow3()
308 delete iBitmapDevice;
312 void CScrollWindow3::ConstructL(const TPoint &aPos, const TSize &aSize)
314 CScrollTestBaseNorm::ConstructL(aPos,aSize);
315 iBitmap=new(ELeave) CFbsBitmap();
316 User::LeaveIfError(iBitmap->Create(iSize,EGray4));
317 iBitmapDevice=CFbsBitmapDevice::NewL(iBitmap);
318 User::LeaveIfError(iBitmapDevice->CreateContext(iBitmapGc));
322 void CScrollWindow3::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)
325 RRegion blank(aRect);
326 TRect clipRect(aClipRect);
327 clipRect.Intersection(TRect(iSize));
328 blank.SubRect(clipRect);
329 blank.Offset(aOffset);
330 blank.ClipRect(clipRect);
332 rect.Intersection(clipRect);
333 TRect rect2(clipRect);
334 rect2.Move(-aOffset);
335 rect.Intersection(rect2);
336 iBitmapGc->CopyRect(aOffset,rect);
337 iBitmapGc->SetClippingRegion(&blank);
338 iBitmapGc->Clear(TRect(iSize));
339 iBitmapGc->SetClippingRegion(NULL);
343 void CScrollWindow3::DoTestScroll(const TPoint &aOffset)
345 DoTestScroll(TRect(iSize), aOffset,TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY));
348 void CScrollWindow3::DoTestScroll(const TPoint &aOffset, const TRect &aRect)
350 DoTestScroll(TRect(iSize), aOffset, aRect);
353 void CScrollWindow3::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)
355 DoTestScroll(aClipRect, aOffset, TRect(-aOffset.iX,-aOffset.iY,iSize.iWidth-aOffset.iX, iSize.iHeight-aOffset.iY));
358 void CScrollWindow3::Draw()
360 TheGc->BitBlt(TPoint(),iBitmap);
363 void CScrollWindow3::DoInvalidate()
365 RWindow win=*iScrollWin->Win();
368 TheGc->Activate(win);
374 void CScrollWindow4::ConstructL(const TPoint &aPos, const TSize &aSize)
376 iScrollWin=new(ELeave) CScrollWindowBackedUp(EGray4);
377 iScrollWin->SetUpL(aPos, aSize, TheClient->iGroup, *TheClient->iGc);
378 iScrollWin->SetScrollTest(this);
379 iSize=iScrollWin->Size();
380 TheClient->iGc->Activate(*iScrollWin->DrawableWin());
381 TheClient->iGc->Clear();
382 DrawScrollWin(TPoint(), iSize);
383 TheClient->iGc->Deactivate();
386 CScrollWindow4::~CScrollWindow4()
391 void CScrollWindow4::Redraw()
395 void CScrollWindow4::Reset()
397 TheClient->iGc->Activate(*iScrollWin->DrawableWin());
398 TheClient->iGc->Clear();
399 DrawScrollWin(TPoint(), iSize);
400 TheClient->iGc->Deactivate();
401 CScrollTestBase::Reset();
404 void CScrollWindow4::DoTestScroll(const TPoint &aOffset)
406 iScrollWin->DrawableWin()->Scroll(aOffset);
410 void CScrollWindow4::DoTestScroll(const TPoint &aOffset, const TRect &aRect)
412 iScrollWin->DrawableWin()->Scroll(aOffset, aRect);
416 void CScrollWindow4::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)
418 iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset);
422 void CScrollWindow4::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)
424 iScrollWin->DrawableWin()->Scroll(aClipRect, aOffset, aRect);
428 CTDrawableWin *CScrollWindow4::ScrollWin() const
435 CTScroll::CTScroll(CTestStep* aStep):
436 CTWsGraphicsBase(aStep)
440 CTScroll::~CTScroll()
442 BaseWin->SetVisible(ETrue);
443 TestWin->SetVisible(ETrue);
444 delete iBaseScrollWin;
445 delete iTestScrollWin;
448 void CTScroll::ConstructL()
450 BaseWin->SetVisible(EFalse);
451 TestWin->SetVisible(EFalse);
454 TSize screenSize=TheClient->iGroup->Size();
455 TInt winWidth=(screenSize.iWidth/3)-10;
456 TInt winHeight=screenSize.iHeight-10;
457 TInt winBaseX=(screenSize.iWidth/3);
460 iBaseScrollWin=new(ELeave) CScrollWindow1();
461 iTestScrollWin=new(ELeave) CScrollWindow2(this);
465 iBaseScrollWin=new(ELeave) CScrollWindow3();
466 iTestScrollWin=new(ELeave) CScrollWindow4();
468 iWinSize=TSize(winWidth,winHeight);
469 iBaseScrollWin->ConstructL(TPoint(winBaseX+5,5),iWinSize);
470 iTestScrollWin->ConstructL(TPoint(winBaseX+winWidth+15,5),iWinSize);
472 iBaseScrollWin->iBlankWin=new(ELeave) CTBlankWindow();
473 iBaseScrollWin->iBlankWin->SetUpL(iBaseScrollWin->ScrollWin()->BaseWin()->InquireOffset(*TheClient->iGroup->GroupWin())+TPoint(winWidth>>2,winHeight>>2),TSize(winWidth>>2,winHeight>>1),TheClient->iGroup,*TheClient->iGc);
474 iBaseScrollWin->iBlankWin->BlankWin()->SetShadowHeight(2);
476 iTestScrollWin->iBlankWin=new(ELeave) CTBlankWindow();
477 iTestScrollWin->iBlankWin->SetUpL(iTestScrollWin->ScrollWin()->BaseWin()->InquireOffset(*TheClient->iGroup->GroupWin())+TPoint(winWidth>>2,winHeight>>2),TSize(winWidth>>2,winHeight>>1),TheClient->iGroup,*TheClient->iGc);
480 void CTScroll::CheckScrollWindows()
482 CheckRect(iBaseScrollWin->ScrollWin(),iTestScrollWin->ScrollWin(),TRect(iBaseScrollWin->ScrollWin()->Size()),_L("CTScroll::CheckScrollWindows()"));
485 void CTScroll::DoTestScroll(const TPoint &aOffset)
487 iTestScrollWin->DoTestScroll(aOffset);
488 iBaseScrollWin->DoTestScroll(aOffset);
491 void CTScroll::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset)
493 iTestScrollWin->DoTestScroll(aClipRect,aOffset);
494 iBaseScrollWin->DoTestScroll(aClipRect,aOffset);
497 void CTScroll::DoTestScroll(const TPoint &aOffset, const TRect &aRect)
499 iTestScrollWin->DoTestScroll(aOffset,aRect);
500 iBaseScrollWin->DoTestScroll(aOffset,aRect);
503 void CTScroll::DoTestScroll(const TRect &aClipRect, const TPoint &aOffset, const TRect &aRect)
505 iTestScrollWin->DoTestScroll(aClipRect,aOffset,aRect);
506 iBaseScrollWin->DoTestScroll(aClipRect,aOffset,aRect);
509 void CTScroll::FinishedRectScrolls()
511 iBaseScrollWin->DoInvalidate();
514 void CTScroll::CheckOomScroll()
516 TheClient->iWs.HeapSetFail(RHeap::ENone,0);
517 FinishedRectScrolls();
518 iTestScrollWin->Redraw();
519 iBaseScrollWin->Redraw();
520 // if (iMode!=1) // Out of memory scrolling of backed up windows can not work 100% when out of memory
521 // CheckScrollWindows(); // Redraw window code can't check these cases properly yet
524 void CTScroll::OomScrolling()
526 iTestScrollWin->iBlankWin->BaseWin()->SetShadowHeight(0);
527 iBaseScrollWin->iBlankWin->BaseWin()->SetShadowHeight(0);
528 iTestScrollWin->ScrollWin()->BaseWin()->SetShadowHeight(0);
529 iTestScrollWin->Redraw();
530 iBaseScrollWin->Redraw();
531 for(TInt count=1;count<20;count++)
533 TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count);
534 DoTestScroll(TPoint(50,0));
537 TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count);
538 iTestScrollWin->Reset();
539 iBaseScrollWin->Reset();
540 DoTestScroll(TPoint(-6,-14),TRect(20,20,100,50));
543 TheClient->iWs.HeapSetFail(RHeap::EDeterministic,count);
544 iTestScrollWin->Reset();
545 iBaseScrollWin->Reset();
546 DoTestScroll(TRect(TPoint(1,1),iWinSize-TSize(1,1)),TPoint(50,0),TRect(10,10,50,50));
551 void CTScroll::RunTestCaseL(TInt /*aCurTestCase*/)
553 _LIT(KScroll,"Scroll");
554 //if (iTest->iState==0) iTest->iState=22;
557 if (iMode==1) // The test code does not mimic scrolling to a non-backed up window properly
559 TheClient->iWs.Flush();
560 TheClient->iWs.Finish();
561 CheckScrollWindows();
563 iTestScrollWin->Reset();
564 iBaseScrollWin->Reset();
565 TheClient->iWs.Flush();
570 ((CTScrollStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
571 switch(iTest->iState)
574 @SYMTestCaseID GRAPHICS-WSERV-0249
578 @SYMTestCaseDesc Test window scrolling by different offsets
580 @SYMTestPriority High
582 @SYMTestStatus Implemented
584 @SYMTestActions Pass different offsets for scrolling a window by and
585 check the window is scrolled correctly
587 @SYMTestExpectedResults Window scrolls correctly to offsets
590 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
591 //DemoWindowScroll();
592 iTest->LogSubTest(KScroll);
593 DoTestScroll(TPoint(6,0));
594 DoTestScroll(TPoint(-6,-14));
595 DoTestScroll(TPoint(-6,-14));
596 DoTestScroll(TPoint(0,10));
597 DoTestScroll(TPoint(0,0));
598 DoTestScroll(TPoint(10,23));
601 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
602 iTest->LogSubTest(KScroll);
603 DoTestScroll(TPoint(50,0));
606 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
607 iTest->LogSubTest(KScroll);
608 DoTestScroll(TPoint(0,33));
611 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
612 iTest->LogSubTest(KScroll);
613 DoTestScroll(TPoint(-10,0));
616 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
617 iTest->LogSubTest(KScroll);
618 DoTestScroll(TPoint(0,-13));
621 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
622 iTest->LogSubTest(KScroll);
623 DoTestScroll(TPoint(0,0));
626 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
627 iTest->LogSubTest(KScroll);
628 DoTestScroll(TPoint(-234,-1400));
631 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
632 iTest->LogSubTest(KScroll);
633 DoTestScroll(TPoint(-69,15));
636 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
637 iTest->LogSubTest(KScroll);
638 DoTestScroll(TPoint(-234,-1400));
639 DoTestScroll(TPoint(233,1401));
642 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0249"));
643 iTest->LogSubTest(KScroll);
644 DoTestScroll(TPoint(10,-1));
645 DoTestScroll(TPoint(11,-10));
646 DoTestScroll(TPoint(-5,-40));
647 DoTestScroll(TPoint(0,50));
651 @SYMTestCaseID GRAPHICS-WSERV-0250
655 @SYMTestCaseDesc Test window scrolling by different offsets and
658 @SYMTestPriority High
660 @SYMTestStatus Implemented
662 @SYMTestActions Pass different offsets for scroll a window by and
663 different source rectangles.
664 Check the window is scrolled correctly
666 @SYMTestExpectedResults Window scrolls correctly to offsets and source
670 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250"));
671 iTest->LogSubTest(KScroll);
672 DoTestScroll(TPoint(-6,-14),TRect(20,20,100,50));
673 DoTestScroll(TPoint(-6,-14),TRect(20,20,100,50));
674 DoTestScroll(TPoint(-6,-14),TRect(40,10,130,130));
677 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250"));
678 iTest->LogSubTest(KScroll);
679 DoTestScroll(TPoint(10,-1),TRect(20,20,21,21));
682 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250"));
683 iTest->LogSubTest(KScroll);
684 DoTestScroll(TPoint(-20,-14),TRect(10,10,10,10));
687 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250"));
688 iTest->LogSubTest(KScroll);
689 DoTestScroll(TPoint(-6,-14),TRect(20,20,200,300));
690 DoTestScroll(TPoint(10,-24),TRect(20,20,200,300));
691 DoTestScroll(TPoint(3,12),TRect(20,20,200,300));
692 DoTestScroll(TPoint(-20,19),TRect(20,20,200,300));
695 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0250"));
696 iTest->LogSubTest(KScroll);
697 DoTestScroll(TPoint(-6,-14),TRect(20000,200000,30000,300000));
698 DoTestScroll(TPoint(10,-24),TRect(20,20,-200,-300));
699 DoTestScroll(TPoint(10,-24),TRect(20,20,-200,300));
700 DoTestScroll(TPoint(10,-24),TRect(20,20,200,-300));
701 DoTestScroll(TPoint(3,12),TRect(-100,-200,1000,2000));
702 DoTestScroll(TPoint(-20,19),TRect(0,0,0,0));
706 @SYMTestCaseID GRAPHICS-WSERV-0251
710 @SYMTestCaseDesc Test window scrolling by different offsets and
713 @SYMTestPriority High
715 @SYMTestStatus Implemented
717 @SYMTestActions Pass different offsets for scroll a window by and
718 different clipping rectangles.
719 Check the window is scrolled correctly
721 @SYMTestExpectedResults Window scrolls correctly to offsets and clipping
725 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251"));
726 iTest->LogSubTest(KScroll);
727 DoTestScroll(TRect(10,10,200,200),TPoint(-6,-14));
730 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251"));
731 iTest->LogSubTest(KScroll);
732 DoTestScroll(TRect(10,50,210,200),TPoint(10,20));
733 DoTestScroll(TRect(0,0,100,100),TPoint(-22,4));
734 DoTestScroll(TRect(50,50,300,500),TPoint(-5,-2));
737 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251"));
738 iTest->LogSubTest(KScroll);
739 DoTestScroll(TRect(-1000,-10000,23456,1111),TPoint(-6,-14));
742 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251"));
743 iTest->LogSubTest(KScroll);
744 DoTestScroll(TRect(20,5,198,202),TPoint(-100,1));
745 DoTestScroll(TRect(1,1,200,123),TPoint(2,1));
746 DoTestScroll(TRect(23,23,200,400),TPoint(5,-1));
749 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0251"));
750 iTest->LogSubTest(KScroll);
751 DoTestScroll(TRect(0,0,0,0),TPoint(-10,1));
752 DoTestScroll(TRect(-1000,1,2000,123),TPoint(2,1));
753 DoTestScroll(TRect(23,-23,200,40000),TPoint(5,-1));
754 DoTestScroll(TRect(-1000,-10000,23456,1111),TPoint(-6,-14));
758 @SYMTestCaseID GRAPHICS-WSERV-0252
762 @SYMTestCaseDesc Test window scrolling by different offsets and
763 clipping ans source rectangles
765 @SYMTestPriority High
767 @SYMTestStatus Implemented
769 @SYMTestActions Pass different offsets for scroll a window by and
770 different clipping and source rectangles.
771 Check the window is scrolled correctly
773 @SYMTestExpectedResults Window scrolls correctly to offsets and source
774 and clipping rectangles
777 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0252"));
778 iTest->LogSubTest(KScroll);
779 DoTestScroll(TRect(TPoint(1,1),iWinSize-TSize(1,1)),TPoint(-6,-14),TRect(10,10,50,50));
780 DoTestScroll(TRect(TPoint(1,1),iWinSize-TSize(1,1)),TPoint(16,4),TRect(10,10,50,50));
783 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0252"));
784 iTest->LogSubTest(KScroll);
785 DoTestScroll(TRect(TPoint(10,100),iWinSize-TSize(0,10)),TPoint(26,22),TRect(iWinSize));
786 DoTestScroll(TRect(iWinSize),TPoint(2,-1),TRect(-10,-10,50,50));
789 @SYMTestCaseID GRAPHICS-WSERV-0253
793 @SYMTestCaseDesc Out of memory window scrolling test
795 @SYMTestPriority High
797 @SYMTestStatus Implemented
799 @SYMTestActions Out of memory window scrolling test
801 @SYMTestExpectedResults Out of memory scrolling is handled correctly
804 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0253"));
805 iTest->LogSubTest(KScroll);
807 iTest->CloseAllPanicWindows();
811 ((CTScrollStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0253"));
816 delete iBaseScrollWin;
817 delete iTestScrollWin;
822 ((CTScrollStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
823 ((CTScrollStep*)iStep)->CloseTMSGraphicsStep();
827 ((CTScrollStep*)iStep)->RecordTestResultL();
828 FinishedRectScrolls();
832 void CTScroll::DemoWindowScrollL()
833 //Function to see what scrolling does.
836 iWin=new(ELeave) CBlankWindow(TRgb(64,64,224));
837 iWin->SetUpL(TPoint(20,10),TSize(120,100),TheClient->iGroup,*TheClient->iGc);
838 iWin->BaseWin()->SetRequiredDisplayMode(EColor256);
839 iWin->Win()->SetBackgroundColor(TRgb(64,224,64));
840 iWin->RealDraw(ETrue);
841 TheClient->WaitForRedrawsToFinish();
842 iWin->DrawableWin()->Scroll(TPoint(8,5),TRect(20,20,100,80));
844 TheClient->WaitForRedrawsToFinish();
849 __WS_CONSTRUCT_STEP__(Scroll)
850 #pragma warning(default : 4710)