windowing/windowserver/test/tauto/TBLANK.CPP
author hgs
Tue, 22 Jun 2010 15:21:29 +0300
changeset 103 2717213c588a
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
hgs
parents:
diff changeset
     1
// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
// Test blank windows
hgs
parents:
diff changeset
    15
// 
hgs
parents:
diff changeset
    16
//
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
/**
hgs
parents:
diff changeset
    19
 @file
hgs
parents:
diff changeset
    20
 @test
hgs
parents:
diff changeset
    21
 @internalComponent - Internal Symbian test code
hgs
parents:
diff changeset
    22
*/
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "TBLANK.H"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
CBaseWindow::CBaseWindow() : CTWin()
hgs
parents:
diff changeset
    29
	{}
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
void CBaseWindow::ConstructL(CTWinBase &parent)
hgs
parents:
diff changeset
    32
	{
hgs
parents:
diff changeset
    33
	CTWin::ConstructL(parent);
hgs
parents:
diff changeset
    34
	}
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
void CBaseWindow::Draw()
hgs
parents:
diff changeset
    37
	{
hgs
parents:
diff changeset
    38
	iGc->SetBrushColor(iRgb);
hgs
parents:
diff changeset
    39
	iGc->Clear();
hgs
parents:
diff changeset
    40
	}
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
void CBaseWindow::SetColor(const TRgb &aRgb)
hgs
parents:
diff changeset
    43
	{
hgs
parents:
diff changeset
    44
	iRgb=aRgb;
hgs
parents:
diff changeset
    45
	iGc->Activate(iWin);
hgs
parents:
diff changeset
    46
	Draw();
hgs
parents:
diff changeset
    47
	iGc->Deactivate();
hgs
parents:
diff changeset
    48
	}
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
//
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
TInt DestructCallbackBlank(TAny *aParam)
hgs
parents:
diff changeset
    53
	{
hgs
parents:
diff changeset
    54
	((CTBlank *)aParam)->doDestruct();
hgs
parents:
diff changeset
    55
	return(0);
hgs
parents:
diff changeset
    56
	}
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
CTBlank::CTBlank(CTestStep* aStep):
hgs
parents:
diff changeset
    60
	CTWsGraphicsBase(aStep)
hgs
parents:
diff changeset
    61
	{
hgs
parents:
diff changeset
    62
	INFO_PRINTF1(_L("Testing TBlank functions"));
hgs
parents:
diff changeset
    63
	}
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
void CTBlank::doDestruct()
hgs
parents:
diff changeset
    66
	{
hgs
parents:
diff changeset
    67
	BaseWin->SetVisible(ETrue);
hgs
parents:
diff changeset
    68
	TestWin->SetVisible(ETrue);
hgs
parents:
diff changeset
    69
	delete iBaseWin;
hgs
parents:
diff changeset
    70
	delete iTestWin;
hgs
parents:
diff changeset
    71
	iBaseWin = NULL;
hgs
parents:
diff changeset
    72
	iTestWin = NULL;
hgs
parents:
diff changeset
    73
//	CActiveScheduler::Stop();
hgs
parents:
diff changeset
    74
	}
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
CTBlank::~CTBlank()
hgs
parents:
diff changeset
    77
	{
hgs
parents:
diff changeset
    78
	TCallBack callBack(DestructCallbackBlank,this);
hgs
parents:
diff changeset
    79
	TheClient->SetRedrawCancelFunction(callBack);
hgs
parents:
diff changeset
    80
//	CActiveScheduler::Start();
hgs
parents:
diff changeset
    81
	}
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
void CTBlank::ConstructL()
hgs
parents:
diff changeset
    84
	{
hgs
parents:
diff changeset
    85
	BaseWin->SetVisible(EFalse);
hgs
parents:
diff changeset
    86
	TestWin->SetVisible(EFalse);
hgs
parents:
diff changeset
    87
	}
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
void CTBlank::SetColor(const TRgb &aRgb)
hgs
parents:
diff changeset
    90
	{
hgs
parents:
diff changeset
    91
	iTestWin->SetColor(aRgb);
hgs
parents:
diff changeset
    92
	iBaseWin->SetColor(aRgb);
hgs
parents:
diff changeset
    93
	}
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
void CTBlank::InvalidateTestWin(const TRect &aRect)
hgs
parents:
diff changeset
    96
	{
hgs
parents:
diff changeset
    97
	TRect rect(aRect);
hgs
parents:
diff changeset
    98
	rect.Move(iTestWin->BaseWin()->InquireOffset(*(TheClient->iGroup->WinTreeNode())));
hgs
parents:
diff changeset
    99
	CTUser::Splat(TheClient, rect,TRgb(0,0,0));
hgs
parents:
diff changeset
   100
	}
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
void CTBlank::CheckBlankWindows()
hgs
parents:
diff changeset
   103
	{
hgs
parents:
diff changeset
   104
	User::Heap().Check();
hgs
parents:
diff changeset
   105
	CheckRect(iBaseWin,iTestWin,TRect(BaseWin->Size()),_L("CheckBlankWindows - CheckRect(iBaseWin,iTestWin,TRect(BaseWin->Size()) failed"));
hgs
parents:
diff changeset
   106
	}
