//
// 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-WSERV-WsBitmap-PublicApi
//! @SYMScriptTestEnvironment	This test script requires a basic ROM.

///////////////////////////////////////////////////////////////////////////////
// GRAPHICS-WSERV-WsBitmap-PublicApi.script
//
// Tests all public elements of the CWsBitmap 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
// CWsBitmap 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_GraphicsWservAPI


// ****************************************************************************
// CWsBitmap
// ****************************************************************************

START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0001
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0001
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		08/01/2007
//! @SYMTestCaseDesc		CWsBitmap(): create a CWsBitmap object by C++ defaut constructor
//!				Uses API elements: CWsBitmap()
//! @SYMTestActions		Simply execute new() a CWsBitmap to create the object
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Low
//! @SYMTestExpectedResults	CWsBitmap object was created without causing panic
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		wsbmp		new
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0001


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0002
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0002
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		08/01/2007
//! @SYMTestCaseDesc		CWsBitmap(RWsSession &aWs): create a CWsBitmap object within the specified RWsSession
//!				Uses API elements: RWsSession::Connect, CWsBitmap()
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	Create a CWsBitmap within the RWsSession
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	CWsBitmap object was created without causing panic
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0002-0001-new_command04
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0002


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0003
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0003
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		08/01/2007
//! @SYMTestCaseDesc		~CWsBitmap(): CWsBitmap destructor
//!				Uses API elements: RWsSession::Connect, CWsBitmap
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	New/Construct a CWsBitmap within the RWsSession
//!				3.	Destruct the CWsBitmap object
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	CWsBitmap was destructed without causing panic
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0003-0001-new_command04
		COMMAND		wsbmp		~
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0003


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0004
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0004
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		26/02/2007
//! @SYMTestCaseDesc		Create(const TSize &aSizeInPixels, TDisplayMode aDispMode): create a CWsBitmap bitmap with the specified size and display mode
//!				Uses API elements: RWsSession::Connect, CFbsBitmap::SizeInPixels & DisplayMode, WsClientClass::WsHandle
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	New/Construct a CWsBitmap within the RWsSession, check its initial size and display mode
//!				3.	Create the CWsBitmap bitmap with the specified size and display mode
//!				4.	Check CWsBitmap bitmap creation: its size and display mode as specified
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	1.	Create() method returns KErrNone without causing panic
//!				2.	Before the bitmap creation: handle=0, wshandle=0, size width & height = 0, displaymode = ENone
//!					After the bitmap created: wshandle!=0, size width & height & displaymode as specified in the Create command
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-new_command04
		COMMAND		wsbmp		Handle			GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-Handle_command05
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-WsHandle_command06
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-SizeInPixels_command07
		COMMAND		wsbmp		DisplayMode		GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-DisplayMode_command08
		COMMAND		wsbmp		Create			GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-Create_command09
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-SizeInPixels_command10
		COMMAND		wsbmp		DisplayMode		GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-DisplayMode_command11
		COMMAND		wsbmp		Handle
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0004-0001-WsHandle_command13
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0004


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0005
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0005
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		26/02/2007
//! @SYMTestCaseDesc		Duplicate(TInt aHandle): make a duplicate of the specified bitmap handle
//!				Uses API elements: RWsSession::Connect, CFbsBitmap::Handle & SizeInPixels & DisplayMode, CWsBitmap: Create
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	New/Construct a source CWsBitmap within the RWsSession, and Create it with the specified size and display mode
//!				3.	New/Construct a dest CWsBitmap within the RWsSession, check its initial size and display mode
//!				4.	Execute Duplicate to make dest CWsBitmap a duplicate of the source CWsBitmap
//!				5.	Check the size and display mode of the dest CWsBitmap (expected to be the same as those of the source CWsBitmap)
//!				6.	Destruct the CWsBitmap objects
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	1.	Duplicate() method returns KErrNone without causing panic
//!				2.	Before the bitmap duplication: handle=0, wshandle=0, size width & height = 0, displaymode = ENone
//!					After the bitmap duplicated: wshandle!=0, size width & height & displaymode the same as the source bitmap
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		CREATE_OBJECT	CWsBitmap	wsbmp_src
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp_src	new			GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-new_command04
		COMMAND		wsbmp_src	Create			GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-Create_command05
		COMMAND		wsbmp_src	Handle
		COMMAND		wsbmp_src	WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-WsHandle_command07
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-new_command09
		COMMAND		wsbmp		Handle			GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-Handle_command10
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-WsHandle_command11
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-SizeInPixels_command12
		COMMAND		wsbmp		DisplayMode		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-DisplayMode_command13
		COMMAND		wsbmp		Duplicate		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-Duplicate_command14
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-SizeInPixels_command15
		COMMAND		wsbmp		DisplayMode		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-DisplayMode_command16
		COMMAND		wsbmp		Handle
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0005-0001-WsHandle_command18
		COMMAND		wsbmp		~
		COMMAND		wsbmp_src	~
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0005


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0006
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0006
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		09/01/2007
//! @SYMTestCaseDesc		Load(const TDesC &aFileName, TInt32 aId, TBool aShareIfLoaded=ETrue): load a CWsBitmap from a file
//!				Uses API elements: RWsSession::Connect, CFbsBitmap::Save & Handle & SizeInPixels & DisplayMode, CWsBitmap: Create
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	New/Construct a source CWsBitmap within the RWsSession, and Create it with the specified size and display mode
//!				3.	Call CFbsBitmap::Save to save the source CWsBitmap into a temp file
//!				4.	New/Construct a dest CWsBitmap within the RWsSession, check its initial size and display mode
//!				5.	Execute Load the dest CWsBitmap from the temp file
//!				6.	Check the size and display mode of the dest CWsBitmap (expected to be the same as those of the source CWsBitmap)
//!				7.	Destruct the CWsBitmap objects
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	1.	Load() method returns KErrNone without causing panic, and the loaded bitmap size and display mode is the same as specified in the file
//!				2.	Before the bitmap loaded: handle=0, wshandle=0, size width & height = 0, displaymode = ENone
//!					After the bitmap loaded: wshandle!=0, size width & height & displaymode the same as the source bitmap
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		CREATE_OBJECT	CWsBitmap	wsbmp_src
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp_src	new			GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-new_command04
		COMMAND		wsbmp_src	Create			GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-Create_command05
		COMMAND		wsbmp_src	Save			GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-Save_command06
		COMMAND		wsbmp_src	Handle
		COMMAND		wsbmp_src	WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-WsHandle_command08
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-new_command10
		COMMAND		wsbmp		Handle			GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-Handle_command11
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-WsHandle_command12
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-SizeInPixels_command13
		COMMAND		wsbmp		Load			GRAPHICS-WSERV-WsBitmap-PublicApi-0006-0001-Load_command14
		COMMAND		wsbmp		~
		COMMAND		wsbmp_src	~
	END_TEST_BLOCK
	RUN_UTILS DeleteFile ${SYSDRIVE}\graphics\test_wsbitmap.tmp
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0006


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0007
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0007
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		27/01/2007
//! @SYMTestCaseDesc		InternalizeL(RReadStream &aStream): internalises a CWsBitmap from the read stream
//!				Uses API elements: RWsSession::Connect, CFbsBitmap::ExternalizeL & SizeInPixels & DisplayMode, CWsBitmap
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	New/Construct a source CWsBitmap within the RWsSession, and Create it with the specified size and display mode
//!				3.	Call CFbsBitmap::ExternalizeL to externalize the source CWsBitmap into a temp file stream
//!				4.	New/Construct a dest CWsBitmap within the RWsSession, check its initial size and display mode
//!				5.	Execute InternalizeL the dest CWsBitmap from the temp file stream
//!				6.	Check the size and display mode of the dest CWsBitmap (expected to be the same as those of the source CWsBitmap)
//!				7.	Destruct the CWsBitmap objects, and delete the temp file stream
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	1.	InternalizeL() without causing panic
//!				2.	Before the bitmap internalized: handle=0, wshandle=0, size width & height = 0, displaymode = ENone
//!					After the bitmap internalized: wshandle!=0, size width & height & displaymode the same as the source bitmap
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		CREATE_OBJECT	CWsBitmap	wsbmp_src
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp_src	new			GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-new_command04
		COMMAND		wsbmp_src	Create			GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-Create_command05
		COMMAND		wsbmp_src	ExternalizeL		GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-ExternalizeL_command06
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-new_command08
		COMMAND		wsbmp		Handle			GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-Handle_command09
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-WsHandle_command10
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-SizeInPixels_command11
		COMMAND		wsbmp		InternalizeL		GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-InternalizeL_command12
		COMMAND		wsbmp		Handle
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-WsHandle_command14
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0007-0001-SizeInPixels_command15
		COMMAND		wsbmp		~
		COMMAND		wsbmp_src	~
	END_TEST_BLOCK
	RUN_UTILS DeleteFile ${SYSDRIVE}\graphics\test_wsbitmap.tmp
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0007


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0008
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-0008
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		09/01/2007
//! @SYMTestCaseDesc		Reset(): release the bitmap's handle from the FBSERV
//!				Uses API elements: RWsSession::Connect, CFbsBitmap::Handle, MWsClientClass::WsHandle, CWsBitmap
//! @SYMTestActions		1.	Create and connect a RWsSession
//!				2.	New and create a CWsBitmap within the RWsSession, check its WsHandle to make sure the creation
//!				3.	Execute Reset() to release the bitmap's handle
//!				4.	Call CFbsBitmap::Handle & MWsClientClass::WsHandle to check if the handle id released (i.e. equal to value 0)
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	1.	CWsBitmap was reset without causing panic
//!				2.	Before the created bitmap reset: wshandle!=0
//!					After the bitmap reset: wshandle=0, handle=0, size width & height = 0, displaymode = ENone
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-new_command04
		COMMAND		wsbmp		Create			GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-Create_command05
		COMMAND		wsbmp		Handle
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-WsHandle_command07
		COMMAND		wsbmp		Reset
		COMMAND		wsbmp		Handle			GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-Handle_command09
		COMMAND		wsbmp		WsHandle		GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-WsHandle_command10
		COMMAND		wsbmp		SizeInPixels		GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-SizeInPixels_command11
		COMMAND		wsbmp		DisplayMode		GRAPHICS-WSERV-WsBitmap-PublicApi-0008-0001-DisplayMode_command12
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-0008


