sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include sl@0: sl@0: #include "srtreader.h" sl@0: #include "testsrtreader.h" sl@0: sl@0: _LIT( KSampleSubtitleSRTFilepath, "c:\\mm\\subtitle1.srt" ); sl@0: _LIT( KSampleSubtitleTempFilepath, "c:\\mm\\subtitle1t.srt" ); sl@0: _LIT( KSampleSubtitleBogusFilepath, "c:\\mm\\bogussubtitle.srt" ); sl@0: sl@0: // Implementation of RTestSrtReaderStep0001 sl@0: sl@0: RTestSrtReaderStep0001::RTestSrtReaderStep0001() sl@0: { sl@0: iTestStepName = _L("MM-MMF-SUBTITLE-SRTREADER-U-0001-HP"); sl@0: } sl@0: sl@0: sl@0: TVerdict RTestSrtReaderStep0001::DoTestStepPreambleL() sl@0: { sl@0: __MM_HEAP_MARK; sl@0: User::LeaveIfError(iFsSession.Connect()); sl@0: sl@0: return EPass; sl@0: } sl@0: sl@0: TVerdict RTestSrtReaderStep0001::DoTestStepPostambleL() sl@0: { sl@0: if (BaflUtils::FileExists(iFsSession, KSampleSubtitleTempFilepath)) sl@0: { sl@0: BaflUtils::DeleteFile(iFsSession, KSampleSubtitleTempFilepath); sl@0: } sl@0: iFsSession.Close(); sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: return EPass; sl@0: } sl@0: sl@0: TVerdict RTestSrtReaderStep0001::DoTestStepL() sl@0: { sl@0: INFO_PRINTF1(_L("Enter DoTestStepL")); sl@0: TVerdict result = EPass; sl@0: sl@0: for(TInt bufSize = 0; bufSize <= 640 ; bufSize += 32) sl@0: { sl@0: RFile resultSource; sl@0: TInt err = resultSource.Create(iFsSession, KSampleSubtitleTempFilepath, EFileRead | EFileWrite); sl@0: if (KErrAlreadyExists == err) sl@0: { sl@0: User::LeaveIfError(resultSource.Open(iFsSession, KSampleSubtitleTempFilepath, EFileRead | EFileWrite)); sl@0: } sl@0: else sl@0: { sl@0: User::LeaveIfError(err); sl@0: } sl@0: sl@0: CleanupClosePushL(resultSource); sl@0: sl@0: HBufC8 *buf = HBufC8::NewL(bufSize); sl@0: CleanupStack::PushL(buf); sl@0: sl@0: CSrtReader* srtReader = CSrtReader::NewL(KSampleSubtitleSRTFilepath); sl@0: CleanupStack::PushL(srtReader); sl@0: sl@0: TInt error = KErrNone; sl@0: sl@0: while(KErrNone == error) sl@0: { sl@0: TPtr8 ptr8 = buf->Des(); sl@0: error = srtReader->GetBuffer(ptr8); sl@0: sl@0: if (ptr8.Length() > 0) sl@0: { sl@0: User::LeaveIfError(resultSource.Write(ptr8)); sl@0: } sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(srtReader); sl@0: CleanupStack::PopAndDestroy(buf); sl@0: CleanupStack::PopAndDestroy(&resultSource); sl@0: sl@0: if (bufSize == 0) sl@0: { sl@0: if (error != KErrArgument) sl@0: { sl@0: ERR_PRINTF3(_L("Error - CSrtReader::GetBuffer returned %d when the buffer is set to %d byte"), error, bufSize); sl@0: result = EFail; sl@0: } sl@0: } sl@0: else sl@0: { sl@0: if (error != KErrEof) sl@0: { sl@0: ERR_PRINTF3(_L("Error - CSrtReader::GetBuffer returned %d when the buffer is set to %d bytes"), error, bufSize); sl@0: result = EFail; sl@0: } sl@0: else sl@0: { sl@0: // compare KSampleSubtitleSRTFilepath with KSampleSubtitleTempFilepath sl@0: if (!RTestSrtDecoderStep::CompareFilesL(iFsSession, KSampleSubtitleSRTFilepath, KSampleSubtitleTempFilepath)) sl@0: { sl@0: ERR_PRINTF1(_L("Error - the result file does not match the original file. ")); sl@0: result = EFail; sl@0: } sl@0: } sl@0: } sl@0: sl@0: if (BaflUtils::FileExists(iFsSession, KSampleSubtitleTempFilepath)) sl@0: { sl@0: User::LeaveIfError(BaflUtils::DeleteFile(iFsSession, KSampleSubtitleTempFilepath)); sl@0: } sl@0: } sl@0: sl@0: INFO_PRINTF1(_L("Exit DoTestStepL")); sl@0: return result; sl@0: } sl@0: sl@0: sl@0: // Implementation of RTestSrtReaderStep0100 sl@0: sl@0: RTestSrtReaderStep0100::RTestSrtReaderStep0100() sl@0: { sl@0: iTestStepName = _L("MM-MMF-SUBTITLE-SRTREADER-U-0100-HP"); sl@0: } sl@0: sl@0: TVerdict RTestSrtReaderStep0100::DoTestStepL() sl@0: { sl@0: INFO_PRINTF1(_L("Enter DoTestStepL")); sl@0: TInt expectedErr = KErrNotFound; sl@0: sl@0: __MM_HEAP_MARK sl@0: sl@0: TVerdict result = EPass; sl@0: sl@0: TRAPD(err, CSrtReader* srtReader = CSrtReader::NewL(KSampleSubtitleBogusFilepath)); sl@0: sl@0: if (err != expectedErr) sl@0: { sl@0: ERR_PRINTF2(_L("Error - CSrtReader constructor returned %d for a bogus srt source. "), err); sl@0: result = EFail; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: INFO_PRINTF1(_L("Exit DoTestStepL")); sl@0: sl@0: return result; sl@0: } sl@0: sl@0: sl@0: