mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/OpenFileByHandle7803.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmlibs/mmfw/tsrc/mmfintegrationtest/ACLNT/OpenFileByHandle7803.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,119 @@
+// Copyright (c) 2004-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:
+//
+
+#include "TestPlayerUtils.h"
+#include "OpenFileByHandle7803.h"
+
+#include <caf/caf.h>
+
+CTestMmfAclntOpenFile7803::CTestMmfAclntOpenFile7803(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName)
+	: CTestMmfAclntAudioPlayerUtil(aTestName, aSectName), iKeyName(aKeyName)
+	{}
+
+CTestMmfAclntOpenFile7803* CTestMmfAclntOpenFile7803::NewL(const TDesC& aTestName, const TDesC& aSectName, const TDesC& aKeyName)
+	{
+	CTestMmfAclntOpenFile7803* self = new (ELeave) CTestMmfAclntOpenFile7803(aTestName, aSectName, aKeyName);
+	return self;
+	}
+
+/**
+ * Open new file.
+ */
+TVerdict CTestMmfAclntOpenFile7803::DoTestL(CMdaAudioPlayerUtility* aPlayer)
+	{
+	return( PerformTestL( aPlayer ) );
+	}
+
+TVerdict CTestMmfAclntOpenFile7803::PerformTestL(CMdaAudioPlayerUtility* aPlayer)
+	{
+	TVerdict ret = EPass;
+	aPlayer->Close();
+
+	RFs fs;
+
+	// read optional test specific parameters
+	iSkipShareProtected = iExpectToFail = EFalse;
+	iExpectedError = KErrNone;
+	// read the parameters, if any missing just ignore
+	GetBoolFromConfig(iDefaultParamSet, _L("SkipShareProtected"), iSkipShareProtected);
+	GetBoolFromConfig(iDefaultParamSet, _L("ExpectToFail"), iExpectToFail);
+	GetIntFromConfig(iDefaultParamSet, _L("ExpectedError"), iExpectedError);
+
+	User::LeaveIfError(fs.Connect());
+	CleanupClosePushL(fs);
+	if (!iSkipShareProtected)
+		{
+		User::LeaveIfError(fs.ShareProtected());
+		}
+
+	// get second file name
+	TBuf<KSizeBuf>	filename2;
+	TPtrC			filename;
+
+	if(!GetStringFromConfig(iSectName, iKeyName, filename))
+		{
+		return EInconclusive;
+		}
+		
+	GetDriveName(filename2);
+	filename2.Append(filename);
+
+	RFile file;
+	User::LeaveIfError( file.Open( fs, filename2, EFileRead ) );
+	CleanupClosePushL(file);
+
+	// Open second file
+	aPlayer->OpenFileL(file);
+	// wait for open to complete
+	CActiveScheduler::Start();
+
+	INFO_PRINTF2( _L("OpenFileL completed with error %d"), iError);
+
+	if( iError != KErrNone )
+		{
+		if (iExpectToFail && iError == iExpectedError)
+			{
+			INFO_PRINTF2( _L("Error matches expected %d"), iExpectedError);
+			ret = EPass;
+			}
+		else if (iExpectToFail)
+			{
+			INFO_PRINTF2( _L("Error does not match %d"), iExpectedError);
+			ret = EFail;
+			}
+		else
+			{
+			INFO_PRINTF1( _L("No error was expected"));
+			ret = EFail;
+			}
+		}
+	else 
+		{
+		aPlayer->Play();
+		CActiveScheduler::Start();
+
+		if( iError != KErrNone )
+			{
+			ret = EFail;
+			}
+
+		User::After(1000000);
+		aPlayer->Stop();
+		aPlayer->Close();
+		}
+
+	CleanupStack::PopAndDestroy(2, &fs);
+	return ret;
+	}