// ****************************************************************************
// Negative testcases of CWsBitmap
// ****************************************************************************

START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1001
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1001
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		CWsBitmap(): fail to execute Create() and follow-up commands for a CWsBitmap created by C++ default constructor
//!				Uses API elements: CWsBitmap::Create
//! @SYMTestActions		1.	new() a CWsBitmap with its default C++ constructor
//!				2.	Execute Create() on the CWsBitmap and check if it generated expected error code
//!				3.	Destruct CWsBitmap
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Low
//! @SYMTestExpectedResults	Create() on the CWsBitmap with its default C++ constructor generated KErrCouldNotConnect (-34)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		wsbmp		new
		COMMAND		!Error=-34		wsbmp		Create		GRAPHICS-WSERV-WsBitmap-PublicApi-1001-0001-Create_command01
		COMMAND		wsbmp		~
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1001


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1002
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1002
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		CWsBitmap(RWsSession &aWs): new a CWsBitmap object within a unconnected RWsSession
//!				Uses API elements: RWsSession::Connect, CWsBitmap()
//! @SYMTestActions		1.	Create a RWsSession
//!				2.	new() a CWsBitmap within the unconnected RWsSession
//!				3.	Execute Create() on the CWsBitmap and check if it generated expected error code
//!				4.	Destruct and Close all objects used
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Create() on the CWsBitmap within unconnected RWsSession generated KErrCouldNotConnect (-34)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1002-0001-new_command01
		COMMAND		!Error=-34		wsbmp		Create		GRAPHICS-WSERV-WsBitmap-PublicApi-1002-0001-Create_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1002


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1003
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1003
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Create(const TSize &aSizeInPixels, TDisplayMode aDispMode): create a CWsBitmap object with invalid size (negative width & height)
//!				Uses API elements: RWsSession::Connect, CWsBitmap()
//! @SYMTestActions		1.	Create and Connect a RWsSession
//!				2.	new() a CWsBitmap within the RWsSession
//!				3.	Execute Create() on the CWsBitmap with invalid size (negative width & height) and check it returned expected error code
//!				4.	Destruct and Close all objects used
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Create() on the CWsBitmap with invalid size generated KErrArgument (-6)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1003-0001-new_command01
		COMMAND		!Error=-6		wsbmp		Create		GRAPHICS-WSERV-WsBitmap-PublicApi-1003-0001-Create_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1003


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1004
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1004
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Create(const TSize &aSizeInPixels, TDisplayMode aDispMode): create a CWsBitmap object with display mode ENone
//!				Uses API elements: RWsSession::Connect, CWsBitmap()
//! @SYMTestActions		1.	Create and Connect a RWsSession
//!				2.	new() a CWsBitmap within the RWsSession
//!				3.	Execute Create() on the CWsBitmap with display mode ENone and check it returned expected error code
//!				4.	Destruct and Close all objects used
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Create() on the CWsBitmap with invalid size generated KErrArgument (-6)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1004-0001-new_command01
		COMMAND		!Error=-6		wsbmp		Create		GRAPHICS-WSERV-WsBitmap-PublicApi-1004-0001-Create_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1004


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1005
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1005
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Duplicate(TInt aHandle): duplicate a non-existed handle
//!				Uses API elements: RWsSession::Connect, CWsBitmap()
//! @SYMTestActions		1.	Create and Connect a RWsSession
//!				2.	new() a CWsBitmap within the RWsSession
//!				3.	Execute Duplicate() the CWsBitmap with a non-existed handle (-1) and check it returned expected error code
//!				4.	Destruct and Close all objects used
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Create() on the CWsBitmap with invalid size generated KErrUnknown (-19)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1005-0001-new_command01
		COMMAND		!Error=-19		wsbmp		Duplicate		GRAPHICS-WSERV-WsBitmap-PublicApi-1005-0001-Duplicate_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1005


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1006
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1006
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Duplicate(TInt aHandle): duplicate a CWsBitmap object within a unconnected RWsSession
//!				Uses API elements: RWsSession::Connect, CWsBitmap::Create & Handle & Duplicate
//! @SYMTestActions		1.	Create a RWsSession
//!				2.	new() a CWsBitmap within the unconnected RWsSession
//!				3.	Connect the RWsSession to WSERV
//!				4.	new() another source CWsBitmap within the connected RWsSession
//!				5.	Create() the source CWsBitmap as the specified display mode and size
//!				6.	Use Handle() to get handle of the source CWsBitmap for the follow-up Duplicate
//!				7.	Execute Duplicate() the source CWsBitmap to the unconnected CWsBitmap and check if it generated expected error code
//!				8.	Destruct and Close all objects used
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Create() on the CWsBitmap within unconnected RWsSession generated KErrCouldNotConnect (-34)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		CREATE_OBJECT	CWsBitmap	wsbmp_src
		COMMAND		ws		new
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1006-0001-new_command01
		COMMAND		ws		Connect
		COMMAND		wsbmp_src	new			GRAPHICS-WSERV-WsBitmap-PublicApi-1006-0001-new_command01
		COMMAND		wsbmp_src	Create			GRAPHICS-WSERV-WsBitmap-PublicApi-1006-0001-Create_command02
		COMMAND		wsbmp_src	Handle
		COMMAND		!Error=-34		wsbmp		Duplicate		GRAPHICS-WSERV-WsBitmap-PublicApi-1006-0001-Duplicate_command03
		COMMAND		wsbmp_src		~
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1006


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1007
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1007
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Load(const TDesC &aFileName, TInt32 aId, TBool aShareIfLoaded=ETrue): load a file to a unconnected CWsBitmap
//!				Uses API elements: RWsSession
//! @SYMTestActions		1.	Create a RWsSession but not connected
//!				2.	new() a CWsBitmap within the unconnected RWsSession
//!				3.	Execute Load() to load a file to the CWsBitmap and check if it generated expected error code
//!				4.	Destruct the CWsBitmap objects
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Load() on the CWsBitmap within unconnected RWsSession generated KErrCouldNotConnect (-34)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1007-0001-new_command01
		COMMAND		!Error=-34		wsbmp		Load			GRAPHICS-WSERV-WsBitmap-PublicApi-1007-0001-Load_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1007


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1008
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1008
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Load(const TDesC &aFileName, TInt32 aId, TBool aShareIfLoaded=ETrue): load CWsBitmap from a file with identifier of large number
//!				Uses API elements: RWsSession
//! @SYMTestActions		1.	Create and Connect a RWsSession
//!				2.	new() a CWsBitmap within the RWsSession
//!				3.	Execute Load() to load an empty file to the CWsBitmap and check if it generated expected error code
//!				4.	Destruct the CWsBitmap objects
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Load() CWsBitmap from a file with identifier of large number generated KErrEof (-25)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1008-0001-new_command01
		COMMAND		!Error=-25		wsbmp		Load			GRAPHICS-WSERV-WsBitmap-PublicApi-1008-0001-Load_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1008


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1009
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1009
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		Load(const TDesC &aFileName, TInt32 aId, TBool aShareIfLoaded=ETrue): load CWsBitmap from a file
//!				Uses API elements: RWsSession
//! @SYMTestActions		1.	Create and Connect a RWsSession
//!				2.	new() a CWsBitmap within the RWsSession
//!				3.	Execute Load() to load a file to the CWsBitmap and check if it generated expected error code
//!				4.	Destruct the CWsBitmap objects
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	Load() CWsBitmap from a non-existed filename generated KErrNotFound (-1)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1009-0001-new_command01
		COMMAND		!Error=-1		wsbmp		Load			GRAPHICS-WSERV-WsBitmap-PublicApi-1009-0001-Load_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1009


