//
// Copyright (c) 2005-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
//! @SYMTestSuiteName  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi
//! @SYMScriptTestEnvironment This test script requires a basic ROM.

///////////////////////////////////////////////////////////////////////////////
// GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi.script
//
// Tests all public elements of the CFbsScreenDevice class
// as a means of confidence that the API works as expected.
//
// The purpose is to provide a regression test suite of PublishedAll APIs for
// CFbsScreenDevice related classes.
// Negative testing is performed to confirm that correct errors are returned
// when incorrect parameters are given.
//
// The tests are fully automated.
///////////////////////////////////////////////////////////////////////////////


LOAD_SUITE      T_GraphicsBitGDIAPI
DELAY           1000

// ****************************************************************************
// Class Name		CFbsScreenDevice
// ****************************************************************************

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0001
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0001
//! @SYMAPI                 	CFbsScreenDevice::NewL(const TDesC{ref}, TDisplayMode)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Create CFbsScreenDevice object by using NewL(const TDesC{ref}, TDisplayMode) and destroy it.
//! @SYMTestActions         	1.Create CFbsScreenDevice Object by using TDesC{ref} and TDisplayMode params.
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	CFbsScreenDevice was created without causing panic.
//! @SYMTestType            	CIT

    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice 	fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 	rfbssession
        COMMAND					rfbssession			Constructor
        COMMAND					rfbssession			Connect
        COMMAND             	fbsscrdev           NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0001-NewL_command03
        COMMAND             	fbsscrdev			~
        COMMAND					rfbssession			Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0001

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0002
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0002
//! @SYMAPI                 	CFbsScreenDevice::NewL(const TDesC{ref}, TDisplayMode)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Negtive case, create the CFbsScreenDevice object with a bad TDisplayMode arguments.
//! @SYMTestActions         	1.create CFbsScreenDevice object with a bad TDisplayMode.
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	NewL(const TDesC{ref}, TDisplayMode) is called with KErrNotSupported returned.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice 	fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 	rfbssession
        COMMAND					rfbssession			Constructor
        COMMAND					rfbssession			Connect
        COMMAND  !Error=-5  	fbsscrdev           NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0002-NewL_command03        
        COMMAND             	fbsscrdev			~
        COMMAND					rfbssession			Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0002

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0003
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0003
//! @SYMAPI                 	CFbsScreenDevice::NewL(const TDesC{ref}, TDisplayMode, TRgb)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Create CFbsScreenDevice object by using NewL(const TDesC{ref}, TDisplayMode, TRgb) and destory it.
//! @SYMTestActions         	1.Create CFbsScreenDevice object by NewL(const TDesC{ref}, TDisplayMode, TRgb).
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	CFbsScreenDevice was created without causing panic.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice 	fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 	rfbssession
        COMMAND					rfbssession			Constructor
        COMMAND					rfbssession			Connect
        COMMAND             	fbsscrdev           NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0003-NewL_command03
        COMMAND             	fbsscrdev			~
        COMMAND					rfbssession			Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0003

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0004
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0004
//! @SYMAPI                 	CFbsScreenDevice::NewL(const TDesC{ref}, TDisplayMode, TRgb)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Negtive case, create CFbsScreenDevice object with bad TDisplayMode arguments
//! @SYMTestActions        	 	1.create CFbsScreenDevice object with a bad TDisplayMode.
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	NewL(const TDesC{ref}, TDisplayMode, TRgb) is called with KErrNotSupported returned.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice 	fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 	rfbssession
        COMMAND					rfbssession			Constructor
        COMMAND					rfbssession			Connect
        COMMAND  !Error=-5  	fbsscrdev           NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0004-NewL_command03
        COMMAND					rfbssession			Disconnect
        COMMAND             	fbsscrdev			~
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0004

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0005
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0005
//! @SYMAPI                 	CFbsScreenDevice::NewL(TInt, TDisplayMode)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Create CFbsScreenDevice object by using NewL(TInt, TDisplayMode) method and destroy it.
//! @SYMTestActions         	1.create CfbsScreenDevice object by NewL(TInt, TDisplayMode) method.
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	CFbsScreenDevice was created without causing panic.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0005-NewL_command03
        COMMAND             	fbsscrdev	     ~
        COMMAND					rfbssession		 Disconnect       
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0005

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0006
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0006
//! @SYMAPI                 	CFbsScreenDevice::NewL(TInt, TDisplayMode)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Negtive case, create CFbsScreenDevice object with bad aScreenNo argument
//! @SYMTestActions         	1.create CFbsScreenDevice object with bad aScreenNo argument.
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	NewL(TInt, TDisplayMode) is called with KErrNotSupported returned.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT      	 	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND  !Error=-5  	fbsscrdev        NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0006-NewL_command03
        COMMAND					rfbssession		 Disconnect
        COMMAND             	fbsscrdev	     ~
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0006

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0007
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0007
//! @SYMAPI                 	CFbsScreenDevice::NewL(TInt, TDisplayMode)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc       	 	Negtive case, create CFbsScreenDevice object with bad aDispMode argument
//! @SYMTestActions         	1.create CFbsScreenDevice object with bad aDispMode argument.
//!								2.destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	NewL(TInt, TDisplayMode) is called with KErrNotSupported returned.
//! @SYMTestType           	 	CIT
    START_TEST_BLOCK   			10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT   	    RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND  !Error=-5	  	fbsscrdev        NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0007-NewL_command03
        COMMAND					rfbssession		 Disconnect
        COMMAND     	        fbsscrdev	     ~
     END_TEST_BLOCK
