//
// 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		PBASE-F32-RFS-Mounts-PublicApi-ANY
//! @SYMScriptTestEnvironment	This test script requires a basic ROM.
//! @SYMScriptAuthor 		Oleg Kuznetsov
//! @SYMScriptDescription	The test script contains API mounting related 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-0001
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0001
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AddFileSystem() and RemoveFileSystem() test.
//!				Uses API elements: AddFileSystem(), RemoveFileSystem()
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call RemoveFileSystem() providing the name of the plug-in file system as an argument.
//!				3. Call AddFileSystem() providing the file name of a file system plug-in as an argument.
//!				4. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	Both AddFileSystem() and RemoveFileSystem() return KErrNone.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new
		COMMAND		RFs1	Connect
		COMMAND		RFs1	AddFileSystem		PBASE-F32-RFS-PublicApi-0001-001-AddFileSystem_command03
		COMMAND		RFs1	RemoveFileSystem		PBASE-F32-RFS-PublicApi-0001-001-RemoveFileSystem_command04
		COMMAND		RFs1	Close
		COMMAND		RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0001


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0003
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0003
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AddExtension() and RemoveExtension() test.
//!				The test requires a file system extension plug-in.
//!				Uses API elements: AddExtension(), RemoveExtension()
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddExtension() providing the file name of a file system extension plug-in as an argument.
//!				3. Call RemoveExtension() providing the name of the plug-in file system extension as an argument.
//!				4. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	Both AddExtension() and RemoveExtension() return KErrNone.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND		RFs1	new
		COMMAND		RFs1	Connect
		COMMAND		RFs1	AddExtension		PBASE-F32-RFS-PublicApi-0003-001-AddExtension_command03
		COMMAND		RFs1	RemoveExtension		PBASE-F32-RFS-PublicApi-0003-001-RemoveExtension_command04
		COMMAND		RFs1	Close
		COMMAND		RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0003


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0012
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0012
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function SetStartupConfiguration() test.
//!				Uses API elements: SetStartupConfiguration()
//! @SYMTestActions		1. Call Connect().
//!				2. Call SetStartupConfiguration() providing ELoaderPriority as a command and 2 NULL pointers.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Check that SetStartupConfiguration() returns KErrPermissionDenied (-46).
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-46	RFs1	SetStartupConfiguration		PBASE-F32-RFS-PublicApi-0012-001-SetStartupConfiguration_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0012


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0013
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0013
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function SetStartupConfiguration() test.
//!				Uses API elements: SetStartupConfiguration()
//! @SYMTestActions		1. Call Connect().
//!				2. Call SetStartupConfiguration() providing EMaxStartupConfigurationCmd as a command and 2 NULL pointers.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Check that SetStartupConfiguration() returns KErrPermissionDenied (-46).
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-46	RFs1	SetStartupConfiguration		PBASE-F32-RFS-PublicApi-0013-001-SetStartupConfiguration_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0013


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0015
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0015
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function StartupInitComplete() test.
//!				Uses API elements: StartupInitComplete()
//! @SYMTestActions		1. Call Connect().
//!				2. Call StartupInitComplete().
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Check that StartupInitComplete() returns KErrAlreadyExists (-11).
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!AsyncError=-11	RFs1	StartupInitComplete
		OUTSTANDING
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0015


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0016
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0016
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function SetLocalDriveMapping() test.
//!				Uses API elements: SetLocalDriveMapping()
//! @SYMTestActions		1. Call Connect().
//!				2. Call SetLocalDriveMapping() with EWriteMappingsNoSet operation and 2 drives EDriveA and EDriveB set for indices 0 and 1 correspondingly.
//!				3. Call Close().
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	Check that SetLocalDriveMapping() returns KErrAccessDenied (-21).
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-21	RFs1	SetLocalDriveMapping		PBASE-F32-RFS-PublicApi-0016-001-SetLocalDriveMapping_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0016


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0020
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0020
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AddFileSystem() test with incorrect file name of file system.
//!				Uses API elements: AddFileSystem().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddFileSystem() providing the incorrect file name of a file system.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrNotFound
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-1	RFs1	AddFileSystem		PBASE-F32-RFS-PublicApi-0020-001-AddFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0020


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0021
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0021
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AddFileSystem() test with adding file system that already added.
//!				Uses API elements: AddFileSystem().
//!				The test requires a file system plug-in.
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddFileSystem() providing the name of a file system that already added.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrAlreadyExists
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-11	RFs1	AddFileSystem		PBASE-F32-RFS-PublicApi-0021-001-AddFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0021


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0022
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0022
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions RemoveFileSystem() test, with incorrect file system name.
//!				Uses API elements: RemoveFileSystem().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call RemoveFileSystem() providing the incorrect file system name.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrNotFound
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-1	RFs1	RemoveFileSystem		PBASE-F32-RFS-PublicApi-0022-001-RemoveFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0022


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0024
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0024
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions MountFileSystem(const TDesC &aFileSystemName, TInt aDrive) test with negative drive number.
//!				Uses API elements: MountFileSystem().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call MountFileSystem() providing the file system name and negative drive number -11.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	MountFileSystem		PBASE-F32-RFS-PublicApi-0024-001-MountFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0024


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0027
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0027
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions MountFileSystem(const TDesC &aFileSystemName, TInt aDrive, TBool aIsSync) test with negative drive number.
//!				Uses API elements: MountFileSystem().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call MountFileSystem() providing the file system name and negative drive number -11 and ETrue as a synchronization parameter.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	MountFileSystem		PBASE-F32-RFS-PublicApi-0027-001-MountFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0027


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0030
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0030
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions MountFileSystem(const TDesC &aFileSystemName, TInt aDrive, TBool aIsSync) test with negative drive number.
//!				Uses API elements: MountFileSystem().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call MountFileSystem() providing the file system name and negative drive number -11 and EFalse as a synchronization parameter.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName.
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	MountFileSystem		PBASE-F32-RFS-PublicApi-0030-001-MountFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0030


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0033
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0033
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions MountFileSystemAndScan(const TDesC &aFileSystemName, TInt aDrive, TBool &aIsMountSuccess) test with negative drive number.
//!				Uses API elements: MountFileSystemAndScan().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call MountFileSystemAndScan() providing the "Fat" file system name and negative drive number -11.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	MountFileSystemAndScan		PBASE-F32-RFS-PublicApi-0033-001-MountFileSystemAndScan_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0033


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0039
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0039
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions DismountFileSystem() test with negative drive number.
//!				Uses API elements: DismountFileSystem().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call DismountFileSystem() providing the file system name and negative drive number -11.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName, bad name of drive
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	DismountFileSystem		PBASE-F32-RFS-PublicApi-0039-001-DismountFileSystem_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0039


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0042
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0042
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions FileSystemName() test with negative drive number.
//!				Uses API elements: FileSystemName().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call FileSystemName() providing negative drive number(-11).
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrArgument
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-6	RFs1	FileSystemName		PBASE-F32-RFS-PublicApi-0042-001-FileSystemName_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0042


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0044
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0044
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AddExtension() test with incorrect file system extension name.
//!				Uses API elements: AddExtension().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddExtension() providing bad extension file name.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrNotFound
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-1	RFs1	AddExtension		PBASE-F32-RFS-PublicApi-0044-001-AddExtension_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0044


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0045
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0045
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AddExtension() test, add file system extension twice.
//!				Uses API elements: AddExtension(), RemoveExtension().
//!				The test requires a file system extension plug-in.
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddExtension() providing plug-in extension name.
//!				3. Call AddExtension() providing plug-in extension name.
//!				4. Call RemoveExtension() providing plug-in extension name.
//!				5. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrAlreadyExists
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND			RFs1	AddExtension		PBASE-F32-RFS-PublicApi-0045-001-AddExtension_command03
		COMMAND	!Error=-11	RFs1	AddExtension		PBASE-F32-RFS-PublicApi-0045-001-AddExtension_command04
		COMMAND			RFs1	RemoveExtension		PBASE-F32-RFS-PublicApi-0045-001-RemoveExtension_command05
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0045


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0047
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0047
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions MountExtension() test with negative drive number.
//!				Uses API elements: MountExtension(), AddExtension(), RemoveExtension().
//!				The test requires a file system extension plug-in.
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddExtension() providing plug-in extension name.
//!				3. Call MountExtension() providing plug-in extension name and negative drive number (-11).
//!				4. Call RemoveExtension() providing plug-in extension name.
//!				5. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND			RFs1	AddExtension		PBASE-F32-RFS-PublicApi-0047-001-AddExtension_command03
		COMMAND	!Error=-28	RFs1	MountExtension		PBASE-F32-RFS-PublicApi-0047-001-MountExtension_command04
		COMMAND			RFs1	RemoveExtension		PBASE-F32-RFS-PublicApi-0047-001-RemoveExtension_command05
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0047


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0051
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0051
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions DismountExtension() test with negative drive number.
//!				Uses API elements: DismountExtension(), AddExtension(), RemoveExtension().
//!				The test requires a file system extension plug-in.
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AddExtension() providing plug-in extension name.
//!				3. Call DismountExtension() providing plug-in extension name and negative drive number (-11).
//!				4. Call RemoveExtension() providing plug-in extension name.
//!				5. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND			RFs1	AddExtension		PBASE-F32-RFS-PublicApi-0051-001-AddExtension_command03
		COMMAND	!Error=-28	RFs1	DismountExtension		PBASE-F32-RFS-PublicApi-0051-001-DismountExtension_command04
		COMMAND			RFs1	RemoveExtension		PBASE-F32-RFS-PublicApi-0051-001-RemoveExtension_command05
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0051


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0053
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0053
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions RemoveExtension() test with incorrect file system extension name.
//!				Uses API elements: RemoveExtension().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call RemoveExtension() providing bad extension name.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrNotFound
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-1	RFs1	RemoveExtension		PBASE-F32-RFS-PublicApi-0053-001-RemoveExtension_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0053


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0055
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0055
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions ExtensionName() test with negative drive number.
//!				Uses API elements: ExtensionName().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call ExtensionName() providing negative drive number and first position (0).
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	ExtensionName		PBASE-F32-RFS-PublicApi-0055-001-ExtensionName_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0055


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0056
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0056
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions RemountDrive() test with negative drive number.
//!				Uses API elements: RemountDrive().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call RemountDrive() providing negative drive number and flag 0x00000001 (1).
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	RemountDrive		PBASE-F32-RFS-PublicApi-0056-001-RemountDrive_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0056


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0058
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0058
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions NotifyDismount() test with negative drive number.
//!				Uses API elements: NotifyDismount().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call NotifyDismount() providing negative drive number and mode EFsDismountForceDismount and starts waiting for a notification on the background.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!AsyncError=-28	RFs1	NotifyDismount		PBASE-F32-RFS-PublicApi-0058-001-NotifyDismount_command03
		OUTSTANDING
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0058


