//
// 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 the License "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		PBASE-F32-RFS-Misc-PublicApi-ANY
//! @SYMScriptTestEnvironment	This test script requires a basic ROM.
//! @SYMScriptAuthor 		Oleg Kuznetsov
//! @SYMScriptDescription	The test script contains API tests for RFs functions that don't depend on any special type of test drive.

LOAD_SUITE	T_Sfsrv


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3001
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3001
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function Connect() test.
//!				Uses API elements: Connect().
//! @SYMTestActions		1. Call Connect().
//!				2. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	Doesn't cause panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new
		COMMAND		RFs1	Connect
		COMMAND		RFs1	Close
		COMMAND		RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3001


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3002
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3002
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function Version() test.
//!				Uses API elements: Version().          
//! @SYMTestActions		1. Call Connect().
//!				2. Call Version().
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	Doesn't cause panic
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Connect
		COMMAND		RFs1	Version
		COMMAND		RFs1	Close		
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3002


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3011
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3011
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function SetNotifyUser() and GetNotifyUser() test.
//!				Uses API elements: SetNotifyUser(), GetNotifyUser().
//! @SYMTestActions		1. Call Connect().
//!				2. Call SetNotifyUser() and pass "false" as parameter.
//!				3. Call GetNotifyUser() and check that it returns "false".
//!				4. Call SetNotifyUser() and pass "true" as parameter.
//!				5. Call GetNotifyUser() and check that it returns "true".
//!				6. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	GetNotifyUser() returns value that was set by SetNotifyUser().
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Connect			PBASE-F32-RFS-PublicApi-3011-001-SetNotifyUser_command03
		COMMAND		RFs1	SetNotifyUser		PBASE-F32-RFS-PublicApi-3011-001-SetNotifyUser_command03
		COMMAND		RFs1	GetNotifyUser		PBASE-F32-RFS-PublicApi-3011-001-GetNotifyUser_command04
		COMMAND		RFs1	SetNotifyUser		PBASE-F32-RFS-PublicApi-3011-001-SetNotifyUser_command05
		COMMAND		RFs1	GetNotifyUser		PBASE-F32-RFS-PublicApi-3011-001-GetNotifyUser_command06
		COMMAND		RFs1	Close		
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3011


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3014
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3014
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function LoaderHeapFunction() test.
//!				Uses API elements: LoaderHeapFunction().
//! @SYMTestActions		1. Call Connect().
//!				2. Call LoaderHeapFunction() and pass 1 as parameter.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	KErrNotSupported, because This member function is not implemented in this version.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-5	RFs1	LoaderHeapFunction	PBASE-F32-RFS-PublicApi-3014-001-LoaderHeapFunction_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3014


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3101
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3101
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function Connect() negative test where number of message slots is zero.
//!				Uses API elements: Connect().
//! @SYMTestActions		1. Call Connect() and pass number of message slots 0 as parameter.
//!				2. Call NotifyChange() passing ENotifyAll as parameter and starts waiting for a notification on the background.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Function return KErrServerBusy as there will be no slots available for NotifyChange
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new		
		COMMAND			RFs1	Connect		PBASE-F32-RFS-PublicApi-3101-001-Connect_command02
		COMMAND	!AsyncError=-16	RFs1	NotifyChange	PBASE-F32-RFS-PublicApi-3101-001-NotifyChange_command03
				OUTSTANDING	
		COMMAND			RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3101


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3103
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3103
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function Connect() test where the connect is called twice.
//!				Uses API elements: Connect().
//! @SYMTestActions		1. Call Connect().
//!				2. Call Connect().
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Doesn't cause panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Connect
		COMMAND		RFs1	Connect
		COMMAND		RFs1	Close		
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3103


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3104
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3104
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function Version() test when function was called without connecting to the file server.
//!				Uses API elements: Version().
//! @SYMTestActions		1. Call Version() without calling Connect() before and Close() after.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Doesn't cause panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Version
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3104


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3111
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3111
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function NotifyChangeCancel(TRequestStatus &aStat) test where function called without call NotifyChange() before.
//!				Uses API elements: NotifyChangeCancel().
//! @SYMTestActions		1. Call Connect().
//!				2. Call NotifyChangeCancel() for all outstanding requests.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Does not cause Panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Connect
		COMMAND		RFs1	NotifyChangeCancel	PBASE-F32-RFS-PublicApi-3111-001-NotifyChangeCancel_command03
		OUTSTANDING	
		COMMAND		RFs1	Close		
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3111


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3114
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3114
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function NotifyDiskSpace() negative test where drive number is negative.
//!				Uses API elements: NotifyDiskSpace().
//! @SYMTestActions		1. Call Connect().
//!				2. Call NotifyDiskSpace() and pass -12345 as drive number and starts waiting for a notification on the background.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Function return status KErrBadName.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new		
		COMMAND			RFs1	Connect
		COMMAND	!AsyncError=-28	RFs1	NotifyDiskSpace		PBASE-F32-RFS-PublicApi-3114-001-NotifyDiskSpace_command03
		OUTSTANDING	
		COMMAND			RFs1	Close		
		COMMAND			RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3114


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3115
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3115
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function NotifyDiskSpaceCancel() (synchronous version) test where function called without call NotifyDiskSpace() before.
//!				Uses API elements: NotifyDiskSpaceCancel().
//! @SYMTestActions		1. Call Connect().
//!				2. Call NotifyDiskSpaceCancel() for all outstanding requests.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Does not cause Panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Connect
		COMMAND		RFs1	NotifyDiskSpaceCancel	PBASE-F32-RFS-PublicApi-3115-001-NotifyDiskSpaceCancel_command03
		OUTSTANDING	
		COMMAND		RFs1	Close		
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3115


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3121
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3121
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function IsRomAddress() test where address is 0. 
//!				Uses API elements: IsRomAddress().
//! @SYMTestActions		1. Call Connect().
//!				2. Call IsRomAddress() and pass 0 as parameter and check that not in rom.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Doesn't cause panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new		
		COMMAND		RFs1	Connect
		COMMAND		RFs1	IsRomAddress	PBASE-F32-RFS-PublicApi-3121-001-IsRomAddress_command03
		COMMAND		RFs1	Close		
		COMMAND		RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3121