END_TESTCASE		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0007

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0008
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0008
//! @SYMAPI                     CFbsScreenDevice::~CFbsScreenDevice()
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            03/12/2008
//! @SYMTestCaseDesc            Create a CFbsScreenDevice attached to a RFbsSession and destruct it.
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Destruct the CFbsScreenDevice object
//!                             4. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     CFbsScreenDevice was destructed without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0008-NewL_command03
        COMMAND             	fbsscrdev	     ~
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK   
END_TESTCASE            GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0008

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0009
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0009
//! @SYMAPI                 	CFbsScreenDevice::HardwareBitmap()
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Create a CFbsScreenDevice object and get the handle from HardwareBitmap() function.
//! @SYMTestActions         	1.Create a CFbsScreenDevice attached to RFbsSession.
//!								2.Get the handle from CFbsScreenDevice::HardwareBitmap() function.
//!								3.Destroy all objects.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	HardwareBitmap() is called without panic.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL     			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0009-NewL_command03
        COMMAND             	fbsscrdev		 HardwareBitmap 
        COMMAND             	fbsscrdev		 ~
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0009

START_TESTCASE 		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0010
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0010
//! @SYMAPI                 	CFbsScreenDevice::Update()
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Draw a line on the CFbsScreenDevice object and update the screen.
//! @SYMTestActions         	1. Create CFbsScreenDevice attached to RFbsSession.
//!								2. Create CFbsBitGc and attached to CFbsScreenDevice.
//!								3. Clear the screen.
//!								4. Draw a line from (20,20) to (60,60) on to the screen device.
//!								5. Update the screen device.
//!								6. Verify the color of the Pixels (20,20) (40,40) and (59,59), the color is Black.
//!								7. Destroy all objects.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	Update() is called without panic and the color of the pixels is as expected.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10  T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        CREATE_OBJECT			CFbsBitGc		 fbsbitgc
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL    		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0010-NewL_command03
        COMMAND					fbsbitgc		 NewL
        COMMAND					fbsbitgc		 Activate		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0010-Activate_command05 			
        COMMAND					fbsbitgc		 Clear
        COMMAND					fbsbitgc		 DrawLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0010-DrawLine_command07
        COMMAND             	fbsscrdev		 Update 	
        COMMAND					fbsscrdev		 checkPixels	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0010-checkPixels_command09
        COMMAND             	fbsscrdev		 ~
 		COMMAND					fbsbitgc		 ~	
 		COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0010

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0011
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0011
//! @SYMAPI                 	CFbsScreenDevice::Update(const TRegion{ref})
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Draw a line on the CFbsScreenDevice object and update a region on the screen.
//! @SYMTestActions        		1. Create CFbsScreenDevice attached to RFbsSession.
//!								2. Create CFbsBitGc and attached to CFbsScreenDevice.
//!								3. Clear the screen.
//!								4. Draw a line from (20,20) to (60,60) on to the screen device.
//!								5. Update a region (20,20),(70,70) on the screen device.
//!								6. Verify the color of the Pixels (20,20) (40,40) and (59,59), the color is Black.
//!								7. Destroy all objects.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	Update() is called without panic and the color of the pixels is as expected.
//! @SYMTestType            	CIT
	START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        CREATE_OBJECT			CFbsBitGc		 fbsbitgc
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL    		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0011-NewL_command03
        COMMAND					fbsbitgc		 NewL
        COMMAND					fbsbitgc		 Activate		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0011-Activate_command05 			
        COMMAND					fbsbitgc		 Clear
        COMMAND					fbsbitgc		 DrawLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0011-DrawLine_command07
        COMMAND             	fbsscrdev		 Update 		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0011-Update_command08
        COMMAND					fbsscrdev		 checkPixels	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0011-checkPixels_command09
        COMMAND             	fbsscrdev		 ~
 		COMMAND					fbsbitgc		 ~	
 		COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE		 	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0011

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0012
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0012
//! @SYMAPI                 	CFbsScreenDevice::SetAutoUpdate(TBool)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Set EFalse to SetAutoUpdate and draw a line onto the device.
//! @SYMTestActions         	1. Create CFbsScreenDevice attached to RFbsSession.
//!								2. Create CFbsBitGc and attached to CFbsScreenDevice.
//!								3. Clear the screen.
//!								4. Set EFalse to SetAutoUpdate().
//!								5. Draw a line from (50,20) to (56,20) on the screen device.
//!								6. Verify the color of the Pixels (50,20)(53,20) and (54,20).
//!								7. Update the screen device.
//!								8. Verify the color of the Pixels (50,20)(53,20) and (54,20).
//!								9. Destroy all object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	SetAutoUpdate(EFalse) is called without panic and the color of the pixels is as expected.
//! @SYMTestType            	CIT
	START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        CREATE_OBJECT			CFbsBitGc		 fbsbitgc
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL    		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-NewL_command03
        COMMAND					fbsbitgc		 NewL
        COMMAND					fbsbitgc		 Activate		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-Activate_command05 			
        COMMAND					fbsscrdev		 SetAutoUpdate  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-SetAutoUpdate_command06	
        COMMAND					fbsbitgc		 Clear
        COMMAND					fbsbitgc		 SetPenColor	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-SetPenColor_command08
        COMMAND					fbsbitgc		 DrawLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-DrawLine_command09
        COMMAND					fbsscrdev		 checkPixels	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-checkPixels_command10
        COMMAND					fbsscrdev		 Update
        COMMAND					fbsscrdev		 checkPixels	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0012-checkPixels_command12
        COMMAND             	fbsscrdev		 ~
 		COMMAND					fbsbitgc		 ~	
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0012

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0013
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0013
//! @SYMAPI                 	CFbsScreenDevice::SetAutoUpdate(TBool)
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Set ETrue to SetAutoUpdate and draw a line onto the device.
//! @SYMTestActions         	1. Create CFbsScreenDevice attached to RFbsSession.
//!								2. Create CFbsBitGc and attached to CFbsScreenDevice.
//!								3. Clear the screen.
//!								4. Set ETrue to SetAutoUpdate().
//!								5. Draw a line from (20,20) to (50,60) on the screen device.
//!								6. Verify the color of the Pixels (20,20)(35,40) and (50,60).
//!								7. Update the screen device.
//!								8. Verify the color of the Pixels (20,20)(35,40) and (50,60).
//!								9. Destroy all object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	SetAutoUpdate(ETrue) is called without panic and the color of the pixels is as expected.
//! @SYMTestType            	CIT
	START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        CREATE_OBJECT			CFbsBitGc		 fbsbitgc
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL    		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0013-NewL_command03
        COMMAND					fbsbitgc		 NewL
        COMMAND					fbsbitgc		 Activate		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0013-Activate_command05 			
        COMMAND					fbsscrdev		 SetAutoUpdate  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0013-SetAutoUpdate_command06	
        COMMAND					fbsbitgc		 DrawLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0013-DrawLine_command07
        COMMAND					fbsscrdev		 checkPixels	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0013-checkPixels_command08
        COMMAND             	fbsscrdev		 ~
 		COMMAND					fbsbitgc		 ~	
 		COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0013

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0014
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0014
//! @SYMAPI                 	CFbsScreenDevice::DrawSpriteBegin()
//!								CFbsScreenDevice::DrawSpriteEnd()
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Create CFbsScreenDevice object and test DrawSpriteBegin and DrawSpriteEnd.
//! @SYMTestActions         	1. Create CFbsScreenDevice attached to RFbsSession.
//!								2. Begin draw sprite on the device.
//!								3. End draw sprite on the device.
//!								4. Destroy all objects.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	DrawSpriteBegin() & DrawSpriteEnd() are called without panic.
//! @SYMTestType            	CIT
	START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL             GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0014-NewL_command03			
        COMMAND					fbsscrdev		 DrawSpriteBegin  	
        COMMAND					fbsscrdev		 DrawSpriteEnd		        
        COMMAND             	fbsscrdev		 ~	
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0014

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0015
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0015
//! @SYMAPI                 	CFbsScreenDevice::ChangeScreenDevice(CFbsScreenDevice{ptr})
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	03/12/2008
//! @SYMTestCaseDesc        	Create two CFbsScreenDevice Objects and changescreendevice with each other.
//! @SYMTestActions        	 	1. Create CFbsScreenDevice1 and attach to CFbssession.
//!								2. Create CFbsScreenDevice2 and attach to CFbssession.
//!								3. Replace CFbsScreenDevice1 with CFbsScreenDevice2.
//!								4. Destroy all object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	ChangeScreenDevice() is called without panic.
//! @SYMTestType            	CIT
	START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev1
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev2
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev1       NewL				  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0015-NewL_command03			
        COMMAND					fbsscrdev2       NewL             	  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0015-NewL_command04				
        COMMAND					fbsscrdev2		 ChangeScreenDevice	  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0015-ChangeScreenDevice_command05 						        
        COMMAND             	fbsscrdev1		 ~
        COMMAND             	fbsscrdev2		 ~	
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0015

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0016
//! @SYMTestCaseID          GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0016
//! @SYMAPI                 CFbsScreenDevice::ChangeScreenDevice(CFbsScreenDevice{ptr})
//! @SYMAuthor              Wei Liu
//! @SYMCreationDate        03/12/2008
//! @SYMTestCaseDesc        Negtive case, create CFbsScreenDevice object connected to RFbsSession.
//!							ChangeScreenDevice with bad CFbsScreenDevice pointer.
//!							Destroy all objects.
//! @SYMTestActions         1. create CFbsScreenDevice object.
//!							2. connect CFbsScreenDevice to RFbsSession object
//!							3. change device with a bad pointer.
//!							4. destroy all objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults ChangeScreenDevice() is called without error.
//! @SYMTestType            CIT
  	START_TEST_BLOCK   10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
       	CREATE_OBJECT       CFbsScreenDevice fbsscrdev1
       	CREATE_OBJECT       CFbsScreenDevice fbsscrdev2
       	CREATE_OBJECT       RFbsSession 	 rfbssession
		COMMAND				rfbssession		 Constructor
		COMMAND				rfbssession		 Connect
		COMMAND				fbsscrdev2       NewL             		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0016-NewL_command03	
		COMMAND				fbsscrdev2		 ChangeScreenDevice	  	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0016-ChangeScreenDevice_command04 								
		COMMAND             fbsscrdev2		 ~	     
		COMMAND				rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE	 	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0016