START_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1010
//! @SYMTestCaseID		GRAPHICS-WSERV-WsBitmap-PublicApi-1010
//! @SYMAPI			CWsBitmap
//! @SYMAuthor			Victor Liu
//! @SYMCreationDate		03/10/2007
//! @SYMTestCaseDesc		InternalizeL(RReadStream &aStream): internalises a CWsBitmap from the read stream
//!				Uses API elements: RWsSession
//! @SYMTestActions		1.	Create and Connect a RWsSession
//!				2.	new() a CWsBitmap within the RWsSession
//!				3.	Execute InternalizeL() to load a .mbm file to the CWsBitmap and check if it generated expected error code
//!				4.	Destruct the CWsBitmap objects
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Medium
//! @SYMTestExpectedResults	InternalizeL() CWsBitmap from a .mbm file generated KErrCorrupt (-20)
//! @SYMTestType		CIT
	START_TEST_BLOCK	10		T_GraphicsWservAPI	\graphics\GRAPHICS-WSERV-WsBitmap-PublicApi.ini
		CREATE_OBJECT	RWsSession	ws
		CREATE_OBJECT	CWsBitmap	wsbmp
		COMMAND		ws		new
		COMMAND		ws		Connect
		COMMAND		wsbmp		new			GRAPHICS-WSERV-WsBitmap-PublicApi-1010-0001-new_command01
		COMMAND		!Error=-20		wsbmp		InternalizeL			GRAPHICS-WSERV-WsBitmap-PublicApi-1010-0001-InternalizeL_command02
		COMMAND		wsbmp		~
		COMMAND		ws		Close
	END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsBitmap-PublicApi-1010