START_TESTCASE 			PBASE-F32-RFS-PublicApi-0062
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0062
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Functions AllowDismount() test with negative drive number.
//!				Uses API elements: AllowDismount().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call AllowDismount() providing negative drive number.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		High
//! @SYMTestExpectedResults	KErrBadName
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-28	RFs1	AllowDismount		PBASE-F32-RFS-PublicApi-0062-001-AllowDismount_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~
	END_TEST_BLOCK
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0062

START_TESTCASE 			PBASE-F32-RFS-PublicApi-0073
//! @SYMTestCaseID		PBASE-F32-RFS-PublicApi-0073
//! @SYMAPI			RFs
//! @SYMTestCaseDesc		Function FileSystemSubType() test with negative drive number.
//!				Uses API elements: FileSystemSubType().
//! @SYMTestActions		1. Call Connect() method.
//!				2. Call FileSystemSubType() passing the negative drive number as argument.
//!				3. Call Close() method.
//! @SYMTestStatus		Implemented
//! @SYMTestPriority		Critical
//! @SYMTestExpectedResults	Return KErrArgument (-6).
//! @SYMTestType		CIT
	START_TEST_BLOCK	100	T_Sfsrv	\base\PBASE-F32-RFS-Mounts-PublicApi-ANY.ini 
		CREATE_OBJECT	RFs	RFs1
		COMMAND			RFs1	new
		COMMAND			RFs1	Connect
		COMMAND	!Error=-6	RFs1	FileSystemSubType		PBASE-F32-RFS-PublicApi-0073-001-FileSystemSubType_command03
		COMMAND			RFs1	Close
		COMMAND			RFs1	~		
	END_TEST_BLOCK	
END_TESTCASE 			PBASE-F32-RFS-PublicApi-0073