START_TESTCASE 		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0017
//! @SYMTestCaseID          GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0017
//! @SYMAPI                 CFbsScreenDevice::ChangeScreenDevice(CFbsScreenDevice{ptr})
//! @SYMAuthor              Wei Liu
//! @SYMCreationDate        04/12/2008
//! @SYMTestCaseDesc        Negtive case, create CFbsScreenDevice object and attach to RFbsSession object.
//!							ChangeScreenDevice with itself.
//!							Destroy all objects.
//! @SYMTestActions         1. create CFbsScreenDevice and attach to RFbsSession.
//!							2. changeScreenDevice with itself.
//!							3. destroy all objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults ChangeScreenDevice() is called without error.
//! @SYMTestType            CIT
  	START_TEST_BLOCK   10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
       	CREATE_OBJECT       CFbsScreenDevice fbsscrdev
       	CREATE_OBJECT       RFbsSession 	 rfbssession
		COMMAND				rfbssession		 Constructor
		COMMAND				rfbssession		 Connect
		COMMAND				fbsscrdev        NewL             		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0017-NewL_command03	
		COMMAND				fbsscrdev		 ChangeScreenDevice	  	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0017-ChangeScreenDevice_command04 								
		COMMAND             fbsscrdev		 ~	     
		COMMAND				rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE	 		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0017