START_TESTCASE 			PBASE-F32-RFS-PublicApi-3127
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3127
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function NotifyChangeCancel() test that cancels same request status twice.
//!				Uses API elements: NotifyChange(), NotifyChangeCancel().
//! @SYMTestActions		1. Call Connect().
//!				2. Call NotifyChange() and pass ENotifyDir as parameter and starts waiting for a notification on the background.
//!				3. Call NotifyChangeCancel() for the request status.
//!				4. Call NotifyChangeCancel() for the request status.
//!				5. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	Request status is KErrCancel(-3) and the test doesn't cause panic.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new		
		COMMAND			RFs1	Connect
		COMMAND	!AsyncError=-3	RFs1	NotifyChange		PBASE-F32-RFS-PublicApi-3127-001-NotifyChange_command03
		COMMAND			RFs1	NotifyChangeCancel	PBASE-F32-RFS-PublicApi-3127-001-NotifyChangeCancel_command04
		COMMAND			RFs1	NotifyChangeCancel	PBASE-F32-RFS-PublicApi-3127-001-NotifyChangeCancel_command05
		OUTSTANDING	
		COMMAND			RFs1	Close		
		COMMAND			RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3127

START_TESTCASE 			PBASE-F32-RFS-PublicApi-3102
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-3102
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function Connect() negative test where number of message slots is invalid.
//!				Uses API elements: Connect().
//! @SYMTestActions		1. Call Connect() and pass negative number of message slots -12345 as parameter.
//!				2. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Function return KErrArgument.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Misc-PublicApi-ANY.ini 
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new		
		COMMAND	!Error=-6	RFs1	Connect		PBASE-F32-RFS-PublicApi-3102-001-Connect_command02
		COMMAND			RFs1	Close		
		COMMAND			RFs1	~		
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-3102