hgs
parents:
diff changeset
   107
hgs
parents:
diff changeset
   108
void CTBlank::RunTestCaseL(TInt /*aCurTestCase*/)
hgs
parents:
diff changeset
   109
	{
hgs
parents:
diff changeset
   110
	TSize screenSize;
hgs
parents:
diff changeset
   111
	TInt winWidth;
hgs
parents:
diff changeset
   112
	TInt winHeight;
hgs
parents:
diff changeset
   113
	((CTBlankStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
	switch(++iTest->iState)
hgs
parents:
diff changeset
   116
		{
hgs
parents:
diff changeset
   117
/**
hgs
parents:
diff changeset
   118
@SYMTestCaseID		GRAPHICS-WSERV-0022
hgs
parents:
diff changeset
   119
hgs
parents:
diff changeset
   120
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
@SYMTestCaseDesc    Create a base and test blank windows and invalidate an
hgs
parents:
diff changeset
   123
					area of the test window
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
@SYMTestPriority    High
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
@SYMTestActions     Two windows are created and an area of a window is 
hgs
parents:
diff changeset
   130
					invalidated
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
@SYMTestExpectedResults Windows create and invalidate without error
hgs
parents:
diff changeset
   133
*/
hgs
parents:
diff changeset
   134
	case 1:
hgs
parents:
diff changeset
   135
		((CTBlankStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0022"));
hgs
parents:
diff changeset
   136
		iTest->LogSubTest(_L("Blank 1"));
hgs
parents:
diff changeset
   137
		screenSize=TheClient->iGroup->Size();
hgs
parents:
diff changeset
   138
		winWidth=(screenSize.iWidth/3)-10;
hgs
parents:
diff changeset
   139
		winHeight=screenSize.iHeight-10;
hgs
parents:
diff changeset
   140
		iBaseWin=new(ELeave) CBaseWindow();
hgs
parents:
diff changeset
   141
		iBaseWin->SetUpL(TPoint(screenSize.iWidth/3+5,5),TSize(winWidth,winHeight),TheClient->iGroup,*TheClient->iGc);
hgs
parents:
diff changeset
   142
		iBaseWin->SetColor(TRgb(255,255,255));
hgs
parents:
diff changeset
   143
		iTestWin=new(ELeave) CTBlankWindow();	
hgs
parents:
diff changeset
   144
		iTestWin->SetUpL(TPoint(screenSize.iWidth/3*2+5,5),TSize(winWidth,winHeight),TheClient->iGroup,*TheClient->iGc);				
hgs
parents:
diff changeset
   145
		SetColor(TRgb::Gray4(2));
hgs
parents:
diff changeset
   146
		InvalidateTestWin(TRect(10,10,50,50));
hgs
parents:
diff changeset
   147
		break;
hgs
parents:
diff changeset
   148
/**
hgs
parents:
diff changeset
   149
@SYMTestCaseID		GRAPHICS-WSERV-0023
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
@SYMTestCaseDesc    Check that a base blank window is the same as a
hgs
parents:
diff changeset
   154
					test window which has had an area invalidated
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
@SYMTestPriority    High
hgs
parents:
diff changeset
   157
hgs
parents:
diff changeset
   158
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
@SYMTestActions     Check the test window is the same as the base window 
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
@SYMTestExpectedResults The windows are identical
hgs
parents:
diff changeset
   163
*/
hgs
parents:
diff changeset
   164
	case 2:
hgs
parents:
diff changeset
   165
		((CTBlankStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0023"));
hgs
parents:
diff changeset
   166
		iTest->LogSubTest(_L("Check Blank 1"));
hgs
parents:
diff changeset
   167
		CheckBlankWindows();
hgs
parents:
diff changeset
   168
		break;
hgs
parents:
diff changeset
   169
/**
hgs
parents:
diff changeset
   170
@SYMTestCaseID		GRAPHICS-WSERV-0024
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   173
hgs
parents:
diff changeset
   174
@SYMTestCaseDesc    Set a color and invalidate two areas of a test blank
hgs
parents:
diff changeset
   175
					window
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
@SYMTestPriority    High
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
@SYMTestActions     Invalidate two areas of a test blank window 
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
@SYMTestExpectedResults The window areas are invalidated without error
hgs
parents:
diff changeset
   184
*/
hgs
parents:
diff changeset
   185
	case 3:
hgs
parents:
diff changeset
   186
		((CTBlankStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0024"));
hgs
parents:
diff changeset
   187
		iTest->LogSubTest(_L("Blank 2"));
hgs
parents:
diff changeset
   188
		SetColor(TRgb(0,0,0));
hgs
parents:
diff changeset
   189
		InvalidateTestWin(TRect(1,1,150,20));
hgs
parents:
diff changeset
   190
		InvalidateTestWin(TRect(10,-10,20,90));
hgs
parents:
diff changeset
   191
		break;
hgs
parents:
diff changeset
   192
/**
hgs
parents:
diff changeset
   193
@SYMTestCaseID		GRAPHICS-WSERV-0025
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   196
hgs
parents:
diff changeset
   197
@SYMTestCaseDesc    Check a base blank window is identical to a test 
hgs
parents:
diff changeset
   198
					blank window which has had two areas invalidated
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
@SYMTestPriority    High
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
@SYMTestActions     Check the test window is the same as the base window 
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
@SYMTestExpectedResults The windows are identical
hgs
parents:
diff changeset
   207
*/
hgs
parents:
diff changeset
   208
	case 4:
hgs
parents:
diff changeset
   209
		((CTBlankStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0025"));
hgs
parents:
diff changeset
   210
		iTest->LogSubTest(_L("Check Blank 2"));
hgs
parents:
diff changeset
   211
		CheckBlankWindows();
hgs
parents:
diff changeset
   212
		break;
hgs
parents:
diff changeset
   213
/**
hgs
parents:
diff changeset
   214
@SYMTestCaseID		GRAPHICS-WSERV-0026
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
@SYMDEF             DEF081259
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
@SYMTestCaseDesc    Set a color and invalidate three areas of a test blank
hgs
parents:
diff changeset
   219
					window
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
@SYMTestPriority    High
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
@SYMTestActions     Invalidate three areas of a test blank window 
hgs
parents:
diff changeset
   226
hgs
parents:
diff changeset
   227
@SYMTestExpectedResults The window areas are invalidated without error
hgs
parents:
diff changeset
   228
*/
hgs
parents:
diff changeset
   229
	case 5:
hgs
parents:
diff changeset
   230
		((CTBlankStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0026"));
hgs
parents:
diff changeset
   231
		iTest->LogSubTest(_L("Blank 3"));
hgs
parents:
diff changeset
   232
		SetColor(TRgb(255,255,255));
hgs
parents:
diff changeset
   233
		InvalidateTestWin(TRect(-1000,100,1000,120));
hgs
parents:
diff changeset
   234
		InvalidateTestWin(TRect(1,1,150,20));
hgs
parents:
diff changeset
   235
		InvalidateTestWin(TRect(10,30,20,60));
hgs
parents:
diff changeset
   236
		break;
hgs
parents:
diff changeset
   237
/**
hgs
parents:
diff changeset
   238
@SYMTestCaseID		GRAPHICS-WSERV-0027
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
@@SYMDEF            DEF081259
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
@SYMTestCaseDesc    Check a base blank window is identical to a test 
hgs
parents:
diff changeset
   243
					blank window which has had three areas invalidated
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
@SYMTestPriority    High
hgs
parents:
diff changeset
   246
hgs
parents:
diff changeset
   247
@SYMTestStatus      Implemented
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
@SYMTestActions     Check the test window is the same as the base window 
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
@SYMTestExpectedResults The windows are identical
hgs
parents:
diff changeset
   252
*/
hgs
parents:
diff changeset
   253
	case 6:
hgs
parents:
diff changeset
   254
		((CTBlankStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0027"));
hgs
parents:
diff changeset
   255
		iTest->LogSubTest(_L("Check Blank 3"));
hgs
parents:
diff changeset
   256
		CheckBlankWindows();
hgs
parents:
diff changeset
   257
		delete iBaseWin;
hgs
parents:
diff changeset
   258
		delete iTestWin;
hgs
parents:
diff changeset
   259
		iBaseWin = NULL;
hgs
parents:
diff changeset
   260
		iTestWin = NULL;
hgs
parents:
diff changeset
   261
		break;	
hgs
parents:
diff changeset
   262
	case 7:
hgs
parents:
diff changeset
   263
		((CTBlankStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
hgs
parents:
diff changeset
   264
		((CTBlankStep*)iStep)->CloseTMSGraphicsStep();
hgs
parents:
diff changeset
   265
		TestComplete();
hgs
parents:
diff changeset
   266
		break;
hgs
parents:
diff changeset
   267
		}
hgs
parents:
diff changeset
   268
	((CTBlankStep*)iStep)->RecordTestResultL();
hgs
parents:
diff changeset
   269
	}
hgs
parents:
diff changeset
   270
hgs
parents:
diff changeset
   271
__WS_CONSTRUCT_STEP__(Blank)