START_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0018
//! @SYMTestCaseID         		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0018
//! @SYMAPI                 	CFbsScreenDevice::CancelSprite()
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	04/12/2008
//! @SYMTestCaseDesc        	Create CFbsScreenDevice object and attach to RFbsSession.
//!								Begin to draw a sprite and cancel it.
//! @SYMTestActions         	1. create CFbsScreenDevice attached to RFbsSession.
//!								2. Begin to draw a sprite.
//!								3. Cancel draw sprite.
//!								4. destroy all object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	DrawSpriteBegin() & CancelSprite() are called without panic.
//! @SYMTestType            	CIT
	START_TEST_BLOCK   10   	T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL             		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0018-NewL_command03				
        COMMAND					fbsscrdev		 DrawSpriteBegin  	
        COMMAND					fbsscrdev		 CancelSprite		
        COMMAND             	fbsscrdev		 ~	
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 			GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0018

START_TESTCASE              	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0019
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0019
//! @SYMAPI                 	CFbsScreenDevice::GetPixel(TRgb{ref}, const TPoint{ref}) const
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	04/12/2008
//! @SYMTestCaseDesc        	Gets color of specified point of screen
//! @SYMTestActions         	1. Creates and connects a RFbsSession
//!                         	2. Creates a CFbsScreenDevice attached to a RFbsSession
//!                         	3. Gets pixel at point(1, 1) to verify the color of pixel is white
//!                         	4. Destructs the CFbsScreenDevice object
//!                         	5. Closes the CFbsScreenDevice object
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	The color of specified point matchs with expected value. 
//! @SYMTestType            	CIT
    START_TEST_BLOCK        	10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	RFbsSession        rfbssession
        CREATE_OBJECT       	CFbsScreenDevice   fbsscrdev
        COMMAND             	rfbssession        Constructor       
        COMMAND             	rfbssession        Connect        
        COMMAND             	fbsscrdev          NewL         GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0019-NewL_command03
        COMMAND             	fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0019-GetPixel_command04
        COMMAND             	fbsscrdev          ~ 
        COMMAND             	rfbssession        Disconnect
    END_TEST_BLOCK    
END_TESTCASE                GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0019

