diff -r 000000000000 -r 2e3d3ce01487 appfw/apparchitecture/tef/T_AutoMMCReaderOpen.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/appfw/apparchitecture/tef/T_AutoMMCReaderOpen.cpp Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,112 @@ +// 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: +// This is a defect fix for the following defect +// INC040672 - MMC Card door open causes wrong mime type instead of error code +// This test is fully automated and performs the following task +// Tests to access a file which is on MMC and the MMC card is removed at the time of access. +// +// + +/** + @file + @internalComponent - Internal Symbian test code +*/ + +#include "testableapalssession.h" +#include "T_AutoMMCReaderOpen.h" + +const TInt KDirLength = 5; // No need of length more than this , hence length is 5 + +CTestAutoMMCReaderStep::~CTestAutoMMCReaderStep() + { + } + +CTestAutoMMCReaderStep::CTestAutoMMCReaderStep() + { + SetTestStepName(KTestAutoMMCReaderOpenStep); + } + +TVerdict CTestAutoMMCReaderStep::doTestStepPreambleL() +/** + @return - TVerdict code + Override of base class virtual + */ + { + SetTestStepResult(EPass); + return TestStepResult(); + } + +TVerdict CTestAutoMMCReaderStep::doTestStepPostambleL() +/** + @return - TVerdict code + Override of base class virtual + */ + { + return TestStepResult(); + } + +TVerdict CTestAutoMMCReaderStep::doTestStepL() + { + INFO_PRINTF1(_L("Testing Apparch...T_AutoMMCReaderOpen")); + + OpenMMCCardReaderDrive(); + INFO_PRINTF1(_L("\nT_AutoMMCReaderOpen Completed.")); + return TestStepResult(); + } + +void CTestAutoMMCReaderStep::OpenMMCCardReaderDrive() + { + INFO_PRINTF1(_L("Testing fix for INC040672 - MMC Card door open causes wrong mime type instead of error code")); + + _LIT(KValidFileName, "ValidFileName.jpg"); + + RFs fs; + TInt ret = fs.Connect(); + TEST(ret == KErrNone); + RTestableApaLsSession ls; + ret = ls.Connect(); + TEST(ret == KErrNone); + +// The following steps are to reproduce the removal of MMC card +// Loop through drive letters Y -> D to access a file on that drive (any filename) +// Find a drive letter that returns KErrNotReady , +// setup a valid filename with that drive. + + for (TInt drive = EDriveY; drive >= EDriveD ; drive--) + { + TDriveUnit driveUnit(drive); + TDriveName driveName = driveUnit.Name(); + + TBuf bufDirName(driveName); + bufDirName.Append(_L("\\")); + + ret = fs.MkDirAll(bufDirName); + if (ret == KErrNotReady) + { + TFileName bufValidFileName(bufDirName); + bufValidFileName.Append(KValidFileName); + TDataType dataType; + TUid uid = KNullUid; + + HEAP_TEST_LS_SESSION(ls, 0, 0, ret = ls.AppForDocument(bufValidFileName, uid, dataType), NO_CLEANUP); + TEST(ret == KErrNotReady); + TEST(uid == KNullUid); + TEST(dataType == TDataType()); + break; + } + } + TEST(ret == KErrNotReady); + ls.Close(); + fs.Close(); + }