START_TESTCASE              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0020
//! @SYMTestCaseID      	    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0020
//! @SYMAPI            	    	CFbsScreenDevice::GetPixel(TRgb{ref}, const TPoint{ref})
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate    	    04/12/2008
//! @SYMTestCaseDesc 	       Negtive case, Test for negative x- and y-coordinate/too big x- and y-coordinate.
//! @SYMTestActions         	1. Creates and connects a RFbsSession
//!                     	    2. Creates a CFbsScreenDevice attached to a RFbsSession 
//!             	            3. Gets pixel at point(-1, 0) and check the RGB color is white.
//!           	              	4. Gets pixel at point(0, -1) and check the RGB color is white.
//!                         	5. Gets pixel at point(-1, -1) and check the RGB color is white.
//!                     	    6. Gets pixel at point(10000, 0) and check the RGB color is white.
//!                  	      	7. Gets pixel at point(0, 10000) and check the RGB color is white.
//!                         	8. Gets pixel at point(10000, 10000) and check the RGB color is white.
//!                        	 	9. Destruct and close all objects used.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	GetPixel doesn't cause panic and matchs with the expected color.
//! @SYMTestType            	CIT
   START_TEST_BLOCK         	10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT   	    RFbsSession        rfbssession
        CREATE_OBJECT   	    CFbsScreenDevice   fbsscrdev
        COMMAND         	    rfbssession        Constructor       
        COMMAND         	    rfbssession        Connect        
        COMMAND         	    fbsscrdev          NewL         GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-NewL_command03				  
        COMMAND        			fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-GetPixel_command04
        COMMAND         		fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-GetPixel_command05
        COMMAND       		  	fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-GetPixel_command06
        COMMAND         		fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-GetPixel_command07
        COMMAND         		fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-GetPixel_command08
        COMMAND         		fbsscrdev          GetPixel     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0020-GetPixel_command09
        COMMAND     	        fbsscrdev          ~        
        COMMAND 	            rfbssession        Disconnect
   END_TEST_BLOCK
END_TESTCASE                	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0020

START_TESTCASE                 	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0021
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0021
//! @SYMAPI                     CFbsScreenDevice::HorizontalPixelsToTwips(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Translates a horizontal dimension of a screen device in pixels into twips
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates a horizontal dimension pixels into twips 
//!                             4. Destruct the CFbsScreenDevice object
//!                             5. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     HorizontalPixelsToTwips doesn't cause panic and the returned twips are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI       \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect        
        COMMAND                 fbsscrdev         NewL         			   GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0021-NewL_command03                    
        COMMAND                 fbsscrdev         HorizontalPixelsToTwips  GRAPHICS-WSERV-WsScreenDevice-PublicApi-0021-HorizontalPixelsToTwips_command04              
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0021

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0022
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0022
//! @SYMAPI                     CFbsScreenDevice::HorizontalPixelsToTwips(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negitve case, Uses big pixels/0/small negative pixels
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates three horizontal dimension in pixels into twips 
//!                             4. Input pixel = 64000000, return 1774789 for emulator and 892600000 for H4.
//!                             5. Input pixel = 0, return 0.
//!                             6. Input pixel = -64000000, return -1774788 for emulator and -892599999 for H4.
//!                             7. Destruct the CFbsScreenDevice object
//!                             8. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     HorizontalPixelsToTwips doesn't cause panic and the returned twips are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	RFbsSession       rfbssession
        CREATE_OBJECT      		CFbsScreenDevice  fbsscrdev
        COMMAND             	rfbssession       Constructor       
        COMMAND             	rfbssession       Connect          
        COMMAND                 fbsscrdev         NewL           		   GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0022-new_command03                      
        COMMAND                 fbsscrdev         HorizontalPixelsToTwips  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0022-HorizontalPixelsToTwips_command04
        COMMAND                 fbsscrdev         HorizontalPixelsToTwips  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0022-HorizontalPixelsToTwips_command05
        COMMAND                 fbsscrdev         HorizontalPixelsToTwips  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0022-HorizontalPixelsToTwips_command06
        COMMAND                 fbsscrdev            ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0022

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0023
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0023
//! @SYMAPI                     CFbsScreenDevice::VerticalPixelsToTwips(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Translates a vertical dimension of a screen device in pixels into twips
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates a vertical dimension pixels into twips 
//!                             4. Destruct the CFbsScreenDevice object
//!                             5. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     VerticalPixelsToTwips doesn't cause panic and the returned twips are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         			   GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0023-NewL_command03                                
        COMMAND                 fbsscrdev         VerticalPixelsToTwips    GRAPHICS-WSERV-WsScreenDevice-PublicApi-0023-VerticalPixelsToTwips_command04             
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect      
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0023

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0024
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0024
//! @SYMAPI                     CFbsScreenDevice::VerticalPixelsToTwips(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Uses big pixels/0/small negative pixels
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates three vertical dimension in pixels into twips 
//!                             4. Input pixel = 1200000, return 1404698 for emulator and 304100000 for H4.
//!                             5. Input pixel = 0, return 0.
//!                             6. Input pixel = -1200000, return -1404697 for emulator and -304099999 for H4.
//!                             7. Destruct the FbsScreenDevice object
//!                             8. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     VerticalPixelsToTwips doesn't cause panic and the returned twips are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	RFbsSession       rfbssession
        CREATE_OBJECT      		CFbsScreenDevice  fbsscrdev
        COMMAND             	rfbssession       Constructor       
        COMMAND             	rfbssession       Connect       
        COMMAND                 fbsscrdev         NewL          		 GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0024-new_command03                        
        COMMAND                 fbsscrdev         VerticalPixelsToTwips  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0024-VerticalPixelsToTwips_command04
        COMMAND                 fbsscrdev         VerticalPixelsToTwips  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0024-VerticalPixelsToTwips_command05
        COMMAND                 fbsscrdev         VerticalPixelsToTwips  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0024-VerticalPixelsToTwips_command06
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0024

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0025
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0025
//! @SYMAPI                     CFbsScreenDevice::HorizontalTwipsToPixels(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Translates a horizontal dimension of a screen device in twips into pixels
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates a horizontal dimension twips into pixels 
//!                             4. Destruct the CFbsScreenDevice object
//!                             5. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     HorizontalTwipsToPixels doesn't cause panic and the returned pixels are as expected.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         			   GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0025-NewL_command03                                
        COMMAND                 fbsscrdev         HorizontalTwipsToPixels  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0025-HorizontalTwipsToPixels_command04              
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0025

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0026
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0026
//! @SYMAPI                     CFbsScreenDevice::HorizontalTwipsToPixels(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Uses big twips/0/small negative twips
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates three horizontal dimension in twips into pixels
//!                             4. Input twips = 1774789, return 64000000 for emulator and 54635895 for H4.
//!                             5. Input twips = 0, return 0.
//!                             6. Input twips = -1774789, return -63999999 for emulator and -54635894 for H4.
//!                             7. Destruct the CFbsScreenDevice object
//!                             8. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     HorizontalTwipsToPixels doesn't cause panic and the returned pixels are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	RFbsSession       rfbssession
        CREATE_OBJECT      		CFbsScreenDevice  fbsscrdev
        COMMAND             	rfbssession       Constructor       
        COMMAND             	rfbssession       Connect           
        COMMAND                 fbsscrdev         NewL          		   GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0026-new_command03                          
        COMMAND                 fbsscrdev         HorizontalTwipsToPixels  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0026-HorizontalTwipsToPixels_command04
        COMMAND                 fbsscrdev         HorizontalTwipsToPixels  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0026-HorizontalTwipsToPixels_command05
        COMMAND                 fbsscrdev         HorizontalTwipsToPixels  GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0026-HorizontalTwipsToPixels_command06
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0026

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0027
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0027
//! @SYMAPI                     CFbsScreenDevice::VerticalTwipsToPixels(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Translates a vertical dimension of a screen device in twips into pixels
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates a vertical dimension twips into pixels 
//!                             4. Destruct the CFbsScreenDevice object
//!                             5. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     VerticalTwipsToPixels doesn't cause panic and the returned pixels are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         			   GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0027-NewL_command03                                
        COMMAND                 fbsscrdev         VerticalTwipsToPixels    GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0027-VerticalTwipsToPixels_command04             
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0027

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0028
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0028
//! @SYMAPI                     CFbsScreenDevice::VerticalTwipsToPixels(TInt)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Uses big twips/0/small negative twips
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Translates three vertical dimension in twips into pixels
//!                             4. Input twips = 1404698, return 12000000 for emulator and 22555738 for H4.
//!                             5. Input twips = 0, return 0.
//!                             6. Input twips = -1404698, return -11999999 for emulator and -22555737 for H4.
//!                             7. Destruct the CFbsScreenDevice object
//!                             8. Disconnect the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     VerticalTwipsToPixels doesn't cause panic and the returned pixels are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	RFbsSession       rfbssession
        CREATE_OBJECT      		CFbsScreenDevice  fbsscrdev
        COMMAND             	rfbssession       Constructor       
        COMMAND             	rfbssession       Connect           
        COMMAND                 fbsscrdev         NewL          		   	GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0028-new_command03                                              
        COMMAND                 fbsscrdev         VerticalTwipsToPixels  	GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0028-VerticalTwipsToPixels_command04
        COMMAND                 fbsscrdev         VerticalTwipsToPixels  	GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0028-VerticalTwipsToPixels_command05
        COMMAND                 fbsscrdev         VerticalTwipsToPixels  	GRAPHICS-BitGDI-CFbsScreenDevice-PublicApi-0028-VerticalTwipsToPixels_command06
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession       Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0028

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0029
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0029
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Gets a scanline into a buffer
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Create a CFbsBitGc object.
//!                             4. Draw a line from (25,25) to (45,25) on CFbsBitGc.
//!                             5. Get scanline from screen and verify the pixels just drawed.
//!                             6. Disconnect and destruct all objects used.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     1. The scanline get copied, and no panic get raised 
//!                             2. Check the scanline(Get pixel (1,1) of the scanline, the color is Black).
//! @SYMTestType                CIT
        START_TEST_BLOCK        10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        CREATE_OBJECT           CFbsBitGc         fbsbitgc
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0029-NewL_command03       
		COMMAND					fbsbitgc		  NewL				
		COMMAND					fbsbitgc		  Activate			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0029-Activate_command05
		COMMAND					fbsbitgc		  DrawLine			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0029-DrawLine_command06
		COMMAND					fbsscrdev		  Update
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0029-GetScanLine_command08
		COMMAND					fbsscrdev		  ~
		COMMAND					fbsbitgc		  ~
		COMMAND					rfbssession		  Disconnect
		END_TEST_BLOCK 
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0029

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0030
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0030
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negative test, uses a zero-length buffer.
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Get scanline from screen.
//!                             4. Disconnect and destruct all objects used.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetScanLine is called without panic. 
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0030-NewL_command03        				
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0030-GetScanLine_command04
		COMMAND					fbsscrdev		  ~	
		COMMAND					rfbssession		  Disconnect
	END_TEST_BLOCK
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0030

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0031
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0031
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Test for a zero-length scanline.
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Get scanline from screen.
//!                             4. Disconnect and destruct all objects used.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetScanLine is called without panic. 
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0031-NewL_command03        			
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0031-GetScanLine_command04
		COMMAND					fbsscrdev		  ~
		COMMAND					rfbssession		  Disconnect
	END_TEST_BLOCK
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0031

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0032
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0032
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Test for a negative-length scanline.
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Get scanline from screen.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetScanLine is called with USER 23 panic received. 
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0032-NewL_command03        			
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0032-GetScanLine_command04
   END_TEST_BLOCK	 !PanicString=USER !PanicCode=23
   RUN_TEST_STEP				100	T_GraphicsBitGDIAPI	utilityClearPanicDlg
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0032

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0033
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0033
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Test for a 99999-length scanline with starting point (0, 0).
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Get scanline from screen.
//!                             4. Disconnect and destruct all objects used.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetScanLine is called without panic. 
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0033-NewL_command03        			
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0033-GetScanLine_command04
		COMMAND					fbsscrdev		  ~
		COMMAND					rfbssession		  Disconnect
	END_TEST_BLOCK
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0033

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0034
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0034
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Test for a 10-length scanline with negative starting point (-1, -1).
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!								3. Create CFbsBitGc object.
//!								4. Clear screen
//!                             5. Get scanline from screen.
//!                             6. Disconnect and destruct all objects used.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetScanLine is called without any panic.
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        CREATE_OBJECT			CFbsBitGc		  fbsbitgc
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0034-NewL_command03        			
		COMMAND					fbsbitgc		  NewL
		COMMAND					fbsbitgc		  Activate			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0034-Activate_command05
		COMMAND					fbsbitgc		  Clear				
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0034-GetScanLine_command07
		COMMAND					fbsscrdev		  ~
		COMMAND					fbsbitgc		  ~
		COMMAND					rfbssession		  Disconnect
	END_TEST_BLOCK
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0034

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0035
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0035
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Test for a 10-length scanline with starting point (10000, 10000).
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!								3. Create CFbsBitGc object.
//!								4. Clear screen
//!                             5. Get scanline from screen.
//!                             6. Disconnect and destruct all objects used.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetScanLine doesn't cause panic.
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        CREATE_OBJECT			CFbsBitGc		  fbsbitgc
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0035-NewL_command03        			
		COMMAND					fbsbitgc		  NewL
		COMMAND					fbsbitgc		  Activate			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0035-Activate_command05
		COMMAND					fbsbitgc		  Clear
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0035-GetScanLine_command07
		COMMAND					fbsscrdev		  ~
		COMMAND					fbsbitgc		  ~	
		COMMAND					rfbssession		  Disconnect
	END_TEST_BLOCK
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0035

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0036
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0036
//! @SYMAPI                     CFbsScreenDevice::GetScanLine(TDes8{ref}, const TPoint{ref}, TInt, TDisplayMode)
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Negtive case, Test for a 10-length scanline with starting point (0, 0).
//! @SYMTestActions             1. Create and connect a RFbsSession.
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Get scanline from screen.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     1. GetScanLine is called with BITGDI panic received. 
//!                             2. The length of the scanline buffer is as expected. The scanline data in the buffer is as expected.
//! @SYMTestType                CIT
   START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0036-NewL_command03        			
		COMMAND					fbsscrdev		  GetScanLine		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0036-GetScanLine_command04
	END_TEST_BLOCK 		!PanicString=BITGDI !PanicCode=9
	RUN_TEST_STEP				100	T_GraphicsBitGDIAPI	utilityClearPanicDlg
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0036

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0037
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0037
//! @SYMAPI                     CFbsScreenDevice::PaletteAttributes(TBool{ref}, TInt{ref})
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Gets the attributes of the device's palette.
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession.
//!                             3. Call PaletteAttributes() method and verify the palette received.
//!                             4. Destruct and Close.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     PaletteAttributes retrieves expected values.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0037-NewL_command03      
        COMMAND                 fbsscrdev         PaletteAttributes     GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0037-PaletteAttributes_command04
        COMMAND                 fbsscrdev         ~        
        COMMAND					rfbssession		  Disconnect 
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0037

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0038
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0038
//! @SYMAPI                     CFbsScreenDevice::GetPalette(const CPalette{ptr})
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Sets the palette.
//!                             Gets the screen device's palette.
//!                             Support for palette will depend on the screen driver implementation, it's not supported in techview. 
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a Palette.
//!                             3. Create a CFbsScreenDevice attached to RFbsSession.
//!                             4. Set the palette with the existing palette.
//!                             5. Get the palette and verify whether it is the same as we set before.
//!                             6. Destruct and Close.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     GetPalette retrieves a palette as expected.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        CREATE_OBJECT           CPalette          palette
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0038-NewL_command03
        COMMAND                 palette           NewL                  GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0038-NewL_command04       
        COMMAND                 fbsscrdev         SetPalette            GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0038-SetPalette_command05      
        COMMAND                 fbsscrdev         GetPalette            GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0038-GetPalette_command06
        COMMAND                 palette           ~        
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession		  Disconnect   
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0038

START_TESTCASE              	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0039
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0039
//! @SYMAPI                 	CFbsScreenDevice::SetPalette(CPalette{ptr})
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	04/12/2008
//! @SYMTestCaseDesc        	Sets the palette.
//!                         	Gets the screen device's palette.
//!                         	Support for palette will depend on the screen driver implementation, it's not supported in techview. 
//! @SYMTestActions        	 	1. Create RFbsSession object
//!						    	2. Create CFbsScreenDevice Object.
//!								3. Create a Palette. 
//!                         	4. Set the Palette with the existing palette.
//!                         	5. Get the Palette and verify it with expected.
//!                         	6. Destruct and Close.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	SetPalette returns KErrNone. GetPalette retrieves a palette as expected.
//! @SYMTestType            	CIT
    START_TEST_BLOCK        	10    T_GraphicsBitGDIAPI     \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
     	CREATE_OBJECT     		CFbsScreenDevice fbsscrdev
        CREATE_OBJECT     		RFbsSession 	 rfbssession
        CREATE_OBJECT       	CPalette         palette
        COMMAND             	palette          NewL               GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0039-NewL_command01				
        COMMAND					rfbssession		 Constructor
        COMMAND			  		rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL             	GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0039-NewL_command04				
        COMMAND             	fbsscrdev        SetPalette         GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0039-SetPalette_command05      	
        COMMAND					fbsscrdev        GetPalette         GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0039-GetPalette_command06		
        COMMAND             	palette          ~
        COMMAND             	fbsscrdev		 ~
        COMMAND					rfbssession		 Disconnect	  
    END_TEST_BLOCK    
END_TESTCASE                GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0039

START_TESTCASE                  GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0040
//! @SYMTestCaseID              GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0040
//! @SYMAPI                     CFbsScreenDevice::SizeInTwips()
//! @SYMAuthor                  Wei Liu
//! @SYMCreationDate            04/12/2008
//! @SYMTestCaseDesc            Gets the size of the screen device area in twips
//! @SYMTestActions             1. Create and connect a RFbsSession
//!                             2. Create a CFbsScreenDevice attached to RFbsSession
//!                             3. Get the screen's size in twips and check it with expected.
//!                             4. Destruct the CWsScreenDevice object
//!                             5. Close the RFbsSession object
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            Critical
//! @SYMTestExpectedResults     No panic and the returned screen sizes in twips and twips are as expected
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsBitGDIAPI      \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT           RFbsSession       rfbssession
        CREATE_OBJECT           CFbsScreenDevice  fbsscrdev
        COMMAND                 rfbssession       Constructor       
        COMMAND                 rfbssession       Connect         
        COMMAND                 fbsscrdev         NewL         			GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0040-NewL_command03             
        COMMAND                 fbsscrdev         SizeInTwips
        COMMAND                 fbsscrdev         ~        
        COMMAND                 rfbssession		  Disconnect       
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0040

START_TESTCASE 					GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0041
//! @SYMTestCaseID          	GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0041
//! @SYMAPI                 	CFbsScreenDevice::ScreenNo()
//! @SYMAuthor              	Wei Liu
//! @SYMCreationDate        	04/12/2008
//! @SYMTestCaseDesc        	Create CFbsScreenDevice Object attached to RFbsSession .
//!								Check the number received from the ScreenNo function with expected.
//!								Destroy object.
//! @SYMTestActions         	1.Create CFbsScreenDevice Object attached to RFbsSession.
//!								2.Check the Screen number from ScreenNo() with expected.
//!								3.Destroy object.
//! @SYMTestStatus          	Implemented
//! @SYMTestPriority        	High
//! @SYMTestExpectedResults 	The number returned from ScreenNo() is as expected.
//! @SYMTestType            	CIT
    START_TEST_BLOCK   		10   T_GraphicsBitGDIAPI \graphics\GRAPHICS-BITGDI-FbsScreenDevice-PublicApi.ini
        CREATE_OBJECT       	CFbsScreenDevice fbsscrdev
        CREATE_OBJECT       	RFbsSession 	 rfbssession
        COMMAND					rfbssession		 Constructor
        COMMAND					rfbssession		 Connect
        COMMAND             	fbsscrdev        NewL     		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0041-NewL_command03
        COMMAND             	fbsscrdev		 ScreenNo 		GRAPHICS-BITGDI-FbsScreenDevice-PublicApi-0041-ScreenNo_command04
        COMMAND             	fbsscrdev		 ~
        COMMAND					rfbssession		 Disconnect
     END_TEST_BLOCK
END_TESTCASE 		GRAPHICS-BitGDI-FbsScreenDevice-PublicApi-0041





















